When you first learn Python, it may be a bit complicated to understand the meaning of Python error messages. Here is a list of common runtime errors that can cause your program to crash.
1) Forgot to add at the end of if , elif , else , for , while , class ,def statement: (resulting in "SyntaxError: invalid syntax")
This error will occur in code similar to the following:
if spam == 42
print('Hello!')
2) Use = instead of == (resulting in "SyntaxError: invalid syntax")
= is the assignment operator and == is the equal comparison operation. This error occurs in the following code:
if spam = 42:
print('Hello!')
3) Incorrect use of indentation. (Resulting in "IndentationError: unexpected indent", "IndentationError: unindent does not match any outer indetation level" and "IndentationError: expected an indented block")
Remember that indentation increase is only used after statements ending with:, and after Must revert to previous indentation format. The error occurs in the following code:
print('Hello!')
print('Howdy!')
or:
if spam == 42:
print('Hello !')
print('Howdy!')
or:
if spam == 42:
print('Hello!')
4) Forgot to call in the for loop statement len() (causing "TypeError: 'list' object cannot be interpreted as an integer")
Usually you want to iterate the elements of a list or string by index, which requires calling the range() function. Remember to return the len value instead of the list.
This error occurs in the following code:
spam = ['cat', 'dog', 'mouse']
for i in range(spam):
print(spam[i])
5) Trying to modify the value of string (resulting in "TypeError: 'str' object does not support item assignment")
string is an immutable data type, the error occurs in code like this:
spam = 'I have a pet cat.'
spam[13] = 'r'
print(spam)
And you actually want to do this:
spam = 'I have a pet cat.'
spam = spam[:13] + 'r' + spam[14:]
print(spam)
6) Trying to concatenate a non-string value with a string (resulting in "TypeError: Can't convert 'int' object to str implicitly")
The The error occurs in code like this:
numEggs = 12
print('I have ' + numEggs + ' eggs.')
whereas you actually want to do this:
numEggs = 12
print( 'I have ' + str(numEggs) + ' eggs.')
or:
numEggs = 12
print('I have %s eggs.' % (numEggs))
7 ) Forgot to add quotes at the beginning and end of the string (resulting in "SyntaxError: EOL while scanning string literal")
This error occurs in the following code:
print(Hello!')
or:
print('Hello!)
or:
myName = 'Al'
print('My name is ' + myName + . How are you?')
8) Variable Or the function name is misspelled (resulting in "NameError: name 'fooba' is not defined")
This error occurs in the following code:
foobar = 'Al'
print('My name is ' + fooba)
or:
spam = ruond(4.2)
or:
spam = Round(4.2)
9) The method name is spelled incorrectly (resulting in "AttributeError: 'str' object has no attribute 'lowerr'")
This error occurs in the following code:
spam = 'THIS IS IN LOWERCASE.'
spam = spam.lowerr()
10) The reference exceeds the maximum index of the list (causing "IndexError: list index out of range")
This error occurs in the following code:
spam = ['cat', 'dog', 'mouse']
print(spam[6])
11) Using a dictionary key that does not exist (resulting in "KeyError: 'spam'")
The error occurs in code like this:
spam = {'cat': 'Zophie', 'dog': 'Basil', 'mouse ': 'Whiskers'}
print('The name of my pet zebra is ' + spam['zebra'])
12) Trying to use Python keywords as variable names (causing "SyntaxError: invalid syntax")
Python keywords cannot be used as variable names. This error occurs in the following code:
class = 'algebra'
The keywords of Python3 are: and, as, assert, break, class, continue, def, del, elif, else , except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield
13) Using the increment operator in a new variable definition (causing "NameError: name 'foobar' is not defined")
Do not use 0 or an empty string as the initial value when declaring a variable. In this way, the sentence spam += 1 using the increment operator is equal to spam = spam + 1, which means that spam needs to specify a valid initial value.
This error occurs in the following code:
spam = 0
spam += 42
eggs += 42
14) Use the local variable in the function before defining the local variable (this time there is a local variable with the same name The global variable exists) (resulting in "UnboundLocalError: local variable 'foobar' referenced before assignment")
It is very complicated when using a local variable in a function and there is a global variable with the same name. The usage rule is: if in the function If anything is defined in a function, it is local, otherwise it is a global variable.
This means you cannot use it as a global variable in a function before defining it.
This error occurs in the following code:
someVar = 42
def myFunction():
print(someVar)
someVar = 100
myFunction()
15) Try to use range() to create a list of integers (Causes "TypeError: 'range' object does not support item assignment")
Sometimes you want to get an ordered list of integers, so range() seems like a good way to generate this list. However, you need to remember that range() returns a "range object", not the actual list value.
The error occurs in the following code:
spam = range(10)
spam[4] = -1
Maybe this is what you want to do:
spam = list(range(10))
spam[4] = -1
(Note: spam = range(10) is possible in Python 2, because range() in Python 2 returns a list value, but in Python 3 the above will occur Error)
16) Good thing is ++ or -- increment and decrement operators. (Resulting in "SyntaxError: invalid syntax")
If you are used to other languages such as C++, Java, PHP, etc., you may want to try using ++ or -- to increment and decrement a variable. There is no such operator in Python.
The error occurs in the following code:
spam = 1
spam++
Maybe this is what you want to do:
spam = 1
spam += 1
17) Forgot to be the first of the methods Add the self parameter to the parameters (resulting in "TypeError: myMethod() takes no arguments (1 given)")
This error occurs in the following code:
class Foo():
def myMethod():
print( 'Hello!')
a = Foo()
a.myMethod()