A Complete Python Course: Basic to Advanced
In easy language with detailed explanations and practical examples
Module 1: Introduction and Setup
In this module, you will learn what Python is, why it is popular, and how to install and set
up your environment.
1. What is Python?
Python is a high-level, interpreted programming language known for its simple syntax,
readability, and versatility. You can use Python for web development, data analysis,
machine learning, automation, scripting, and more.
2. Installing Python
Visit https://www.python.org and download the latest stable version for your operating
system. Follow the installer instructions. On Windows, check 'Add Python to PATH'. On
macOS/Linux, Python may be pre-installed; otherwise, use the installer or package
manager.
3. Setting Up an Editor or IDE
You can write Python code in: - IDLE (comes with Python) - VS Code (recommended,
free) - PyCharm (Community edition available) - Jupyter Notebooks (for interactive
coding, especially data science)
4. Your First Python Program
Open a terminal or your IDE, create a file hello.py, and write:
print("Hello, Python!")
Save and run: python hello.py. You should see 'Hello, Python!' printed.
Module 2: Basic Concepts
1. Variables and Data Types
Variables store data values. In Python, you don’t need to declare types explicitly; Python
infers them.
Examples:
# Integer
a = 10
# Float
b = 3.14
# String
name = "Deeksha"
# Boolean
flag = True
# Print values
print(a, b, name, flag)
2. Basic Data Types Details
- int: Whole numbers, e.g., 1, 100, -5. - float: Decimal numbers, e.g., 3.14, -0.001. - str:
Text, enclosed in quotes, e.g., "Hello". - bool: True or False. - NoneType: Represents no
value, e.g., x = None.
3. Operators
Operators perform operations on values. Categories: - Arithmetic: +, -, *, /, // (floor
division), % (modulo), ** (exponent) - Comparison: ==, !=, >, <, >=, <= - Logical: and, or,
not - Assignment: =, +=, -=, etc.
Example:
a = 5
b = 2
print(a + b) # 7
print(a ** b) # 25
print(a > b) # True
print((a > b) and (b > 0)) # True
4. Input and Output
- input(): Read user input as string. - print(): Display output.
name = input("Enter your name: ")
print(f"Hello, {name}!")
Module 3: Control Flow
1. if, elif, else
Use conditional statements to execute code based on conditions.
age = int(input("Enter your age: "))
if age >= 18:
print("You are an adult.")
elif age >= 13:
print("You are a teenager.")
else:
print("You are a child.")
2. Loops: for and while
for loop: Iterate over a sequence (list, string, range). while loop: Repeat while condition is
True.
for i in range(5):
print(i) # prints 0 to 4
count = 0
while count < 5:
print(count)
count += 1
3. break and continue
for i in range(10):
if i == 5:
break
print(i) # prints 0 to 4
Module 4: Data Structures
1. Lists
fruits = ["apple", "banana", "cherry"]
# Access
print(fruits[0]) # apple
# Modify
fruits.append("date")
print(fruits)
# Remove
fruits.remove("banana")
print(fruits)
2. Tuples
point = (10, 20)
# Access
print(point[0])
3. Dictionaries
student = {"name": "Alice", "age": 20}
# Access
print(student["name"])
# Modify
student["grade"] = "A"
print(student)
4. Sets
unique_numbers = {1, 2, 3, 2, 1}
print(unique_numbers) # {1, 2, 3}
Module 5: Functions and Modules
1. Defining and Calling Functions
def greet(name):
"""Function to greet a person"""
print(f"Hello, {name}!")
greet("Deeksha")
2. Parameters and Return Values
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 8
3. Modules and Import
# In math_example.py
# def square(x): return x * x
# In main.py
from math_example import square
print(square(4))
Module 6: File Handling and Exceptions
1. File Reading and Writing
# Writing to a file
with open("example.txt", "w") as f:
f.write("Hello, file!\n")
# Reading from a file
with open("example.txt", "r") as f:
content = f.read()
print(content)
2. Exception Handling
try:
x = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero")
except Exception as e:
print(f"Some error: {e}")
finally:
print("This runs always")
Module 7: Object-Oriented Programming
1. Classes and Objects
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"Hi, I'm {self.name} and I'm {self.age} years old.")
p = Person("Alice", 30)
p.introduce()
2. Inheritance
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
print(f"{self.name} says Woof!")
d = Dog("Buddy")
d.speak()
3. Encapsulation and Polymorphism
Encapsulation: Use private attributes (_ or __). Polymorphism: Methods with same name
behave differently.
Module 8: Advanced Topics
1. List Comprehensions
squares = [x*x for x in range(10)]
print(squares)
2. Generators
def countdown(n):
while n > 0:
yield n
n -= 1
for num in countdown(5):
print(num)
3. Decorators
def decorator_example(func):
def wrapper():
print("Before function")
func()
print("After function")
return wrapper
@decorator_example
def say_hello():
print("Hello!")
say_hello()
4. Context Managers
with open("file.txt", "w") as f:
f.write("Using context manager")
5. Iterators
Objects with __iter__() and __next__()
Module 9: Working with Libraries
1. Important Standard Libraries
- os, sys: Interact with operating system. - datetime: Work with dates and times. - math,
random: Math operations. - json, csv: Data formats. - re: Regular expressions. -
subprocess: Run external commands.
2. Installing and Using Third-Party Libraries
# Install in terminal:
# pip install requests
import requests
response = requests.get("https://api.github.com")
print(response.status_code)
Module 10: Testing and Debugging
1. Debugging Techniques
- Use print statements - Use pdb module - Use IDE debuggers
2. Unit Testing with unittest
import unittest
class TestMath(unittest.TestCase):
def test_add(self):
self.assertEqual(3 + 4, 7)
if __name__ == '__main__':
unittest.main()
Module 11: Packaging and Distribution
1. Creating Packages
Structure directories with __init__.py, use setup.py or pyproject.toml.
2. Publishing to PyPI
Register and upload package to Python Package Index (PyPI).
Module 12: Virtual Environments and Dependency Management
1. virtualenv and venv
# Create venv
python -m venv myenv
# Activate (Windows)
# myenv\Scripts\activate
# Activate (macOS/Linux)
# source myenv/bin/activate
2. Requirements File
List dependencies in requirements.txt: pip freeze > requirements.txt
Module 13: Professional Best Practices
1. Code Style: Follow PEP 8. Use linters like flake8. 2. Documentation: Write docstrings,
use Sphinx for documentation. 3. Version Control: Use Git and GitHub/GitLab. 4. CI/CD:
Automate tests and deployments. 5. Code Reviews: Collaborate and review code.
Module 14: Advanced Python Topics
1. Concurrency: threading, multiprocessing, asyncio. 2. Performance: profiling,
optimization techniques. 3. C extensions: when to use. 4. Security: basic considerations
in writing secure Python code.
Module 15: Projects and Real-World Applications
Work on projects to solidify learning. Examples: - Web app with Flask or Django - Data
analysis with pandas - Automation scripts - API client - CLI tools
Exercises and Practice
Each module includes practice exercises. Try building small projects and solving coding
challenges on platforms like HackerRank, LeetCode, and CodeWars.
Conclusion
This course takes you from basic concepts to professional-level practices in Python.
Practice regularly, read documentation, and build projects to become proficient.