Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять. Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает. Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы. Решение: запускать программу через IDLE или через консоль. Проблема: Не работает функция input. Пишет SyntaxError. Пример кода:
>>> a = input()
hello world
File "<string>", line 1
hello world
^
SyntaxError: unexpected EOF while parsing
Причина: Вы запустили Python 2. Решение: Установить Python 3. Проблема: Где-то увидел простую программу, а она не работает. Пример кода: name = raw_input() print name Ошибка: File "a.py", line 3 print name ^ SyntaxError: invalid syntax Причина: Вам подсунули программу на Python 2. Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так: name = input() print(name) Проблема: TypeError: Can't convert 'int' object to str implicitly. Пример кода: >>> a = input() + 5 8 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Can't convert 'int' object to str implicitly Причина: Нельзя складывать строку с числом. Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!
>>> a = int(input()) + 5
8
>>> a
13
Проблема: SyntaxError: invalid syntax. Пример кода: a = 5 if a == 5 print('Ура!') Ошибка: File "a.py", line 3 if a == 5 ^ SyntaxError: invalid syntax Причина: Забыто двоеточие. Решение: a = 5 if a == 5: print('Ура!') Проблема: SyntaxError: invalid syntax. Пример кода: a = 5 if a = 5: print('Ура!') Ошибка: File "a.py", line 3 if a = 5 ^ SyntaxError: invalid syntax Причина: Забыто равно. Решение: a = 5 if a == 5: print('Ура!') Проблема: NameError: name 'a' is not defined. Пример кода: print(a) Причина: Переменная "a" не существует. Возможно, вы опечатались в названии или забыли инициализировать её. Решение: Исправить опечатку. a = 10 print(a) Проблема: IndentationError: expected an indented block. Пример кода: a = 10 if a > 0: print(a) Причина: Нужен отступ. Решение: a = 10 if a > 0: print(a) Проблема: TabError: inconsistent use of tabs and spaces in indentation. Пример кода: a = 10 if a > 0: print(a) print('Ура!') Ошибка: File "a.py", line 5 print('Ура!') ^ TabError: inconsistent use of tabs and spaces in indentation Причина: Смешение пробелов и табуляции в отступах. Решение: Исправить отступы. a = 10 if a > 0: print(a) print('Ура!') Проблема: UnboundLocalError: local variable 'a' referenced before assignment. Пример кода: def f(): a += 1 print(a) a = 10 f() Ошибка: Traceback (most recent call last): File "a.py", line 7, in <module> f() File "a.py", line 3, in f a += 1 UnboundLocalError: local variable 'a' referenced before assignment Причина: Попытка обратиться к локальной переменной, которая ещё не создана. Решение: def f(): global a a += 1 print(a) a = 10 f() Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё. Пример кода:
>>> f = open('output.txt', 'w', encoding='utf-8')
>>> f.write('bla')
3
>>>
Причина: Не закрыт файл, часть данных могла остаться в буфере. Решение:
>>> f = open('output.txt', 'w', encoding='utf-8')
>>> f.write('bla')
3
>>> f.close()
>>>
Проблема: Здесь может быть ваша проблема. Комментарии чуть ниже :) Также вам может быть полезно это описание: Материал взят с сайта pythonworld.ru | |
| |
Просмотров: 627 | |
Всего комментариев: 0 | |