Why Learn Python?
Python is one of the most popular programming languages today, known for its simplicity, readability, and versatility. It's used in web development, data science, artificial intelligence, automation, and more. Python's syntax is clean and intuitive, making it an excellent first language for beginners while remaining powerful enough for professional development.
Whether you're building web applications with frameworks like Django or Flask, analyzing data with pandas and NumPy, or creating machine learning models with TensorFlow, Python provides the tools and libraries you need. For backend development, see our Backend Developer Path.
Getting Started
To begin programming in Python, you'll need to install Python on your system. Python 3.9 or later is recommended. You can download it from python.org or use package managers like Homebrew (macOS) or apt (Linux).
Once installed, verify your installation by running python --version in your terminal. You can start writing Python code in a text editor, IDE like PyCharm or VS Code, or use Python's interactive interpreter (REPL) for quick experimentation.
Basic Syntax
Variables and Data Types
Python is dynamically typed, meaning you don't need to declare variable types explicitly. Python supports integers, floats, strings, booleans, lists, dictionaries, tuples, and sets.
# Variables and basic types
name = "Python"
version = 3.11
is_awesome = True
numbers = [1, 2, 3, 4, 5]
person = {"name": "Alice", "age": 30}
Control Flow
Python uses indentation to define code blocks, making code more readable. Control flow includes if/else statements, loops (for and while), and exception handling.
# Conditional statements
age = 18
if age >= 18:
print("You are an adult")
else:
print("You are a minor")
# Loops
for i in range(5):
print(f"Number: {i}")
# List comprehension (Pythonic way)
squares = [x**2 for x in range(10)]
Functions
Functions are defined using the def keyword. Python supports default arguments, keyword arguments, variable-length arguments, and lambda functions.
# Function definition
def greet(name, greeting="Hello"):
return f"{greeting}, {name}!"
# Call the function
message = greet("World")
print(message) # Output: Hello, World!
# Lambda function
multiply = lambda x, y: x * y
result = multiply(3, 4) # Returns 12
Data Structures
Lists
Lists are ordered, mutable collections. They support indexing, slicing, and various methods for manipulation.
# List operations
fruits = ["apple", "banana", "cherry"]
fruits.append("orange") # Add item
fruits.remove("banana") # Remove item
fruits.sort() # Sort in place
print(fruits[0]) # Access by index
Dictionaries
Dictionaries store key-value pairs. They're perfect for representing structured data and are fundamental to Python programming.
# Dictionary operations
user = {
"name": "Alice",
"email": "alice@example.com",
"age": 30
}
user["city"] = "New York" # Add key-value pair
email = user.get("email") # Safe access
for key, value in user.items():
print(f"{key}: {value}")
Object-Oriented Programming
Python supports object-oriented programming with classes and objects. Classes define blueprints for objects, encapsulating data and behavior.
# Class definition
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
return f"Hi, I'm {self.name} and I'm {self.age} years old"
# Create an instance
person = Person("Alice", 30)
print(person.introduce())
Working with Files
Python makes file operations straightforward. Use the open() function with context managers (with statement) for safe file handling.
# Reading a file
with open("data.txt", "r") as file:
content = file.read()
print(content)
# Writing to a file
with open("output.txt", "w") as file:
file.write("Hello, Python!")
Error Handling
Python uses try-except blocks for error handling. This allows you to gracefully handle exceptions and prevent program crashes.
# Exception handling
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero!")
except Exception as e:
print(f"An error occurred: {e}")
finally:
print("This always executes")
Modules and Packages
Python's module system allows you to organize code into reusable components. The standard library provides many useful modules, and you can install additional packages using pip.
# Importing modules
import math
from datetime import datetime
import json as js
# Using modules
pi_value = math.pi
current_time = datetime.now()
data = js.loads('{"key": "value"}')
Popular third-party packages include requests for HTTP, pandas for data analysis, Flask/Django for web development, and numpy for numerical computing. For API development, see our RESTful API Design guide.
Best Practices
Follow PEP 8
Python Enhancement Proposal 8 defines style guidelines. Use tools like flake8 or black to enforce consistent formatting.
Use Virtual Environments
Isolate project dependencies using venv or virtualenv. This prevents conflicts between different projects.
Write Docstrings
Document your functions and classes using docstrings. This improves code maintainability and helps other developers understand your code.
Use Type Hints
While Python is dynamically typed, type hints (Python 3.5+) improve code readability and enable static type checking with tools like mypy.
Next Steps
Now that you understand Python basics, continue learning with: