Python Tutorial — Learn Python Step by Step

Key takeaway: This free Python tutorial teaches you programming from scratch — variables, loops, functions, OOP, file handling, and libraries — with practical code examples you can run in your browser.

Python is a high-level, general-purpose programming language known for its readable syntax and versatility. It is used for web development, data science, machine learning, automation, and scripting. This tutorial is for complete beginners, students, and professionals switching to Python.

Last updated: September 2026

Reading CSV Files in Python

Python's csv module provides two main approaches for reading CSV files: csv.reader (list-based) and csv.DictReader (dictionary-based). Both handle quoting, escaping, and delimiters automatically.

Basic Reading with csv.reader

import csv

# csv.reader returns each row as a list of strings
with open("employees.csv", "r") as f:
    reader = csv.reader(f)

    # First row is usually the header
    header = next(reader)
    print(header)  # ["name", "department", "salary"]

    # Iterate remaining rows
    for row in reader:
        name, department, salary = row
        print(f"{name} works in {department}, earns ${salary}")

# Output:
# Alice works in Engineering, earns $95000
# Bob works in Marketing, earns $72000

Reading with csv.DictReader

import csv

# DictReader uses the first row as keys automatically
with open("employees.csv", "r") as f:
    reader = csv.DictReader(f)

    # Access columns by header name — much more readable
    for row in reader:
        print(f"{row[\"name\"]}: {row[\"department\"]} - ${row[\"salary\"]}")

    # reader.fieldnames gives you the header list
    # print(reader.fieldnames)  # ["name", "department", "salary"]

# If CSV has no header, provide field names manually
with open("no_header.csv", "r") as f:
    reader = csv.DictReader(f, fieldnames=["id", "name", "email"])
    for row in reader:
        print(row["email"])

Reading with Different Delimiters

import csv

# Tab-separated values (TSV)
with open("data.tsv", "r") as f:
    reader = csv.reader(f, delimiter="\t")
    for row in reader:
        print(row)

# Semicolon-separated (common in European locales)
with open("data_eu.csv", "r") as f:
    reader = csv.reader(f, delimiter=";")
    for row in reader:
        print(row)

# Pipe-separated
with open("data.txt", "r") as f:
    reader = csv.reader(f, delimiter="|")
    for row in reader:
        print(row)

# Auto-detect delimiter with csv.Sniffer
with open("unknown.csv", "r") as f:
    sample = f.read(1024)
    dialect = csv.Sniffer().sniff(sample)
    f.seek(0)
    reader = csv.reader(f, dialect)
    for row in reader:
        print(row)

Loading CSV into Data Structures

import csv

# Load all rows into a list of dictionaries
def load_csv(filename):
    with open(filename, "r") as f:
        return list(csv.DictReader(f))

people = load_csv("employees.csv")
print(f"Total records: {len(people)}")
print(people[0])  # {"name": "Alice", "department": "Engineering", ...}

# Filter while reading
def load_filtered(filename, department):
    results = []
    with open(filename, "r") as f:
        for row in csv.DictReader(f):
            if row["department"] == department:
                results.append(row)
    return results

engineers = load_filtered("employees.csv", "Engineering")

# Convert types during reading (CSV values are always strings)
with open("sales.csv") as f:
    reader = csv.DictReader(f)
    total = 0
    for row in reader:
        amount = float(row["amount"])  # convert string to float
        quantity = int(row["quantity"])
        total += amount * quantity
    print(f"Total revenue: ${total:,.2f}")

Handling Encoding and Errors

import csv

# Handle UTF-8 BOM (common in Excel exports)
with open("excel_export.csv", "r", encoding="utf-8-sig") as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row)

# Handle encoding errors gracefully
with open("messy.csv", "r", encoding="utf-8", errors="replace") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

# Skip malformed rows
with open("dirty.csv", "r") as f:
    reader = csv.reader(f)
    for i, row in enumerate(reader, 1):
        try:
            if len(row) < 3:  # expected 3 columns
                print(f"Skipping row {i}: too few columns")
                continue
            process(row)
        except Exception as e:
            print(f"Error on row {i}: {e}")
  • Use csv.DictReader for readable, header-based column access.
  • All CSV values are strings — cast to int/float as needed.
  • Use encoding="utf-8-sig" for Excel-exported CSV files with BOM.
  • Use csv.Sniffer to auto-detect delimiters in unknown files.
  • Process row-by-row for large files to avoid loading everything into memory.

Frequently Asked Questions

Answers to common Python getting-started questions

Answer: You can use an online Python editor that runs in your browser. It provides a Python interpreter so you can execute code instantly without setup. This is ideal for quick practice and learning.

Answer: Download the latest Python installer from the official Python website, run the installer, and select "Add python.exe to PATH" before clicking "Install Now". After installation, verify with the command: python --version.

Answer: Download the macOS installer from the Python website, run it, and follow the steps. Verify the installation with python3 --version in the Terminal. macOS often uses python3 to refer to Python 3.

Answer: Open your terminal or command prompt and run python --version (Windows) or python3 --version (macOS/Linux). If you see a version number, Python is installed correctly.

Answer: On macOS and Linux, python may refer to Python 2.x while python3 refers to Python 3.x. Use python3 to ensure you are running Python 3.

Answer: Yes. Python runs on Windows, macOS, and Linux. Code is generally portable across platforms, especially for beginner-level scripts.

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

FeaturePythonJavaJavaScriptC++
SyntaxVery clean, readableVerboseModerateComplex
TypingDynamic, strongStatic, strongDynamic, weakStatic, strong
SpeedSlower (interpreted)Fast (JIT)Fast (V8 JIT)Fastest (native)
Best ForAI/ML, data, automationEnterprise, AndroidWeb frontend/backendSystems, games
Learning Time2–4 weeks basics4–6 weeks basics3–4 weeks basics8–12 weeks basics

How to Get Started

  1. Run Python online: Use our free Python Compiler — no installation needed.
  2. Install locally: Download Python 3 from python.org (Windows/Mac) or use apt install python3 (Linux).
  3. Verify: Run python3 --version in your terminal to confirm installation.
  4. Choose an editor: VS Code with Python extension (free), PyCharm Community (free), or Jupyter Notebook for data science.
  5. Follow this tutorial in order: Start from Introduction and work through each topic sequentially.

Frequently Asked Questions

Do I need prior programming experience?

No. Python is designed to be beginner-friendly. This tutorial starts from absolute zero and builds up gradually.

Which Python version should I use?

Python 3.10+ is recommended. Python 2 reached end-of-life in 2020. All examples in this tutorial use Python 3 syntax.

How long does it take to learn Python?

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.

Is this tutorial free?

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.

Python Career Guide — From Zero to Your First Job

Can I Learn Python and Get a Job Without a Degree?

Yes, absolutely. Python is one of the most accessible paths into tech without a traditional CS degree. Companies like Google, Apple, and IBM have removed degree requirements for many roles. What matters is: demonstrable skill (portfolio projects), problem-solving ability (coding challenges), and practical knowledge (frameworks, APIs, databases). According to the StackOverflow 2024 Survey, 26% of professional developers don't have a CS degree. For Python-specific roles like data analysis, automation, or backend development — bootcamp graduates and self-taught developers get hired regularly.

How Long Does It Really Take to Learn Python for a Job?

4–9 months of dedicated daily practice (2–3 hours/day). Here's a realistic timeline:

  • Month 1–2: Python basics — syntax, data types, functions, loops, file handling
  • Month 3–4: Intermediate — OOP, modules, error handling, working with APIs, databases (SQLite/PostgreSQL)
  • Month 5–6: Specialization — pick one track: web dev (Django/Flask), data science (pandas/numpy), or automation
  • Month 7–8: Projects — build 3–4 portfolio projects that solve real problems
  • Month 9: Job prep — resume, LinkedIn, apply to 50+ positions, interview practice

Part-time learners (1 hour/day) should expect 9–12 months. Full-time bootcamp students can compress this to 3–4 months.

Is 30 Too Old to Learn Python and Start Coding?

Not even close. The average age of career changers entering tech is 32–35. Many successful developers started at 30, 40, even 50. Your life experience (communication, project management, domain knowledge) is actually an advantage — you bring context that 22-year-old CS graduates don't have. A 35-year-old former teacher who learns Python and enters EdTech brings irreplaceable domain expertise. A 40-year-old accountant who learns Python data analysis has a unique edge in FinTech. Age is irrelevant; consistency is everything.

Best Free Python Courses That Actually Get You Hired

  1. This tutorial (OperateTools): Practice-focused with runnable examples — covers basics to advanced
  2. CS50P (Harvard, free on edX): Rigorous university-level Python course with problem sets
  3. Automate the Boring Stuff (free online): Practical automation projects — great for non-CS backgrounds
  4. freeCodeCamp Python (YouTube): 12-hour comprehensive video course — 50M+ views
  5. Python.org Official Tutorial: Dry but complete reference — good after you know basics
  6. Kaggle Learn (for data science): Hands-on data analysis courses with real datasets

The best course is the one you finish. Pick ONE, complete it fully, then build projects. Course-hopping is the #1 reason beginners don't get hired.

Python Jobs for Beginners: What Can You Actually Get?

RoleSalary (India)Salary (US)Skills Needed
Python Automation Engineer₹4–8 LPA$60K–$85KScripting, APIs, Selenium
Junior Data Analyst₹5–10 LPA$55K–$80KPandas, SQL, visualization
Backend Developer (Django/Flask)₹6–12 LPA$70K–$100KDjango, REST APIs, SQL
QA/Test Automation₹4–8 LPA$60K–$90KPytest, Selenium, CI/CD
DevOps/Scripting Role₹6–12 LPA$75K–$110KPython, Bash, AWS, Docker

How to Learn Python While Working Full Time

The 1-hour-a-day strategy works. Consistency beats intensity. Here's a realistic schedule for working professionals:

  • Morning (30 min): Read/watch one concept before work (on commute or with coffee)
  • Evening (30–45 min): Practice coding — solve one problem or write one small script
  • Weekends (2–3 hours): Build project features, do code reviews, watch longer tutorials
  • Trick: Replace phone scrolling time with Python practice apps (SoloLearn, Mimo)

At this pace, you'll be job-ready in 9–12 months. The key: never skip two days in a row.

Python Career Change: Is One Year Enough?

Yes, for most entry-level roles. One year of dedicated learning (daily practice + projects) is sufficient for: automation roles, junior data analyst positions, QA automation, and backend development with Django/Flask. For data science or ML engineering — 1 year gets you the Python skills, but you'll also need statistics and domain knowledge (total: 1.5–2 years). Be realistic: you're competing with CS graduates for the same roles, so your projects and practical skills must be strong.

What Python Skills Do Employers Actually Want?

  1. Core Python: Functions, OOP, decorators, generators, error handling, file I/O
  2. Frameworks: Django or Flask (web), FastAPI (modern APIs), or pandas (data)
  3. Databases: SQL (PostgreSQL/MySQL), basic NoSQL (MongoDB/Redis)
  4. APIs: Building REST APIs, consuming third-party APIs, authentication
  5. Version Control: Git + GitHub (non-negotiable)
  6. Testing: Unit tests (pytest), basic CI/CD understanding
  7. Cloud basics: Deploy to AWS/GCP/Heroku — at least one
  8. Problem solving: LeetCode easy/medium in Python

Can You Get a Job With Just Python (No Other Skills)?

Realistically, no. Python alone isn't enough — you need complementary skills. Minimum stack for each path:

  • Web dev: Python + Django + SQL + HTML/CSS + Git + deployment
  • Data: Python + pandas + SQL + Excel + visualization (Matplotlib/Tableau)
  • Automation: Python + APIs + Linux basics + scheduling (cron)
  • DevOps: Python + Docker + AWS + CI/CD + Bash

Think of Python as the engine — you still need wheels (frameworks), fuel (data/APIs), and a road (deployment).

Best Order to Learn Python: Beginner to Job-Ready

  1. Variables, data types, operators, strings
  2. Conditionals (if/else), loops (for/while)
  3. Functions, scope, return values
  4. Lists, dictionaries, sets, tuples
  5. File I/O, error handling (try/except)
  6. Object-Oriented Programming (classes, inheritance)
  7. Modules, packages, virtual environments
  8. Working with APIs (requests library)
  9. Database operations (SQLite, then PostgreSQL)
  10. Web framework (Django or Flask)
  11. Testing (pytest) and Git
  12. Build 3 portfolio projects
  13. Deploy to cloud (Heroku/Railway/AWS)
  14. Interview prep (LeetCode + system design basics)

How to Build Python Projects That Impress Employers

Rule: Solve real problems, not tutorial clones. Employers have seen 1000 todo apps. Build projects that demonstrate you can handle real-world complexity:

  • API aggregator: Fetch data from multiple APIs, clean it, display with a web interface
  • Automation tool: Auto-generate reports, send emails, scrape/monitor prices (with proper API usage)
  • Full-stack app: Django app with user auth, CRUD, database, and deployed to production
  • Data pipeline: Ingest CSV/API data → clean → transform → visualize → schedule with cron
  • CLI tool: Published on PyPI — shows you understand packaging, testing, documentation

Python vs Other Languages: Which Gets You a Job Faster?

LanguageTime to First JobEntry Salary (India)Job Volume
Python6–9 months₹5–10 LPAVery High
JavaScript5–8 months₹4–8 LPAHighest
Java8–12 months₹5–9 LPAHigh
C++9–12 months₹6–12 LPAModerate

Python offers the best balance of learning speed, job availability, and salary ceiling (data science/ML roles pay very high at senior level).

Entry-Level Python Jobs: Salary and What to Expect

What your first Python job looks like: You'll likely work on maintaining existing code (not building from scratch), fixing bugs, writing tests, building internal tools, or analyzing data. First-year tasks are rarely glamorous — but they build the foundation for rapid growth. Expect ₹4–10 LPA in India or $55K–$85K in the US for entry-level. After 2–3 years of experience, salaries typically double.

How to Transition to a Python Developer Job From Another Field

Your existing expertise is your superpower. Don't try to compete with CS graduates on pure coding — compete on domain knowledge + Python:

  • Finance background → FinTech/Data Analyst: Python + pandas + financial modeling
  • Healthcare background → Health Tech: Python + data analysis + medical domain knowledge
  • Marketing background → Growth/Analytics: Python + SQL + A/B testing + marketing metrics
  • Teaching background → EdTech: Python + content + learning platform development
  • Manual testing → Test Automation: Python + Selenium + pytest + CI/CD

Do You Need Certifications to Get a Python Job?

Not required, but can help with ATS filtering. Most hiring managers care more about projects and interview performance than certificates. That said, useful certifications include: Google IT Automation with Python (Coursera), PCEP/PCAP (Python Institute), AWS Certified Cloud Practitioner (if targeting DevOps), and IBM Data Science Professional Certificate (for data roles). Certifications are most useful when you have no degree AND no work experience — they provide initial credibility.

Best Python Tutorial for Career Changers

Our recommendation for adults switching careers: Start with this tutorial (practice-based, no fluff), supplement with "Automate the Boring Stuff" (practical projects), and finish with CS50P (Harvard rigor). Career changers benefit most from project-based learning — you need to see Python solving real problems, not abstract exercises. Avoid 40-hour video courses that feel productive but don't build muscle memory. Code every day, even if just for 30 minutes.

How to Get Your First Python Job With No Experience

  1. Build 3–5 projects and deploy them (live URLs on your resume)
  2. Contribute to open source — even documentation PRs count
  3. Create content — write blog posts about what you learned (shows communication skills)
  4. Network — attend meetups, engage on Twitter/LinkedIn, reach out to developers
  5. Apply broadly — 100+ applications is normal for first job. Don't be picky initially
  6. Take freelance/contract work — Upwork/Fiverr projects count as experience
  7. Consider internships — even unpaid ones for 2–3 months can lead to full-time offers

Python Remote Jobs: Can Beginners Really Work From Home?

Yes, but competition is intense. Remote Python jobs exist for all levels, but entry-level remote positions attract 500+ applicants. Your best chances: companies that are remote-first (GitLab, Zapier, Automattic), startups that can't afford SF/Bangalore salaries, and freelance platforms (Toptal, Upwork). To stand out as a remote beginner: have a strong GitHub profile, excellent written communication, and be willing to work in different time zones initially.

What Projects Should You Build to Get a Python Job?

Projects that demonstrate job-relevant skills:

  • For web dev jobs: Full-stack Django app with auth, database, API, deployment (e.g., job board, e-commerce, SaaS dashboard)
  • For data jobs: End-to-end data pipeline — scrape/ingest → clean → analyze → visualize → automate
  • For automation jobs: Bot that monitors prices/stocks, auto-generates reports, integrates with Slack/email
  • For DevOps: CI/CD pipeline, infrastructure-as-code tool, monitoring dashboard
  • Universal: REST API that other developers can actually use — documented, tested, deployed

The 80/20 Rule in Python: Learn Only What Gets You Hired

20% of Python knowledge handles 80% of real-world jobs. Focus on these first:

  • Functions + dictionaries + list comprehensions (used in every Python codebase)
  • Working with APIs (requests library — 90% of Python jobs interact with APIs)
  • File handling (CSV, JSON — data is everywhere)
  • One web framework (Django for jobs, Flask for understanding)
  • SQL basics (SELECT, JOIN, WHERE — every job needs data access)
  • Git (commit, branch, merge, pull request — daily developer workflow)

Skip (for now): metaclasses, descriptors, async generators, C extensions, advanced decorators. These are expert topics you'll learn on the job.

How to Land a Python Job as a Single Parent

It's harder but very doable. Many successful developers are single parents who learned to code during nap times and after bedtime. Strategies that work: learn in 30-minute focused blocks (not 3-hour sessions), use mobile coding apps during waiting times, join online communities for accountability (100Devs, #100DaysOfCode), target remote-friendly employers, and consider part-time or contract roles as stepping stones to full-time. Your time management skills as a parent actually translate directly to project management in tech.

Python Data Scientist vs Web Developer: Which Job is Easier to Get?

FactorData ScientistWeb Developer (Django)
Time to job-ready12–18 months6–9 months
Additional skills neededStatistics, ML, math, SQLHTML/CSS, SQL, deployment
Entry salary (India)₹6–12 LPA₹5–10 LPA
Job availabilityModerate (often need Masters)High (no degree needed)
Remote friendlinessHighVery High
Career ceilingVery high (₹30–80 LPA senior)High (₹20–50 LPA senior)

Verdict: Web development is easier and faster to break into. Data science pays more long-term but requires more upfront investment (statistics, ML). If you need a job in 6 months — go web. If you have 12+ months and enjoy math — go data science.

Sources: StackOverflow Survey 2024, TIOBE Index, LinkedIn/Naukri Job Postings 2024–2025, Glassdoor salary data. Start your Python journey with the tutorial lessons above.