Виправлення поширених синтаксичних помилок у Python

Коментарі: 0

Як і будь-яка мова програмування, Python має свої власні правила, недотримання яких робить код незрозумілим для інтерпретатора, що призводить до синтаксичних помилок. Далі в статті розглянемо, з якими помилками стикається більшість програмістів, і які методи їх виправлення існують.

Помилки в Python і методи їх виправлення

Python надає повідомлення про помилку, що включає такі дані:

  • Ім'я файлу та номер рядка, де сталася помилка;
  • Конкретний рядок коду, що спричинив помилку;
  • Покажчик (^), що показує точне місце, де інтерпретатор заплутався;
  • Опис помилки.

Відсутність або невідповідність дужок

Незакриті дужки - одна з найпоширеніших помилок, яку роблять новачки в Python. Це особливо часто трапляється під час виклику функцій і у вкладених структурах.

Приклад:

print("Hello, World!"

Повідомлення про помилку Python:

1.png

Виправлення:

Переконайтеся, що всі дужки закриті коректно.

print("Hello, World!")

Помилки відступів у Python

Python використовує відступи для визначення блоків коду. Неправильні відступи можуть призвести до синтаксичних помилок.

Приклад:

def greet():
print("Hello, World!")

Повідомлення про помилку Python:

2.png

Виправлення:

Правильно зробіть відступ у блоці коду.

def greet():
    print("Hello, World!")

Відсутність розділових знаків у списках або словниках

Приклад:

fruits = {"type": "sweert" "name": "orange"}

Повідомлення про помилку Python:

3.png

Виправлення:

Додайте пропущену кому між "sweert" і "name".

fruits = {"type": "sweert", "name": "orange"}

Неправильне використання ключових слів Python

Використання зарезервованих слів Python неправильним чином також може призвести до синтаксичних помилок. Зарезервовані слова мають спеціальні значення.

Приклад:

class = "Beginner"

Повідомлення про помилку Python:

4.png

Виправлення:

Виберіть інше ім'я, яке не є зарезервованим ключовим словом.

level = "Beginner"

Неприпустимі імена змінних

Сюди належить використання неприпустимих імен змінних, наприклад тих, що починаються з цифри або містять пробіли.

Приклад:

2name = "John"

Повідомлення про помилку Python:

5.png

Виправлення:

Використовуйте допустиме ім'я змінної.

name2 = "John"

Незакриті рядки

Рядки мають бути поміщені у відповідні лапки.

Приклад:

message = "Hello, World!

Повідомлення про помилку Python:

6.png

Виправлення:

Переконайтеся, що рядок закритий тим самим типом лапок.

message = "Hello, World!"

Відсутність двокрапок у складених виразах

Якщо не додати двокрапку (:) наприкінці складових виразів, таких як if, for, while і def, це може призвести до синтаксичних помилок.

Приклад:

def greet()
    print("Hello, World!")

Повідомлення про помилку Python:

7.png

Виправлення:

Додайте двокрапку наприкінці складеного виразу.

def greet():
    print("Hello, World!")

Неправильне розміщення оператора присвоювання

Помилка виникає при неправильному використанні операторів присвоювання та порівняння.

Приклад:

if x = 10:
    print("x is 10")

Повідомлення про помилку Python:

8.png

Виправлення:

Використовуйте правильний оператор порівняння.

if x == 10:
    print("x is 10")

Поради щодо уникнення помилок у Python

  1. Використовуйте редактор коду для Python: інструменти, як-от PyCharm, VS Code або Jupyter Notebook, виділяють синтаксичні помилки в міру введення, що полегшує їхнє виявлення та виправлення.
  2. Пишіть і тестуйте код поступово: регулярно запускайте ваш код невеликими блоками, щоб помічати помилки на ранніх стадіях.
  3. Дотримання однорідності відступів: дотримуйтеся послідовного використання пропусків або табуляції для відступів, щоб уникнути плутанини та помилок.
  4. Використовуйте інструменти лінтингу Python: лінтери, як-от pylint або flake8, необхідні для аналізу коду на предмет потенційних помилок і дотримання стандартів кодування.
  5. Звертайтеся до документації: офіційна документація Python містить правила синтаксису, які допоможуть розв'язати проблему або уникнути її.

Практичне виправлення синтаксичних помилок

Розглянемо простий скрипт для веб-скрапінгу, в якому виникає синтаксична помилка, і його налагодження з використанням вбудованого налагоджувача Python - pdb.

Налагодження скрипта для веб-скрапінгу за допомогою pdb

Вихідний код:

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

titles = soup.find_all("h1")
for title in titles
    print(title.text)

Повідомлення про помилку Python:

9.png

Виправлення:

Додайте пропущений двокрапку після циклу for.

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

titles = soup.find_all("h1")
for title in titles:
    print(title.text)

Використання pdb для налагодження:

Додайте наступний рядок перед циклом, щоб запустити налагоджувач.

import pdb; pdb.set_trace()

Змінений код із контрольною крапкою:

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

titles = soup.find_all("h1")
import pdb; pdb.set_trace()
for title in titles:
    print(title.text)

Коли ви запустите скрипт, налагоджувач pdb запуститься в контрольній точці.

> /path/to/your/script.py(10)()
-> for title in titles:
(Pdb)

Команди налагодження:

  • n (next): виконати наступний рядок коду;
  • c (continue): продовжити виконання до наступної контрольної точки;
  • p variable_name: вивести значення variable_name.

Приклад сесії:

(Pdb) n
> /path/to/your/script.py(11)()
-> print(title.text)
(Pdb) p titles
[<h1>Example Domain</h1>]
(Pdb) c
Example Domain

Використовуючи pdb, ви можете проаналізувати код, перевірити змінні та зрозуміти потік виконання, що спрощує ідентифікацію та виправлення помилок.

Як уникнути виникнення помилок виконання в Python

Помилки інтерпретації виникають, коли обробник не може зрозуміти ваш код у повному обсязі, а помилки виконання відбуваються в процесі роботи коду. До таких помилок належать нульове ділення, вихід за межі області видимості масиву в списку, а також невизначені змінні.

Приклад:

numbers = [1, 2, 3]
print(numbers[3])

Повідомлення про помилку Python:

10.png

Виправлення:

Переконайтеся, що ви звертаєтеся до допустимих індексів списку.

print(numbers[2])

Обробка винятків у Python

Обробка винятків дозволяє вашій програмі продовжувати функціонувати навіть за наявності помилок. Для перехоплення та керування винятками використовуйте блоки try-except.

Приклад:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("You can't divide by zero!")

Висновок

Розуміння та вміння виправляти типові помилки в синтаксисі Python критично важливе для кожного розробника. Визначення та виправлення помилок у Python гарантують можливість писати якісний і функціональний код. Для цього слід користуватися рекомендаціями, наведеними в цій статті.

Коментарії:

0 Коментаріїв