Learn Python Programming
Start with getting started, installation, and core basics. Clear explanations and practical examples to help you learn faster.
Python Package
A package is a directory containing Python modules and a special __init__.py file. Packages let you organize related modules into a hierarchical structure.
Package Structure
# A typical package structure:
# myproject/
# ├── __init__.py # makes this directory a package
# ├── core.py # module with core logic
# ├── utils.py # utility functions
# └── models/ # sub-package
# ├── __init__.py
# ├── user.py
# └── product.py
# __init__.py can be empty or contain package initialization code
Creating a Package
# File: mypackage/__init__.py
"""My reusable package."""
__version__ = "1.0.0"
# Optionally expose key items at package level
from .core import process_data
from .utils import clean_text
# File: mypackage/core.py
def process_data(data):
"""Process raw data and return results."""
return [item.strip().lower() for item in data]
# File: mypackage/utils.py
def clean_text(text):
"""Remove extra whitespace."""
return " ".join(text.split())
def format_name(first, last):
"""Format a full name."""
return f"{first.title()} {last.title()}"
Importing from Packages
# Import the package (runs __init__.py)
import mypackage
print(mypackage.__version__) # "1.0.0"
# Import a module from the package
from mypackage import utils
print(utils.clean_text(" hello world "))
# Import a specific function
from mypackage.utils import format_name
print(format_name("john", "doe")) # "John Doe"
# Import from sub-package
from mypackage.models.user import User
# Alias for convenience
from mypackage.core import process_data as process
Relative Imports (Within a Package)
# File: mypackage/core.py
# Use relative imports to reference other modules in the same package
from .utils import clean_text # same directory
from .models.user import User # sub-package
from ..shared import constants # parent package (if nested)
# Relative import syntax:
# . = current package
# .. = parent package
# ... = grandparent package
# Note: relative imports only work inside packages
# Running a file directly (python core.py) breaks relative imports
# Always run from outside: python -m mypackage.core
Package with __init__.py Configuration
# File: mypackage/__init__.py
# Control what "from mypackage import *" exports
__all__ = ["process_data", "clean_text", "User"]
# Package-level imports for convenient access
from .core import process_data
from .utils import clean_text
from .models.user import User
# Now users can do:
# from mypackage import process_data, User
# instead of:
# from mypackage.core import process_data
# from mypackage.models.user import User
Installing Your Own Package
# Create a minimal pyproject.toml (modern standard)
# mypackage/
# ├── pyproject.toml
# ├── src/
# │ └── mypackage/
# │ ├── __init__.py
# │ └── core.py
# pyproject.toml content:
# [project]
# name = "mypackage"
# version = "1.0.0"
# [build-system]
# requires = ["setuptools"]
# build-backend = "setuptools.backends._legacy:_Backend"
# Install in development mode:
# pip install -e .
# Now you can import mypackage from anywhere
- A package is a directory with
__init__.py— it groups related modules together. - Use
__init__.pyto expose a clean public API and controlimport *behavior. - Use relative imports (
from .module import func) within packages. - Run package modules with
python -m package.moduleto avoid import issues. - Use
pip install -e .for development to make your package importable globally.
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.