Learn Python Programming
Start with getting started, installation, and core basics. Clear explanations and practical examples to help you learn faster.
Python Inheritance
Inheritance lets a class (child) reuse and extend the behavior of another class (parent). The child inherits all attributes and methods, and can override or add new ones.
Basic Inheritance
# Parent (base) class
class Animal:
def __init__(self, name, sound):
self.name = name
self.sound = sound
def speak(self):
return f"{self.name} says {self.sound}!"
def __str__(self):
return f"Animal({self.name})"
# Child (derived) class — inherits from Animal
class Dog(Animal):
def __init__(self, name, breed):
# Call parent constructor
super().__init__(name, sound="Woof")
self.breed = breed # new attribute
def fetch(self, item):
return f"{self.name} fetches the {item}!"
class Cat(Animal):
def __init__(self, name, indoor=True):
super().__init__(name, sound="Meow")
self.indoor = indoor
def purr(self):
return f"{self.name} is purring..."
# Usage
dog = Dog("Rex", "Labrador")
cat = Cat("Whiskers")
print(dog.speak()) # Rex says Woof! (inherited method)
print(dog.fetch("ball")) # Rex fetches the ball! (new method)
print(cat.speak()) # Whiskers says Meow!
print(cat.purr()) # Whiskers is purring...
Method Overriding
# Child classes can override parent methods
class Shape:
def __init__(self, color="black"):
self.color = color
def area(self):
raise NotImplementedError("Subclasses must implement area()")
def describe(self):
return f"{self.color} {type(self).__name__} with area {self.area():.2f}"
class Circle(Shape):
def __init__(self, radius, color="red"):
super().__init__(color)
self.radius = radius
def area(self): # override parent method
import math
return math.pi * self.radius ** 2
class Rectangle(Shape):
def __init__(self, width, height, color="blue"):
super().__init__(color)
self.width = width
self.height = height
def area(self): # override parent method
return self.width * self.height
# Usage
shapes = [Circle(5), Rectangle(3, 4, "green"), Circle(2, "yellow")]
for shape in shapes:
print(shape.describe())
# red Circle with area 78.54
# green Rectangle with area 12.00
# yellow Circle with area 12.57
super() — Calling Parent Methods
# super() lets you call the parent version of a method
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
def get_info(self):
return f"{self.name} - ${self.salary:,}"
class Manager(Employee):
def __init__(self, name, salary, department):
super().__init__(name, salary) # call parent __init__
self.department = department
self.reports = []
def add_report(self, employee):
self.reports.append(employee)
def get_info(self):
# Extend parent method instead of replacing it
base_info = super().get_info()
return f"{base_info} | Manages {self.department} ({len(self.reports)} reports)"
emp = Employee("Alice", 75000)
mgr = Manager("Bob", 95000, "Engineering")
mgr.add_report(emp)
print(emp.get_info()) # Alice - $75,000
print(mgr.get_info()) # Bob - $95,000 | Manages Engineering (1 reports)
isinstance() and issubclass()
# Check type relationships
print(isinstance(dog, Dog)) # True
print(isinstance(dog, Animal)) # True (Dog inherits Animal)
print(isinstance(cat, Dog)) # False
print(issubclass(Dog, Animal)) # True
print(issubclass(Animal, Dog)) # False
# Practical: handle different types
def process(obj):
if isinstance(obj, Manager):
print(f"Manager: {obj.department}")
elif isinstance(obj, Employee):
print(f"Employee: {obj.name}")
else:
print("Unknown type")
- Child classes inherit all methods and attributes from the parent class.
- Use
super().__init__()to call the parent constructor and avoid duplicating code. - Override methods in child classes to customize behavior while keeping the same interface.
- Use
isinstance()to check if an object is an instance of a class or its subclasses. - Raise
NotImplementedErrorin base class methods that subclasses must implement.
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.