Программа не работает. Что делать?

Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на python 3, а также расскажу, как их исправлять.
Проблема: Моя программа не запускается. На доли секунды появляется чёрное окошко, а затем исчезает.
Причина: после окончания выполнения программы (после выполнения всего кода или при возникновении исключения программа закрывается. И если вы её вызвали двойным кликом по иконке (а вы, скорее всего, вызвали её именно так), то она закроется вместе с окошком, в котором находится вывод программы.
Решение: запускать программу через IDLE или через консоль.
Проблема: Не работает функция input. Пишет SyntaxError.
Пример кода:
File
Причина: Вы запустили Python 2.
Проблема: Где-то увидел простую программу, а она не работает.
Пример кода:
Ошибка:
Причина: Вам подсунули программу на Python 2.
Решение: Прочитать об отличиях Python 2 от Python 3. Переписать её на Python 3. Например, данная программа на Python 3 будет выглядеть так:
Проблема: TypeError: Can’t convert ‘int’ object to str implicitly.
Пример кода:
Причина: Нельзя складывать строку с числом.
Решение: Привести строку к числу с помощью функции int(). Кстати, заметьте, что функция input() всегда возвращает строку!
Проблема: SyntaxError: invalid syntax.
Пример кода:
Ошибка:
Причина: Забыто двоеточие.
Проблема: SyntaxError: invalid syntax.
Пример кода:
Ошибка:
Причина: Забыто равно.
Проблема: NameError: name ‘a’ is not defined.
Пример кода:
Причина: Переменная "a" не существует. Возможно, вы опечатались в названии или забыли инициализировать её.
Решение: Исправить опечатку.
Проблема: IndentationError: expected an indented block.
Пример кода:
Причина: Нужен отступ.
Проблема: TabError: inconsistent use of tabs and spaces in indentation.
Пример кода:
Ошибка:
Причина: Смешение пробелов и табуляции в отступах.
Решение: Исправить отступы.
Проблема: UnboundLocalError: local variable ‘a’ referenced before assignment.
Пример кода:
Ошибка:
Причина: Попытка обратиться к локальной переменной, которая ещё не создана.
Проблема: Программа выполнилась, но в файл ничего не записалось / записалось не всё.
Пример кода:
Причина: Не закрыт файл, часть данных могла остаться в буфере.
Проблема: Здесь может быть ваша проблема. Комментарии чуть ниже 🙂
Также вам может быть полезно это описание:
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
SyntaxError
Исключение, поднимаемое парсером при обнаружении синтаксических ошибок в исходном коде.
Исключение может подниматься при обработке инструкции import , вызовах встроенных функций exec(), eval(), или при считывании изначального скрипта или стандартного ввода (в том числе в интерактивном режиме).
try:
eval('10a + 5') # SyntaxError: invalid syntax
except SyntaxError as e:
e.filename #
e.lineno # 1
e.offset # 3
e.text # 10a + 5
str(e) # invalid syntax (, line 1)
Атрибуты объекта исключения
| filename | Файл, в котором обнаружена ошибка. Кроме того: , . |
| lineno | Номер строки. |
| offset | Отступ (позиция от начала строки). |
| text | Кусок кода, в котором обнаружена ошибка. |
На заметку
В случае приведения объекта исключения к строке, например, конструктором str(), строка включает только общее описание.
Синонимы поиска: SyntaxError
Ошибка invalid syntax в python, как исправить?
Я недавно начал учить python, но каждый раз когда я пишу оператор if происходит ошибка invalid syntax, при этом указывает что ошибка из-за скобки в конце.
Вот код:
plusminus=input("Что делаем, плюс или минус")
numderone=input("Введите первое число")
numdertwo=input("Введите второе число")
if(plusminus=="+")
print(numderone + numdertwo)
else(plusminus=="-")
print(numderone - numdertwo)
Надеюсь мне помогут.
- Вопрос задан более трёх лет назад
- 421 просмотр
1 комментарий
Простой 1 комментарий
Ошибка python SyntaxError: invalid syntax как решить?

Steven Konrov, Command 'dos2unix' not found, but can be installed with:
Установил через apt install dos2unix
Выполнил команду dos2unix -n run.py start.py
Запустил start.py
И такая же ошибка:
File "start.py", line 34
print(f'DEBUG: ')
^
SyntaxError: invalid syntax
peterfarmer, Тогда выкладывайте сюда код или добавьте в вопрос. Не забудьте про теги
Решения вопроса 1
Это потому что в вашей системе по умолчанию установлен Python 2.7.
Вы-то поставили третью версию, но вторую он не заменяет (вы даже не указали, как скрипт запускаете) - вот потому второму Python не нравится print(), потому что во второй print это оператор, а в третьем оператор print был заменён функцией print().
Python2:
print "Дважды два: ", 2*2
Python3
print("Дважды два: ", 2*2)
Ответ написан более трёх лет назад
Нравится 2 2 комментария
peterfarmer @peterfarmer Автор вопроса
Да, догадался еле-еле))) просто не было опыта с linux, но всё равно спасибо)
Можете еще одну вещь подсказать?
У меня скрипт работает на версии 3.7
И мне нужно было установить telethon перед запуском, я ввел команду pip3 install telethon, но он установился в 3.6, telethon in /usr/local/lib/python3.6/dist-packages, то есть я могу скрипт запускать python3.6 run.py, правда там сыпятся ошибки
А python3.7 run.py не могу запустить, он пишет ModuleNotFoundError: No module named 'telethon'
Как правильно установить telethon, чтобы он поддерживался 3.7?)

deepblack @deepblack Куратор тега Python
peterfarmer,
Ответ на этот вопрос легко находится поиском.
И у нас тут принято задавать новый вопрос не в комментариях.