Learn Python Programming
Start with getting started, installation, and core basics. Clear explanations and practical examples to help you learn faster.
Python CSV Overview
CSV (Comma-Separated Values) is a simple format for storing tabular data. Python's built-in csv module makes reading and writing CSV files easy and reliable.
What Is CSV?
# CSV is plain text with values separated by commas (or other delimiters)
# Example CSV file (data.csv):
# name,age,city
# Alice,30,New York
# Bob,25,London
# Charlie,35,Tokyo
# Each line is a row, commas separate columns
# First row is usually the header
Reading CSV Files
import csv
# Basic reading with csv.reader (returns lists)
with open("data.csv", "r") as f:
reader = csv.reader(f)
header = next(reader) # first row is header
print(header) # ["name", "age", "city"]
for row in reader:
name, age, city = row
print(f"{name} is {age} years old from {city}")
# Reading as dictionaries (more readable)
with open("data.csv", "r") as f:
reader = csv.DictReader(f)
for row in reader:
# Each row is an OrderedDict with header keys
print(f"{row[\"name\"]} - {row[\"city\"]}")
# Reading with different delimiter
with open("data.tsv", "r") as f:
reader = csv.reader(f, delimiter="\t") # tab-separated
for row in reader:
print(row)
Writing CSV Files
import csv
# Writing with csv.writer (from lists)
data = [
["name", "age", "city"],
["Alice", 30, "New York"],
["Bob", 25, "London"],
["Charlie", 35, "Tokyo"],
]
with open("output.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(data[0]) # write header
writer.writerows(data[1:]) # write all data rows
# Writing with DictWriter (from dictionaries)
users = [
{"name": "Alice", "age": 30, "city": "New York"},
{"name": "Bob", "age": 25, "city": "London"},
]
with open("users.csv", "w", newline="") as f:
fieldnames = ["name", "age", "city"]
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader() # writes the header row
writer.writerows(users)
# IMPORTANT: always use newline="" on Windows to prevent blank rows
Handling Edge Cases
import csv
# Values with commas, quotes, or newlines are auto-quoted
data = [
["name", "address", "note"],
["Alice", "123 Main St, Apt 4", "She said \"hello\""],
["Bob", "456 Oak Ave", "Line 1\nLine 2"],
]
with open("special.csv", "w", newline="") as f:
writer = csv.writer(f, quoting=csv.QUOTE_MINIMAL)
writer.writerows(data)
# Reading with different encodings
with open("data.csv", "r", encoding="utf-8-sig") as f: # handles BOM
reader = csv.reader(f)
for row in reader:
print(row)
# Skip empty rows
with open("data.csv") as f:
reader = csv.reader(f)
for row in reader:
if not row or all(cell.strip() == "" for cell in row):
continue
print(row)
Practical Example: Data Processing
import csv
# Filter and transform CSV data
def filter_csv(input_file, output_file, min_age=25):
"""Read a CSV, filter by age, and write results."""
with open(input_file) as fin, open(output_file, "w", newline="") as fout:
reader = csv.DictReader(fin)
writer = csv.DictWriter(fout, fieldnames=reader.fieldnames)
writer.writeheader()
count = 0
for row in reader:
if int(row["age"]) >= min_age:
writer.writerow(row)
count += 1
print(f"Wrote {count} rows to {output_file}")
filter_csv("people.csv", "adults.csv", min_age=18)
# Convert CSV to list of dicts (load all into memory)
def load_csv(filename):
with open(filename) as f:
return list(csv.DictReader(f))
people = load_csv("people.csv")
print(f"Loaded {len(people)} records")
print(people[0]) # {"name": "Alice", "age": "30", "city": "New York"}
- Use
csv.DictReader/csv.DictWriterfor readable, header-based access. - Always pass
newline=""when opening files for writing on Windows. - The csv module handles quoting, escaping commas, and newlines inside values automatically.
- For large CSV files, process row-by-row instead of loading everything into memory.
- For complex data analysis, consider
pandas.read_csv()which is faster and more powerful.
Frequently Asked Questions
Answers to common Python getting-started questions
Python Programming Tutorial — Learn Python from Scratch
Python is the world's most popular programming language for beginners, data science, AI/ML, web development, and automation. This tutorial teaches Python step-by-step with clear explanations and runnable code examples. You can try every example in our free Python Compiler without installing anything.
Each topic builds on the previous one, starting from installation and Hello World through advanced concepts like decorators, generators, and file I/O. Whether you are a complete beginner or refreshing specific skills, every page gives you immediately usable code.
What This Tutorial Covers
- Getting Started: Install Python, run online, Hello World
- Basics: Variables, data types, type conversion, input/output
- Operators: Arithmetic, comparison, logical, assignment
- Control Flow: if/elif/else, for loops, while, break/continue
- Data Structures: Lists, tuples, sets, dictionaries
- Strings: Methods, slicing, formatting, f-strings
- Functions: Parameters, return values, *args, **kwargs, scope
- OOP: Classes, objects, inheritance, polymorphism
- File I/O: Reading, writing, CSV, JSON handling
- Exceptions: try/except, custom exceptions, raise
- Advanced: List comprehensions, lambda, generators, decorators
- Modules: import, pip, packages, __name__ == "__main__"
Why Learn Python in 2026?
- #1 most popular language: Ranked first on TIOBE, Stack Overflow, and GitHub for multiple years running.
- AI and Data Science: The primary language for machine learning (TensorFlow, PyTorch, scikit-learn), data analysis (Pandas, NumPy), and AI development.
- Web development: Django and Flask power backends at companies like Instagram, Spotify, and Pinterest.
- Automation: Automate files, emails, web scraping, reports, and system administration tasks in minutes.
- Beginner-friendly: Clean syntax with enforced indentation makes code readable from day one — no curly braces or semicolons.
- Massive job market: Python developers are in high demand across tech, finance, healthcare, and research.
Python vs Other Languages
| Feature | Python | Java | JavaScript | C++ |
|---|---|---|---|---|
| Syntax | Very clean, readable | Verbose | Moderate | Complex |
| Typing | Dynamic, strong | Static, strong | Dynamic, weak | Static, strong |
| Speed | Slower (interpreted) | Fast (JIT) | Fast (V8 JIT) | Fastest (native) |
| Best For | AI/ML, data, automation | Enterprise, Android | Web frontend/backend | Systems, games |
| Learning Time | 2–4 weeks basics | 4–6 weeks basics | 3–4 weeks basics | 8–12 weeks basics |
How to Get Started
- Run Python online: Use our free Python Compiler — no installation needed.
- Install locally: Download Python 3 from
python.org(Windows/Mac) or useapt install python3(Linux). - Verify: Run
python3 --versionin your terminal to confirm installation. - Choose an editor: VS Code with Python extension (free), PyCharm Community (free), or Jupyter Notebook for data science.
- Follow this tutorial in order: Start from Introduction and work through each topic sequentially.
Frequently Asked Questions
No. Python is designed to be beginner-friendly. This tutorial starts from absolute zero and builds up gradually.
Python 3.10+ is recommended. Python 2 reached end-of-life in 2020. All examples in this tutorial use Python 3 syntax.
Basics (syntax, loops, functions) take 2–4 weeks. Intermediate (OOP, file I/O, modules) adds 3–4 weeks. Specialisation (Django, data science, ML) takes another 2–3 months.
Yes, completely free. No account, no sign-up. All topics and examples available without restriction.
Who Is This For?
Complete beginners choosing their first programming language. Students in CS courses needing a Python reference. Data analysts transitioning from Excel to Python (Pandas). Self-taught developers adding Python to their skill set. Professionals automating repetitive tasks. Anyone preparing for Python coding interviews.