Invalid syntax в питоне как исправить
Перейти к содержимому

Invalid syntax в питоне как исправить

  • автор:

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

Python 3 логотип

Моя программа не работает! Что делать? В данной статье я постараюсь собрать наиболее частые ошибки начинающих программировать на 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 как решить?

phaggi

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 @deepblack Куратор тега Python

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *