16 Common Python Runtime Errors Beginners Find

Figuring out what Python’s error messages mean can be kind of tricky when you are first learning the language. Here’s a list of common errors that result in runtime error messages which will crash your program.

 

1) Forgetting to put a : at the end of an if, elif, else, for, while, class, or def statement. (Causes “SyntaxError: invalid syntax”)

This error happens with code like this:

if spam == 42

print('Hello!')

 

2) Using = instead of ==. (Causes “SyntaxError: invalid syntax”)

The = is the assignment operator while == is the “is equal to” comparison operator. This error happens with code like this:

if spam = 42:

print('Hello!')

 

3) Using the wrong amount of indentation. (Causes “IndentationError: unexpected indent” and “IndentationError: unindent does not match any outer indentation level” and “IndentationError: expected an indented block”)

Remember that the indentation only increases after a statement ending with a : colon, and afterwards must return to the previous indentation. This error happens with code like this:

print('Hello!')

print('Howdy!')

…and this:

if spam == 42:

print('Hello!')

print('Howdy!')

…and this:

if spam == 42:

print('Hello!')

 

4) Forgetting the len() call in a for loop statement. (Causes “TypeError: 'list' object cannot be interpreted as an integer”)

Commonly you want to iterate over the indexes of items in a list or string, which requires calling the range() function. Just remember to pass the return value of len(someList), instead of passing just someList.

This error happens with code like this:

spam = ['cat', 'dog', 'mouse']

for i in range(spam):

print(spam[i])

(Update: As a few have pointed out, what you might need is just for i in spam: rather than the above code. But the above is for the very legitimate case where you need the index in the body of the loop, rather than just the value itself.)

 

5) Trying to modify a string value. (Causes “TypeError: 'str' object does not support item assignment”)

Strings are an immutable data type. This error happens with code like this:

spam = 'I have a pet cat.'

spam[13] = 'r'

print(spam)

What you probably want is this:

spam = 'I have a pet cat.'

spam = spam[:13] + 'r' + spam[14:]

print(spam)

 

6) Trying to concatenate a non-string value to a string value. (Causes “TypeError: Can't convert 'int' object to str implicitly”)

This error happens with code like this:

numEggs = 12

print('I have ' + numEggs + ' eggs.')

What you want to do is this:

numEggs = 12

print('I have ' + str(numEggs) + ' eggs.')

…or this:

numEggs = 12

print('I have %s eggs.' % (numEggs))

 

7) Forgetting a quote to begin or end a string value. (Causes “SyntaxError: EOL while scanning string literal”)

This error happens with code like this:

print(Hello!')

…or this:

print('Hello!)

…or this:

myName = 'Al'

print('My name is ' + myName + . How are you?')

 

8) A typo for a variable or function name. (Causes “NameError: name 'fooba' is not defined”)

This error happens with code like this:

foobar = 'Al'

print('My name is ' + fooba)

…or this:

spam = ruond(4.2)

…or this:

spam = Round(4.2)

 

9) A typo for a method name. (Causes “AttributeError: 'str' object has no attribute 'lowerr'”)

This error happens with code like this:

spam = 'THIS IS IN LOWERCASE.'

spam = spam.lowerr()

 

10) Going past the last index of a list. (Causes “IndexError: list index out of range”)

This error happens with code like this:

spam = ['cat', 'dog', 'mouse']

print(spam[6])

 

11) Using a non-existent dictionary key. (Causes “KeyError: 'spam'”)

This error happens with code like this:

spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse': 'Whiskers'}

print('The name of my pet zebra is ' + spam['zebra'])

 

12) Trying to use a Python keyword for a variable name. (Causes “SyntaxError: invalid syntax”)

The Python keywords (also called reserved words) cannot be used for variable names. This happens with code like:

class = 'algebra'

Page 1 of 2 | Next page