Hiểu và sửa lỗi cú pháp Python thông thường

Bình luận: 0

Giống như bất kỳ ngôn ngữ lập trình nào, Python có bộ quy tắc riêng. Nếu các quy tắc này không được tuân theo, mã sẽ không thể hiểu được đối với trình thông dịch, dẫn đến các lỗi cú pháp. Những lỗi này là những vấn đề phổ biến mà cả người mới làm việc và các lập trình viên có kinh nghiệm gặp phải. Bài viết thảo luận về các lỗi thường xuyên nhất trong Python và cung cấp các phương thức để sửa chúng trong quá trình lập trình.

Lỗi và sửa lỗi thông thường

Khi xảy ra lỗi cú pháp, Python cung cấp thông báo lỗi trỏ đến vấn đề. Thông báo này thường bao gồm:

  • Tên tệp và số dòng nơi xảy ra lỗi.
  • Dòng mã cụ thể gây ra lỗi.
  • Một Caret (^) chỉ vào vị trí chính xác nơi thông dịch viên bị nhầm lẫn.
  • Một mô tả lỗi gợi ý về bản chất của vấn đề.

Thiếu sót hoặc không phù hợp

Một trong những sai lầm Python phổ biến nhất mà người mới bắt đầu thực hiện là quên đi dấu ngoặc đơn. Điều này đặc biệt phổ biến trong các cuộc gọi chức năng và cấu trúc lồng nhau.

Ví dụ:

print("Hello, World!"

Thông báo lỗi Python:

1.png

Sửa chữa:

Đảm bảo tất cả các dấu ngoặc đơn được đóng chính xác.

print("Hello, World!")

Lỗi thụt python

Python dựa vào thụt vào để xác định các khối mã. Thắng không chính xác có thể dẫn đến lỗi cú pháp.

Ví dụ:

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

Thông báo lỗi Python:

2.png

Sửa chữa:

Thụt vào khối mã đúng cách.

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

Thiếu lỗi chấm câu trong danh sách hoặc từ điển

Quên bao gồm dấu phẩy giữa các yếu tố trong danh sách hoặc từ điển là một sai lầm thường xuyên khác.

Ví dụ:

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

Thông báo lỗi Python:

3.png

Sửa chữa:

Thêm dấu phẩy còn thiếu giữa "Sweert" và "Tên".

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

Từ khóa dành riêng cho Python

Sử dụng các từ khóa dành riêng Python không đúng cách cũng có thể dẫn đến các lỗi cú pháp. Từ khóa là những từ dành riêng có ý nghĩa đặc biệt.

Ví dụ:

class = "Beginner"

Thông báo lỗi Python:

4.png

Sửa chữa:

Chọn một tên khác không phải là từ khóa dành riêng.

level = "Beginner"

Tên biến bất hợp pháp

Tên biến phải tuân thủ các quy tắc cụ thể. Sử dụng tên biến bất hợp pháp, chẳng hạn như bắt đầu với một số hoặc chứa không gian, dẫn đến lỗi cú pháp.

Ví dụ:

2name = "John"

Thông báo lỗi Python:

5.png

Sửa chữa:

Sử dụng một tên biến hợp lệ.

name2 = "John"

Chuỗi không được coi là

Chuỗi phải được đặt trong các dấu ngoặc kép phù hợp. Quên đóng một chuỗi kết quả trong lỗi cú pháp.

Ví dụ:

message = "Hello, World!

Thông báo lỗi Python:

6.png

Sửa chữa:

Đảm bảo chuỗi được đóng với cùng một loại dấu ngoặc kép.

message = "Hello, World!"

Thiếu các dấu chấm trong các tuyên bố hỗn hợp

Quên thêm một dấu hai chấm (:) ở cuối các câu lệnh ghép như, nếu, trong khi và DEF có thể dẫn đến lỗi cú pháp.

Ví dụ:

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

Thông báo lỗi Python:

7.png

Sửa chữa:

Thêm một dấu hai chấm ở cuối của tuyên bố ghép.

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

Nhà điều hành phân công Python không đúng chỗ

Sử dụng các toán tử không chính xác có thể gây ra lỗi cú pháp. Điều này bao gồm các nhà khai thác chuyển nhượng và toán tử so sánh.

Ví dụ:

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

Thông báo lỗi Python:

8.png

Sửa chữa:

Sử dụng toán tử so sánh chính xác.

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

Mẹo để tránh những sai lầm python thông thường

  1. Sử dụng Trình chỉnh sửa mã cho Python: Các công cụ như Pycharm, VS Code hoặc Jupyter Notebook nổi bật lỗi cú pháp khi bạn gõ, giúp chúng dễ dàng phát hiện và khắc phục.
  2. Viết và mã kiểm tra tăng dần: Thường xuyên chạy mã của bạn bằng các khối nhỏ để bắt lỗi sớm.
  3. Thắng nhất quán: Bám sát việc sử dụng không gian hoặc tab nhất quán để thụt vào để tránh nhầm lẫn và lỗi.
  4. Sử dụng các công cụ Linting Python: Sử dụng các lớp lót như pylint hoặc flake8 để phân tích mã của bạn cho các lỗi tiềm năng và thực thi các tiêu chuẩn mã hóa.
  5. Tham khảo tài liệu: Giữ tài liệu chính thức của Python, tiện dụng để hiểu các quy tắc và quy ước của cú pháp.

Xử lý lỗi cú pháp trong thực tế

Hãy cùng xem xét một tập lệnh quét web đơn giản gặp phải lỗi cú pháp và cách gỡ lỗi bằng trình gỡ lỗi tích hợp Python, PDB.

Gỡ lỗi một tập lệnh quét web với pdb

Mã gốc:

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)

Thông báo lỗi Python:

9.png

Sửa chữa:

Thêm đại tràng bị thiếu sau vòng lặp.

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)

Sử dụng PDB để gỡ lỗi:

Thêm dòng sau trước vòng lặp để bắt đầu trình gỡ lỗi.

import pdb; pdb.set_trace()

Mã được sửa đổi với điểm dừng:

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)

Khi bạn chạy tập lệnh, trình gỡ lỗi PDB sẽ bắt đầu tại điểm dừng.

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

Lệnh gỡ lỗi:

  • N (Tiếp theo): Thực hiện dòng mã tiếp theo.
  • C (Tiếp tục): Tiếp tục thực hiện cho đến điểm dừng tiếp theo.
  • p biến_name: In giá trị của biến_name.

Phiên ví dụ:

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

Bằng cách sử dụng PDB, bạn có thể bước qua mã của mình, kiểm tra các biến và hiểu luồng thực thi, giúp xác định và sửa lỗi dễ dàng hơn.

Tránh các lỗi thời gian chạy Python

Lỗi giải thích kết quả khi bộ xử lý không thể hiểu được mã của bạn một cách toàn diện nhưng lỗi thời gian chạy diễn ra khi mã của bạn đang chạy. Không phân chia, chạm vào mảng phạm vi trong danh sách cũng như các biến không xác định tài khoản cho các lỗi đó.

Ví dụ:

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

Thông báo lỗi Python:

10.png

Sửa chữa:

Đảm bảo bạn đang truy cập các chỉ số danh sách hợp lệ.

print(numbers[2])

Xử lý ngoại lệ Python

Xử lý ngoại lệ cho phép chương trình của bạn tiếp tục chạy ngay cả khi xảy ra lỗi. Sử dụng các khối Excet Try-Except để bắt và xử lý các ngoại lệ.

Ví dụ:

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

Phần kết luận

Có được chuyên môn về các lỗi phổ biến và sửa lỗi trong cú pháp Python là rất cần thiết cho bất kỳ nhà phát triển Python nào. Đọc các thông báo lỗi Python và tiến hành các hiệu chỉnh tiếp theo đảm bảo rằng người ta viết mã tốt hơn một cách dễ dàng.stick cho các công cụ và hướng dẫn được đề xuất.

Bình luận:

0 Bình luận