Если программа не запускается
Возможные сообщения об ошибках и причины их появления:
сообщение |
смысловой перевод |
код, вызвавший ошибку |
возможное исправление |
NameError: name 'b' is not defined
|
переменная ‘b’ не существует |
a = b +1 |
b = 10 a = b + 1 |
if a > 0 ^ SyntaxError: invalid syntax |
синтаксическая ошибка (нет двоеточия) |
if a > 0 print('+') |
if a > 0: print('+') |
def test: ^ SyntaxError: invalid syntax |
синтаксическая ошибка (нет скобок) |
def test: print('test') test()
|
def test(): print('test') test() |
нет сообщений, но не запускается функция |
пропущены скобки |
def test: print('test') test
|
def test: print('test') test() |
print(a) ^ IndentationError: expected an indented block
|
требуется отступ |
a = 10 if a > 0: print(a) |
a = 10 if a > 0: print(a) |
UnboundLocalError: local variable 'color' referenced before assignment |
переменная должна получить значение прежде, чем мы на это значение будем смотреть
|
def test(): while a < 10: a += 1 test()
|
def test(): a = 1 while a < 10: a += 1 test() |
print('!') ^ IndentationError: unindent does not match any outer indentation level |
на одном уровне отступа разное количество символов отступа или смешаны типы отступов (в одной строке 4 пробела, а в другой – символ табуляции) |
a = 10 if a > 0: print(a) print('!') |
a = 10 if a > 0: print(a) print('!') |
print(a) ^ IndentationError: unexpected indent |
отступ не нужен |
a = 10 print(a)
|
a = 10 print(a) |
print (a+b) TypeError: unsupported operand type(s) for +: 'int' and 'str' |
невозможно выполнить операцию «+» для числа и строки |
a = 10 b = ‘10’ print (a+b) |
a = ‘10’ b = ‘10’ print (a+b)
или
a = 10 b = 10 print (a+b)
|
a += 2 TypeError: 'int' object is not iterable |
попытка добавить к списку целое число (нужно добавлять список, состоящий из одного значения) |
a = [1,2,3,4] a += a[0] |
a = [1,2,3,4] a += [a[0]] или a = [1,2,3,4] a += a[:1]
|
test() TypeError: test() takes exactly 1 argument (0 given) |
функция не получила ожидаемого аргумента |
def test(a): print(‘!’) test() |
def test(a): print(‘!’) test(10)
или
def test(): print(‘!’) test()
или
def test(a=10): print(a) test() |
test(10) TypeError: test() takes no arguments (1 given) |
функция получила аргументы, который не ожидался |
def test(): print(a) test(10) |
def test(a): print(a) test(10)
или
def test(): a = 10 print(a) test() |
print(a[4]) IndexError: list index out of range |
попытка обратиться к элементу последовательности, которого не существует. |
a=[1,2,3,4] print(a[4])
|
a=[1,2,3,4] print(a[3]) |
