Free Interactive Python Course

Python Tutorial — Learn Python Step by Step

Key takeaway: Master Python programming from scratch — variables, loops, functions, OOP, file handling, and libraries — with clear human-readable explanations and runnable code examples.

50+ Structured Lessons
Runnable Code Examples
100% Free No Registration
Updated October 2026

Python Exceptions

Exceptions are errors detected during execution. When Python encounters an error it cannot handle, it raises an exception that interrupts normal program flow.

What Are Exceptions?

# Exceptions occur when something goes wrong at runtime
# (as opposed to syntax errors, which are caught before running)

# Common built-in exceptions:
print(10 / 0)           # ZeroDivisionError
print(int("hello"))     # ValueError
print(my_var)           # NameError (undefined variable)
print([1, 2][5])        # IndexError
print({"a": 1}["b"])    # KeyError
print("hello" + 5)      # TypeError
open("missing.txt")     # FileNotFoundError

Exception Hierarchy

# All exceptions inherit from BaseException
# Most user-facing exceptions inherit from Exception

# BaseException
# ├── SystemExit
# ├── KeyboardInterrupt
# ├── GeneratorExit
# └── Exception
#     ├── ValueError
#     ├── TypeError
#     ├── KeyError
#     ├── IndexError
#     ├── FileNotFoundError (subclass of OSError)
#     ├── ZeroDivisionError (subclass of ArithmeticError)
#     ├── AttributeError
#     ├── ImportError
#     │   └── ModuleNotFoundError
#     ├── RuntimeError
#     │   └── RecursionError
#     └── StopIteration

# You can inspect the hierarchy:
print(ValueError.__mro__)
# (ValueError, Exception, BaseException, object)

Basic Exception Handling

# try/except catches exceptions and prevents crashes
try:
    number = int(input("Enter a number: "))
    result = 100 / number
    print(f"Result: {result}")
except ValueError:
    print("That is not a valid number!")
except ZeroDivisionError:
    print("Cannot divide by zero!")

# Catch the exception object for details
try:
    data = [1, 2, 3]
    print(data[10])
except IndexError as e:
    print(f"Error: {e}")        # list index out of range
    print(f"Type: {type(e)}")   # <class 'IndexError'>

Common Exception Types and When They Occur

ExceptionWhen It OccursExample
ValueErrorWrong value for the typeint("abc")
TypeErrorWrong type for operation"a" + 1
KeyErrorDict key not foundd["missing"]
IndexErrorList index out of range[1,2][5]
FileNotFoundErrorFile does not existopen("x.txt")
ZeroDivisionErrorDivision by zero10/0
AttributeErrorObject has no attributeNone.upper()
ImportErrorModule not foundimport fake_lib
PermissionErrorNo permission for operationopen("/etc/shadow")

Raising Exceptions

# Use raise to throw an exception intentionally
def set_age(age):
    if age < 0:
        raise ValueError("Age cannot be negative")
    if age > 150:
        raise ValueError("Age seems unrealistic")
    return age

try:
    set_age(-5)
except ValueError as e:
    print(e)  # Age cannot be negative

# Re-raise an exception after logging
try:
    result = risky_operation()
except Exception as e:
    print(f"Error occurred: {e}")
    raise  # re-raises the same exception
  • Exceptions are runtime errors — different from syntax errors which prevent execution.
  • Use try/except to handle exceptions gracefully instead of crashing.
  • Catch specific exceptions (not bare except:) to avoid hiding bugs.
  • Use raise to signal errors in your own functions with descriptive messages.
  • All exceptions form a hierarchy — catching a parent catches all its children.

Python Programming Tutorial — Learn Python in a practical, step-by-step way. According to the official Python documentation, Python emphasizes code readability and simplicity, making it ideal for beginners.

Related tools: Python Online Compiler | Python Examples | JavaScript Tutorial | Java Tutorial

Python Career & Learning Guide

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 in our free Python Compiler.

Why Learn Python in 2026?

  • #1 Most Popular Language: Ranked first on TIOBE, Stack Overflow, and GitHub.
  • AI and Data Science: The primary language for machine learning (TensorFlow, PyTorch, scikit-learn) and data analysis (Pandas, NumPy).
  • Web Development: Django and Flask power scalable backends at companies like Instagram and Spotify.
  • Automation & Scripting: Automate files, emails, web scraping, and data processing in minutes.

Python vs Other Languages

FeaturePythonJavaJavaScriptC++
SyntaxVery clean, readableVerboseModerateComplex
TypingDynamic, strongStatic, strongDynamic, weakStatic, strong
Best ForAI/ML, Data, WebEnterprise, AndroidWeb Frontend/BackendSystems, Games
Learning Time2–4 weeks basics4–6 weeks basics3–4 weeks basics8–12 weeks basics

Frequently Asked Questions

Do I need prior programming experience to learn Python?

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

Which Python version should I use?

Python 3.10+ is recommended. All examples in this tutorial use Python 3 syntax.

Is this Python tutorial completely free?

Yes, 100% free with no registration or sign-up required. Access all lessons and code examples anytime.