Python is one of the most beginner-friendly programming languages available today. Its clean syntax and readability make it ideal for students, career switchers, and self-learners.
Still, errors are unavoidable—especially in the early stages.
Python errors are not signs of failure. Instead, they are built-in guidance messages that help you understand exactly what went wrong. Learning to read and interpret these messages is a key programming skill.
This article explains 25 common Python errors beginners face, what causes them, and how to fix them using easy-to-understand examples.
1. SyntaxError
A SyntaxError occurs when Python cannot understand the structure or grammar of your code.
Example
if x == 10
print("Hello")
Here, Python expects a colon (:) after the condition, but does not find one.
Fix
if x == 10:
print("Hello")
Adding the colon tells Python that the next indented block belongs to the if statement.
2. IndentationError
Python uses indentation to define which lines belong to a block of code. Incorrect indentation breaks this structure.
Example
if True:
print("Hello")
Python expects the print statement to be indented under the if condition.
Fix
if True:
print("Hello")
Using consistent indentation makes your code readable and prevents unexpected execution errors.
3. TabError
A TabError happens when tabs and spaces are mixed in the same file, confusing Python’s indentation rules.
Fix
Use only spaces, preferably 4 spaces per indentation level, and configure your editor to replace tabs automatically.
4. NameError
A NameError occurs when Python encounters a variable or function name that hasn’t been defined yet.
Example
print(username)
Python does not know what username it refers to at this point in the program.
Fix
username = "CyboGeek"
print(username)
Always define variables before using them, and double-check spelling and capitalization.
5. TypeError
A TypeError happens when Python tries to combine or operate on incompatible data types.
Example
age = "25"
print("Age: " + age + 5)
Here, Python cannot add a number to a string, which causes the error.
Fix
age = 25
print("Age:", age + 5)
Keeping data types consistent avoids unexpected crashes during calculations.
6. ValueError
A ValueError occurs when the type is correct, but the value itself cannot be processed.
Example
int("abc")
Python knows you want an integer, but the text "abc" cannot be converted into one.
Fix
int("123")
This error commonly occurs when converting user input into numbers.
7. IndexError
An IndexError happens when you try to access a list element that doesn’t exist.
Example
numbers = [10, 20, 30]
print(numbers[5])
The list only has three items, so the index 5 is out of range.
Fix
print(numbers[2])
Remember that Python lists start counting from the index 0, not 1.
8. KeyError
A KeyError occurs when a dictionary key does not exist.
Example
person = {"name": "Aman"}
print(person["age"])
The dictionary does not contain an "age" key, so Python raises an error.
Fix
print(person.get("age", "Not found"))
Using .get() safely handles missing keys without crashing the program.
9. AttributeError
An AttributeError occurs when you try to use a method that doesn’t belong to the object.
Example
numbers = [1, 2, 3]
numbers.push(4)
Lists in Python do not have a push() method.
Fix
numbers.append(4)
Always check the correct methods available for each data type.
10. ImportError
An ImportError means Python cannot load the requested module.
Example
import notamodule
Python searches for the module but cannot find it.
Fix
Ensure the module exists, is spelled correctly, and is accessible in your environment.
11. ModuleNotFoundError
This error usually means the module is not installed.
Fix
pip install requests
Also, confirm that you are installing the module in the same Python environment you’re running.
12. ZeroDivisionError
Occurs when attempting to divide a number by zero.
Example
print(10 / 0)
Division by zero is mathematically undefined, so Python prevents it.
Fix
number = 0
if number != 0:
print(10 / number)
Always validate values before performing division.
13. UnboundLocalError
Occurs when a variable is referenced before assignment inside a function.
Example
def test():
print(x)
x = 5
Python treats x as local, but it hasn’t been assigned yet.
Fix
def test():
x = 5
print(x)
Assign values before using them inside functions.
14. EOFError
An EOFError occurs when input() expects data but receives none.
Fix
Run your program in a proper interactive terminal that supports user input.
15. FileNotFoundError
Occurs when Python cannot find the specified file.
Example
open("data.txt")
The file does not exist in the current working directory.
Fix
open("files/data.txt")
Always verify file paths and file names carefully.
16. OSError
An OSError usually indicates a system-level issue like permissions or unavailable resources.
Fix
Check file permissions, disk access, and whether the file is already open elsewhere.
17. RecursionError
Occurs when a function calls itself too many times without stopping.
Example
def count():
return count()
This function has no exit condition, causing infinite recursion.
Fix
def count(n):
if n == 0:
return
count(n - 1)
Always include a base condition when using recursion.
18. AssertionError
Occurs when an assert statement evaluates to false.
Example
assert 2 + 2 == 5
Python stops execution because the condition is incorrect.
Fix
assert 2 + 2 == 4
Assertions are useful for catching logic mistakes during development.
19. FloatingPointError
Floating-point numbers can behave imprecisely due to internal representation.
Fix
Instead of checking exact equality, compare values within a small tolerance range.
20. OverflowError
Occurs when a calculation exceeds allowed numeric limits.
Fix
Break large calculations into smaller steps or use specialized numeric libraries.
21. MemoryError
Occurs when your program tries to use more memory than is available.
Fix
Process large data in chunks and avoid loading entire datasets at once.
22. Type Confusion in Loops
Occurs when attempting to loop over a non-iterable object.
Example
for item in 5:
print(item)
An integer cannot be looped over directly.
Fix
for item in range(5):
print(item)
Always loop over sequences like lists, strings, or ranges.
23. Confusing = and ==
Occurs when an assignment is mistakenly used instead of a comparison.
Example
if x = 10:
Python does not allow assignment inside condition checks.
Fix
if x == 10:
Use == for comparisons and = for assignments.
24. Forgetting to Convert Input
input() always returns a string, even when numbers are entered.
Example
age = input("Enter age: ")
print(age + 5)
Python cannot add a number to a string directly.
Fix
age = int(input("Enter age: "))
print(age + 5)
Convert input values before performing calculations.
25. Poor Variable Naming & Shadowing Built-ins
Using names that conflict with built-in functions confuses.
Example
list = [1, 2, 3]
This overrides Python’s built-in list() function.
Fix
numbers = [1, 2, 3]
Clear, descriptive variable names reduce bugs and improve readability.
Final Thoughts
Every Python beginner encounters errors—it’s a natural part of learning to code.
Once you understand these 25 common Python errors, debugging becomes less frustrating and far more productive. With practice, you’ll start recognizing issues instantly and fixing them confidently.
Keep learning, keep experimenting, and most importantly—keep coding.
