В каждом языке программирования существуют свои правила написания кода. Если вы нарушите эти правила, то столкнётесь с ошибкой недопустимого синтаксиса.
Аналогично, если мы неправильно используем ключевые слова или нарушаем определённые правила, то компьютер не сможет понять наш код и выдаст ошибку недопустимого синтаксиса, например, в Python.
- Причины ошибки
- Вызванный ключевыми словами с ошибками
- Из-за неправильного отступа
- Из-за неправильной пунктуации
- Как решить по именам переменных
- Из-за неправильных вызовов функций
Причины ошибки
Давайте разберемся в различных причинах получения недопустимой синтаксической ошибки в Python.
- Ключевые слова и их правильное написание в Python. В Python есть список ключевых слов, которые зарезервированы и должны быть написаны без ошибок. Например, если вместо «for» написать «fro», то это приведёт к ошибке синтаксиса: «SyntaxError: неверный синтаксис».
- Неправильные отступы: в языке программирования Python отступы используются для обозначения блоков кода. Если в вашем коде отступы расставлены неверно, Python выдаст ошибку «IndentationError».
- В Python каждое утверждение должно заканчиваться новой строкой. Если оператор написан неправильно или знаки пунктуации расставлены неверно, например, двоеточие или круглые скобки, это может вызвать синтаксическую ошибку «SyntaxError: ожидается ‘:’».
- Имена переменных. У Python могут возникнуть проблемы, если имя переменной начинается с цифры, содержит пробелы или специальные символы, за исключением символа подчёркивания.
- Неправильные вызовы функций. Если при вызове функции передать неправильное количество аргументов или если они будут иметь неверный тип данных, Python выдаст ошибку.
Давайте посмотрим, как можно исправить эти синтаксические ошибки в Python, на практических примерах.
Вызванный ключевыми словами с ошибками
Если вы измените ключевые слова, которые были заданы заранее, Python выдаст ошибку. Мы расскажем вам, как исправить её в Python.
Вот пример недопустимой синтаксической ошибки в Python
fro i in range(10): print(i)
Выход:
File "c:\Core_Python\invalid syntax error in python\example1.py", line 1 fro i in range(10): ^ SyntaxError: invalid syntax
В приведённом выше коде мы пытаемся вывести на экран числа от 0 до 9 с помощью цикла for, но получаем ошибку в синтаксисе. Дело в том, что вместо for мы написали fro. Это пример того, как ключевое слово может привести к ошибке.
В нашем случае это всего лишь две строки кода, и ошибку найти несложно. Однако если вы допустите ошибку в коде, состоящем из тысячи строк и более, найти её будет гораздо сложнее. В таких случаях вы можете обратиться к выходным данным. Они содержат инструкции, которые помогут вам определить место ошибки. Например, в нашем случае ошибка находится в первой строке файла example1.py.
Чтобы вы могли определить местонахождение ошибки и исправить ее, правильный код должен быть таким:
for i in range(10): print(i)
Из-за неправильного отступа
Давайте разберёмся, зачем нужны отступы в Python. Когда в программе есть другие блоки кода, такие как цикл for, определение функции, оператор if и другие, важно правильно указать интервал для каждого блока. Это помогает избежать синтаксических ошибок.
Например, чтобы исправить ошибку в коде, нужно добавить отступы для каждого блока кода внутри операторов.
# Incorrect Indentation code age = 20 if age > 18: for i in range(3): print("Hello") else: print("you are less than 18")
# Error Solved age = 20 if age > 18: for i in range(3): print("Hello") else: print("you are less than 18")
В приведённом выше коде мы рассмотрим пример, в котором будем проверять возраст. Если возраст больше 18, то нужно вывести «Hello» три раза. Для этого мы использовали оператор If для проверки условия и цикл for для многократного вывода «Hello».
В первой программе код написан правильно, но в нём отсутствует отступ. Из-за этого интерпретатор Python выдаёт ошибку, указывая номер строки и иногда точное место ошибки.
Из-за неправильной пунктуации
В Python пунктуация, такая как двоеточие (:), играет важную роль в определённых местах кода, например, в условных операторах if, циклах, определениях функций и так далее. Если вы забудете включить нужный знак препинания, это приведёт к синтаксической ошибке.
Хотя эта причина ошибки может показаться простой, иногда её обнаружение в коде, состоящем из тысячи и более строк, может занять много времени.
В этом руководстве мы покажем вам, как исправить синтаксическую ошибку в Python, если её причиной является отсутствие пунктуации.
# Invalid Syntax in If condition age = 18 if age > 12 print("Hello")
# Correct Code age = 18 if age > 12: print("Hello")
В представленном коде мы получаем возраст как входные данные и проверяем, больше ли он 12. Если это так, мы выводим «Hello».
Условие и отступы в первом примере кода правильные. Однако мы забыли поставить двоеточие в конце условия «if age >12». Это вызывает синтаксическую ошибку и указывает на точное место, где она произошла.
Как решить по именам переменных
В Python существуют определённые правила для объявления переменных. Если вы нарушите эти правила, Python выдаст недопустимую синтаксическую ошибку.
Давайте рассмотрим на примерах, каким правилам нужно следовать при объявлении переменной в Python.
# incorrect variable declaration 1_emp = "Peter" $check = "Hello" last name = "Parker"
# Correct Code emp_1 = "Peter" check = "Hello" last_name = "Parker" print("Everything is good!")
В первом коде вы видите, что мы нарушаем правила объявления переменных в Python, что приводит к возникновению синтаксических ошибок.
Например, нельзя сначала включать цифру при объявлении переменной: 1_emp = «Питер». Также нельзя добавлять в переменную специальный символ «$check», кроме подчеркивания (_). И нельзя добавлять в переменную пробелы, например: Name = «Parker».
Из-за неправильных вызовов функций
В этом разделе мы рассмотрим, как исправить ошибки в синтаксисе Python, связанные с вызовами функций. Такие ошибки могут возникнуть, если вы неправильно указали аргументы или не предоставили нужный тип данных в функции.
Для наглядности мы привели простой пример — вызов функции print(). Это позволит вам лучше понять, как можно исправить синтаксическую ошибку, возникшую при вызове функции.
# Incorrect Function call name = "John Doe" print("Good Morning", end = " ",name) print("Nice to meet you!!")
#Correct Code name = "John Doe" print("Good Morning",name, end = " ") print("Nice to meet you!! ")
В первом примере кода мы вызываем функцию `print()`, используя в качестве второго аргумента значение `end=» «`. Затем мы снова вызываем переменную `print(«Доброе утро», end=»», name)`. Однако это не разрешено в функции `print()`. Вам нужно использовать значение `end=» «` в качестве последнего параметра, например: `print(«Доброе утро», name, end=»»)`.