Learn Python Programming
Start with getting started, installation, and core basics. Clear explanations and practical examples to help you learn faster.
Python Main Function
The if __name__ == "__main__" pattern lets you write code that runs only when the file is executed directly, not when imported as a module.
How __name__ Works
# Every Python file has a special __name__ variable:
# - When run directly: __name__ == "__main__"
# - When imported: __name__ == "module_name"
# File: greet.py
print(f"__name__ is: {__name__}")
def hello(name):
return f"Hello, {name}!"
if __name__ == "__main__":
# This block runs ONLY when you execute: python greet.py
print(hello("World"))
# Run directly:
# $ python greet.py
# __name__ is: __main__
# Hello, World!
# Import from another file:
# >>> import greet
# __name__ is: greet
# (the if block does NOT execute)
The main() Function Pattern
# Best practice: define a main() function and call it from the guard
def parse_args():
"""Parse command-line arguments."""
import argparse
parser = argparse.ArgumentParser(description="Process data files")
parser.add_argument("filename", help="Input file path")
parser.add_argument("-v", "--verbose", action="store_true")
return parser.parse_args()
def process_file(filename, verbose=False):
"""Main processing logic."""
if verbose:
print(f"Processing {filename}...")
with open(filename) as f:
data = f.read()
return len(data)
def main():
"""Entry point for the script."""
args = parse_args()
result = process_file(args.filename, args.verbose)
print(f"File size: {result} characters")
if __name__ == "__main__":
main()
Why Use This Pattern
# WITHOUT the guard — causes problems when imported
# File: calculator.py (BAD)
def add(a, b):
return a + b
def subtract(a, b):
return a - b
# This runs every time the file is imported!
print("Calculator loaded")
result = add(5, 3)
print(f"5 + 3 = {result}")
# File: app.py
import calculator # prints "Calculator loaded" and "5 + 3 = 8" — unwanted!
# WITH the guard — clean and reusable
# File: calculator.py (GOOD)
def add(a, b):
return a + b
def subtract(a, b):
return a - b
if __name__ == "__main__":
# Only runs when executed directly for testing
print("Calculator loaded")
result = add(5, 3)
print(f"5 + 3 = {result}")
# File: app.py
import calculator # silent — only imports functions
print(calculator.add(10, 20)) # 30
Practical Examples
# Example 1: Script with error handling
import sys
def main():
try:
filename = sys.argv[1]
except IndexError:
print("Usage: python script.py <filename>")
sys.exit(1)
try:
with open(filename) as f:
for line in f:
print(line.strip().upper())
except FileNotFoundError:
print(f"Error: {filename} not found")
sys.exit(1)
if __name__ == "__main__":
main()
# Example 2: Module that works both ways
# File: converter.py
def celsius_to_fahrenheit(c):
return c * 9/5 + 32
def fahrenheit_to_celsius(f):
return (f - 32) * 5/9
if __name__ == "__main__":
# Interactive mode when run directly
temp = float(input("Enter temperature in Celsius: "))
print(f"{temp}°C = {celsius_to_fahrenheit(temp):.1f}°F")
# Can also be imported:
# from converter import celsius_to_fahrenheit
__name__equals"__main__"when a file is run directly, or the module name when imported.- Always wrap script logic in
if __name__ == "__main__"so modules stay importable. - Define a
main()function for better organization and testability. - This pattern is essential for writing reusable code that also works as a standalone script.
- Use
sys.argvorargparseinside main for command-line argument handling.
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.