PYTHON PROGRAMMING BASICS
A Beginner's Guide to Learning Python
═══════════════════════════════════════════════════════════════════════════
INTRODUCTION
Python has become one of the most popular programming languages in the world, and
for good reason. It's versatile, beginner-friendly, and powerful enough for
advanced applications. Whether you want to build websites, analyze data, create
games, automate tasks, or explore artificial intelligence, Python is an excellent
choice.
This guide will take you from complete beginner to writing your own Python
programs. You'll learn fundamental concepts, practice with real examples, and build
a strong foundation for continued learning.
═══════════════════════════════════════════════════════════════════════════
CHAPTER 1: GETTING STARTED WITH PYTHON
WHY LEARN PYTHON?
Python's popularity stems from several key advantages:
Readability: Python code reads almost like English. Its clean syntax makes it easy
to understand what code does, even if you didn't write it.
Versatility: Use Python for web development, data science, machine learning,
automation, game development, scientific computing, and more.
Large Community: Millions of Python developers worldwide create libraries, answer
questions, and share knowledge. You're never stuck alone.
Career Opportunities: Python skills are in high demand across industries,
particularly in data science, machine learning, and web development.
Great for Beginners: Python's simple syntax allows you to focus on programming
concepts rather than complex syntax rules.
INSTALLING PYTHON
Visit [Link] and download the latest version (3.11+ as of this writing). During
installation, make sure to check "Add Python to PATH."
To verify installation, open your terminal or command prompt and type:
python --version
You should see the Python version number displayed.
CHOOSING A CODE EDITOR
While you can write Python in any text editor, integrated development environments
(IDEs) make programming easier:
VS Code: Free, lightweight, with excellent Python support through extensions.
Recommended for beginners.
PyCharm: Powerful IDE specifically for Python. Community edition is free.
Jupyter Notebooks: Interactive environment perfect for data science and learning.
Great for experimenting with code.
For now, VS Code or PyCharm Community Edition are excellent choices.
YOUR FIRST PYTHON PROGRAM
Create a new file called [Link] and type:
print("Hello, World!")
Run it by opening terminal in the same directory and typing:
python [Link]
Congratulations! You've written and run your first Python program.
═══════════════════════════════════════════════════════════════════════════
CHAPTER 2: VARIABLES AND DATA TYPES
VARIABLES
Variables store information that your program can use and manipulate. Think of them
as labeled containers holding values.
name = "Alice"
age = 25
height = 5.6
is_student = True
Variable names should be:
- Descriptive (not "x" but "customer_name")
- Start with letter or underscore
- Contain only letters, numbers, and underscores
- Use lowercase with underscores for multiple words (snake_case)
BASIC DATA TYPES
Integers (int): Whole numbers
count = 10
temperature = -5
Floats (float): Decimal numbers
price = 19.99
pi = 3.14159
Strings (str): Text enclosed in quotes
greeting = "Hello"
message = 'Python is fun!'
multiline = """This spans
multiple lines"""
Booleans (bool): True or False values
is_active = True
has_permission = False
You can check a variable's type:
type(age) # Returns: <class 'int'>
TYPE CONVERSION
Convert between types when needed:
age = "25" # String
age_number = int(age) # Convert to integer
price = 19.99
price_text = str(price) # Convert to string
value = "3.14"
value_float = float(value) # Convert to float
═══════════════════════════════════════════════════════════════════════════
CHAPTER 3: OPERATORS AND EXPRESSIONS
ARITHMETIC OPERATORS
addition = 10 + 5 # 15
subtraction = 10 - 5 # 5
multiplication = 10 * 5 # 50
division = 10 / 5 # 2.0 (always returns float)
floor_division = 10 // 3 # 3 (rounds down)
modulus = 10 % 3 # 1 (remainder)
exponent = 2 ** 3 # 8 (2 to power of 3)
COMPARISON OPERATORS
10 == 10 # Equal to: True
10 != 5 # Not equal: True
10 > 5 # Greater than: True
10 < 5 # Less than: False
10 >= 10 # Greater than or equal: True
10 <= 5 # Less than or equal: False
LOGICAL OPERATORS
True and False # False (both must be True)
True or False # True (at least one must be True)
not True # False (negates boolean value)
STRING OPERATIONS
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name # "John Doe"
repeated = "Ha" * 3 # "HaHaHa"
message = f"Hello, {first_name}!" # f-strings for formatting
═══════════════════════════════════════════════════════════════════════════
CHAPTER 4: CONTROL FLOW
IF STATEMENTS
Control what code executes based on conditions:
age = 18
if age >= 18:
print("You're an adult")
elif age >= 13:
print("You're a teenager")
else:
print("You're a child")
Indentation matters in Python! Code blocks are defined by indentation (typically 4
spaces).
WHILE LOOPS
Repeat code while a condition is true:
count = 0
while count < 5:
print(f"Count: {count}")
count += 1 # Same as count = count + 1
Be careful to avoid infinite loops by ensuring the condition eventually becomes
false!
FOR LOOPS
Iterate over sequences (like ranges or lists):
# Print numbers 0 through 4
for i in range(5):
print(i)
# Print numbers 1 through 10
for i in range(1, 11):
print(i)
# Iterate over a list
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
BREAK AND CONTINUE
# Break: Exit loop early
for i in range(10):
if i == 5:
break # Stops loop at 5
print(i)
# Continue: Skip to next iteration
for i in range(10):
if i % 2 == 0:
continue # Skip even numbers
print(i)
═══════════════════════════════════════════════════════════════════════════
CHAPTER 5: DATA STRUCTURES
LISTS
Ordered, mutable collections of items:
numbers = [1, 2, 3, 4, 5]
mixed = [1, "hello", 3.14, True]
# Accessing elements (0-indexed)
first = numbers[0] # 1
last = numbers[-1] # 5 (negative indexes count from end)
# Modifying lists
[Link](6) # Add to end
[Link](0, 0) # Insert at index
[Link](3) # Remove first occurrence of value
popped = [Link]() # Remove and return last item
# Slicing
subset = numbers[1:4] # Elements from index 1 to 3
# List length
length = len(numbers)
TUPLES
Ordered, immutable collections (can't be changed after creation):
coordinates = (10, 20)
rgb_color = (255, 128, 0)
x = coordinates[0] # Access like lists
# Tuples are useful when you want data that shouldn't change
DICTIONARIES
Key-value pairs (like a real dictionary with words and definitions):
person = {
"name": "Alice",
"age": 30,
"city": "New York"
}
# Accessing values
name = person["name"]
age = [Link]("age") # Safer, returns None if key doesn't exist
# Adding/modifying
person["email"] = "alice@[Link]"
person["age"] = 31
# Removing
del person["city"]
# Checking if key exists
if "name" in person:
print("Name exists")
# Iterating
for key, value in [Link]():
print(f"{key}: {value}")
SETS
Unordered collections of unique items:
unique_numbers = {1, 2, 3, 3, 4} # {1, 2, 3, 4} (duplicates removed)
unique_numbers.add(5)
unique_numbers.remove(1)
# Set operations
set_a = {1, 2, 3}
set_b = {3, 4, 5}
union = set_a | set_b # {1, 2, 3, 4, 5}
intersection = set_a & set_b # {3}
difference = set_a - set_b # {1, 2}
═══════════════════════════════════════════════════════════════════════════
CHAPTER 6: FUNCTIONS
Functions are reusable blocks of code that perform specific tasks:
def greet(name):
"""This function greets the person passed as parameter"""
print(f"Hello, {name}!")
# Calling the function
greet("Alice") # Output: Hello, Alice!
RETURN VALUES
Functions can return values to the caller:
def add(a, b):
return a + b
result = add(5, 3) # result = 8
PARAMETERS AND ARGUMENTS
# Default parameters
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
print(greet("Bob")) # Hello, Bob!
print(greet("Bob", "Hi")) # Hi, Bob!
# Keyword arguments
print(greet(greeting="Hey", name="Charlie"))
SCOPE
Variables defined inside functions are local to that function:
x = 10 # Global variable
def my_function():
x = 5 # Local variable (different from global x)
print(x)
my_function() # Prints 5
print(x) # Prints 10
═══════════════════════════════════════════════════════════════════════════
CHAPTER 7: FILE HANDLING
READING FILES
# Read entire file
with open("[Link]", "r") as file:
content = [Link]()
print(content)
# Read line by line
with open("[Link]", "r") as file:
for line in file:
print([Link]()) # strip() removes newline characters
WRITING FILES
# Write mode (overwrites existing content)
with open("[Link]", "w") as file:
[Link]("Hello, World!\n")
[Link]("Python is awesome!")
# Append mode (adds to existing content)
with open("[Link]", "a") as file:
[Link]("\nNew line added")
Using "with" ensures files are properly closed after operations, even if errors
occur.
═══════════════════════════════════════════════════════════════════════════
CHAPTER 8: ERROR HANDLING
Programs don't always run perfectly. Handle errors gracefully:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(f"Result: {result}")
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")
except Exception as e:
print(f"An error occurred: {e}")
finally:
print("This always runs, error or not")
Try blocks attempt code that might fail. Except blocks handle specific errors.
Finally blocks always execute.
═══════════════════════════════════════════════════════════════════════════
CHAPTER 9: MODULES AND LIBRARIES
Modules organize code into reusable files. Libraries are collections of modules.
IMPORTING MODULES
# Import entire module
import math
print([Link](16)) # 4.0
# Import specific functions
from math import sqrt, pi
print(sqrt(16)) # 4.0
print(pi) # 3.141592653589793
# Import with alias
import numpy as np
array = [Link]([1, 2, 3])
POPULAR LIBRARIES
- NumPy: Numerical computing with arrays
- Pandas: Data analysis and manipulation
- Matplotlib: Data visualization
- Requests: HTTP requests and web scraping
- Django/Flask: Web frameworks
- TensorFlow/PyTorch: Machine learning
Install libraries using pip:
pip install numpy pandas matplotlib
═══════════════════════════════════════════════════════════════════════════
CHAPTER 10: OBJECT-ORIENTED PROGRAMMING BASICS
Classes allow you to create custom data types with properties and behaviors:
class Dog:
def __init__(self, name, age):
[Link] = name
[Link] = age
def bark(self):
return f"{[Link]} says woof!"
def get_age_in_human_years(self):
return [Link] * 7
# Creating objects (instances)
my_dog = Dog("Buddy", 3)
print(my_dog.bark()) # Buddy says woof!
print(my_dog.get_age_in_human_years()) # 21
Classes are blueprints. Objects are specific instances created from those
blueprints.
═══════════════════════════════════════════════════════════════════════════
PRACTICAL PROJECT: TODO LIST APPLICATION
Let's build a simple command-line todo list to practice what we've learned:
todos = []
def display_menu():
print("\n=== TODO LIST ===")
print("1. View todos")
print("2. Add todo")
print("3. Complete todo")
print("4. Quit")
def view_todos():
if not todos:
print("No todos yet!")
else:
for i, todo in enumerate(todos, 1):
status = "✓" if todo["completed"] else " "
print(f"{i}. [{status}] {todo['task']}")
def add_todo():
task = input("Enter task: ")
[Link]({"task": task, "completed": False})
print("Todo added!")
def complete_todo():
view_todos()
if todos:
num = int(input("Enter todo number to complete: "))
if 1 <= num <= len(todos):
todos[num - 1]["completed"] = True
print("Todo completed!")
else:
print("Invalid number!")
def main():
while True:
display_menu()
choice = input("Choose option: ")
if choice == "1":
view_todos()
elif choice == "2":
add_todo()
elif choice == "3":
complete_todo()
elif choice == "4":
print("Goodbye!")
break
else:
print("Invalid choice!")
if __name__ == "__main__":
main()
This project demonstrates functions, loops, conditionals, data structures, and user
input—core Python concepts!
═══════════════════════════════════════════════════════════════════════════
NEXT STEPS
You've learned Python fundamentals! Here's how to continue:
1. Practice Daily: Code every day, even if just for 15 minutes. Consistency beats
intensity.
2. Build Projects: Create programs that interest you. Projects solidify learning
better than tutorials.
3. Read Others' Code: Study well-written code on GitHub to learn best practices and
new techniques.
4. Learn Data Structures and Algorithms: Understanding these fundamentals makes you
a better programmer.
5. Explore Specializations: Web development, data science, automation, game
development—follow your interests.
6. Join Communities: Reddit (r/learnpython), Stack Overflow, Discord servers. Ask
questions and help others.
7. Read Documentation: Get comfortable reading official Python documentation. It's
comprehensive and well-written.
Remember: every expert programmer was once a beginner. Frustration is part of
learning. When stuck, break problems into smaller pieces, search for solutions, and
don't be afraid to ask for help.
Welcome to the Python programming community. Happy coding!