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 Modules

A module is a Python file containing functions, classes, and variables that you can import and reuse. Modules help organize code into logical, maintainable units.

Importing Modules

# Import entire module
import math
print(math.sqrt(16))   # 4.0
print(math.pi)         # 3.141592653589793

# Import specific items
from math import sqrt, pi
print(sqrt(25))  # 5.0
print(pi)        # 3.141592653589793

# Import with alias
import datetime as dt
now = dt.datetime.now()
print(now.strftime("%Y-%m-%d"))

# Import everything (avoid in large projects)
from math import *
print(ceil(3.2))  # 4

Creating Your Own Module

# File: myutils.py
"""Utility functions for data processing."""

def clean_text(text):
    """Remove extra whitespace and lowercase."""
    return " ".join(text.split()).lower()

def is_valid_email(email):
    """Basic email validation."""
    return "@" in email and "." in email.split("@")[1]

PI = 3.14159
VERSION = "1.0.0"

# File: main.py
import myutils

print(myutils.clean_text("  Hello   World  "))  # "hello world"
print(myutils.is_valid_email("user@example.com"))  # True
print(myutils.VERSION)  # "1.0.0"

# Or import specific items
from myutils import clean_text, is_valid_email
print(clean_text("  Messy   Text  "))  # "messy text"

Common Standard Library Modules

# os — operating system interface
import os
print(os.getcwd())         # current working directory
print(os.listdir("."))     # list files in directory
os.makedirs("new_dir", exist_ok=True)

# sys — system-specific parameters
import sys
print(sys.version)         # Python version
print(sys.platform)        # "linux", "win32", "darwin"

# json — JSON encoding/decoding
import json
data = {"name": "Alice", "age": 30}
json_str = json.dumps(data, indent=2)
parsed = json.loads(json_str)

# datetime — date and time
from datetime import datetime, timedelta
now = datetime.now()
tomorrow = now + timedelta(days=1)
print(tomorrow.strftime("%B %d, %Y"))

# random — random number generation
import random
print(random.randint(1, 100))
print(random.choice(["apple", "banana", "cherry"]))

# pathlib — modern file path handling (Python 3.4+)
from pathlib import Path
home = Path.home()
config = home / ".config" / "myapp" / "settings.json"
print(config.exists())

Module Search Path and dir()

import sys

# Python looks for modules in these directories (in order):
# 1. Current directory
# 2. PYTHONPATH environment variable directories
# 3. Standard library directories
# 4. Site-packages (third-party packages)
print(sys.path)

# List all names in a module
import math
print(dir(math))  # ["acos", "acosh", "asin", ..., "tau", "trunc"]

# Get help on a module or function
help(math.gcd)  # shows docstring and usage

Conditional Imports and Lazy Loading

# Try importing with fallback
try:
    import ujson as json  # faster JSON library
except ImportError:
    import json  # fall back to standard library

# Import only when needed (lazy loading)
def process_csv(filename):
    import csv  # imported only when function is called
    with open(filename) as f:
        return list(csv.DictReader(f))

# Check if module is available
import importlib
spec = importlib.util.find_spec("numpy")
if spec is not None:
    import numpy as np
    print("NumPy available")
else:
    print("NumPy not installed")
  • Use import module for clarity; use from module import name for convenience.
  • Avoid from module import * in production code — it pollutes the namespace.
  • Any .py file is a module — organize related code into separate files.
  • Use dir(module) to explore what a module provides.
  • The standard library includes 200+ modules — check docs before installing third-party packages.

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.