Hướng dẫn in python the syntax error is detected by at - trong python, lỗi cú pháp được phát hiện bởi lúc

Tổng quan

Giảng dạy: 10 phút Bài tập: 15 phút 10 min
Exercises: 15 min

Câu hỏi

  • Những loại lỗi có thể xảy ra trong các chương trình?

  • Làm thế nào tôi có thể xác định lỗi khi chúng xảy ra?

Mục tiêu

  • Giải thích sự khác biệt giữa lỗi cú pháp và ngoại lệ thời gian chạy.

  • Hiểu rằng Python đã tích hợp các ngoại lệ và nơi tìm thông tin về chúng.

  • Mô tả chính xác các tình huống trong đó SyntaxError,

    for i in range[10]: print[i]
    
    0,
    for i in range[10]: print[i]
    
    1,
    for i in range[10]: print[i]
    
    2 và
    for i in range[10]: print[i]
    
    3 xảy ra.

Lỗi xảy ra

Bạn gần như chắc chắn đã gặp lỗi trong mã Python của bạn. Đối với người mới bắt đầu, phổ biến nhất là lỗi cú pháp, xảy ra khi mã của bạn không hợp lệ Python. Ví dụ:

>>> for i in range[10] print[i]
  File "", line 1
    for i in range[10] print[i]
                           ^
SyntaxError: invalid syntax

Tại sao ví dụ đó tạo ra một lỗi cú pháp?

Thông điệp của Syntaxerror: Cú pháp không hợp lệ là chính xác, nhưng không hữu ích lắm.

Lưu ý rằng CARET [

for i in range[10]: print[i]
4] chỉ ra nơi Python phát hiện ra một vấn đề. bạn nghĩ vấn đề là gì?

Dung dịch

Đại tràng [

for i in range[10]: print[i]
5] phân định vòng lặp
for i in range[10]: print[i]
6 khỏi cơ thể vòng lặp bị thiếu. Lý do mà
for i in range[10]: print[i]
7 được đánh dấu bằng CARET là bất kỳ mã nào theo câu lệnh
for i in range[10]: print[i]
6 đều không hợp lệ trừ khi câu lệnh được đi trước bởi dấu hai chấm [
for i in range[10]: print[i]
5]. Vì vậy,
for i in range[10]: print[i]
7 là mã không hợp lệ đầu tiên mặc dù lỗi thực tế xảy ra trước đó.

Mã chính xác sẽ là:

for i in range[10]: print[i]

Hãy xem xét kỹ hơn một thông báo lỗi:

  File "", line 1
    print ["hello world"
                        ^
SyntaxError: unexpected EOF while parsing

  • Thông báo chỉ ra một vấn đề trên dòng đầu tiên của đầu vào [dòng 1 dòng 1].
    • Trong trường hợp này, phần IP IPYTHON INPUT của tên tệp cho chúng tôi biết rằng chúng tôi đang làm việc với đầu vào vào Ipython, trình thông dịch Python được sử dụng bởi Jupyter Notebook.
  • Phần
      File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    1 của tên tệp chỉ ra rằng lỗi xảy ra trong ô 6 của sổ ghi chép của chúng tôi.
  • Tiếp theo là dòng mã có vấn đề, chỉ ra vấn đề với con trỏ
    for i in range[10]: print[i]
    
    4.

Lỗi thời gian chạy xảy ra khi Python hiểu những gì bạn đang nói nhưng có điều gì đó không ổn trong khi một chương trình đang thực hiện

Chạy đoạn mã Python sau đây

numerator = 7
denominator = 0
result = numerator / denominator

Điều gì xảy ra?

Dung dịch

Đại tràng [

for i in range[10]: print[i]
5] phân định vòng lặp
for i in range[10]: print[i]
6 khỏi cơ thể vòng lặp bị thiếu. Lý do mà
for i in range[10]: print[i]
7 được đánh dấu bằng CARET là bất kỳ mã nào theo câu lệnh
for i in range[10]: print[i]
6 đều không hợp lệ trừ khi câu lệnh được đi trước bởi dấu hai chấm [
for i in range[10]: print[i]
5]. Vì vậy,
for i in range[10]: print[i]
7 là mã không hợp lệ đầu tiên mặc dù lỗi thực tế xảy ra trước đó.

>>> numerator = 7
>>> denominator = 0
>>> result = numerator / denominator
Traceback [most recent call last]:
  File "", line 1, in 
ZeroDivisionError: division by zero

Mã chính xác sẽ là:

Hãy xem xét kỹ hơn một thông báo lỗi:

Thông báo chỉ ra một vấn đề trên dòng đầu tiên của đầu vào [dòng 1 dòng 1].

  •   File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    3
  • for i in range[10]: print[i]
    
    3
  •   File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    7
  •   File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    8
  • for i in range[10]: print[i]
    
    2
  • numerator = 7
    denominator = 0
    result = numerator / denominator
    
    0

Trong trường hợp này, phần IP IPYTHON INPUT của tên tệp cho chúng tôi biết rằng chúng tôi đang làm việc với đầu vào vào Ipython, trình thông dịch Python được sử dụng bởi Jupyter Notebook.

  • Phần
      File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    1 của tên tệp chỉ ra rằng lỗi xảy ra trong ô 6 của sổ ghi chép của chúng tôi.
  • Tiếp theo là dòng mã có vấn đề, chỉ ra vấn đề với con trỏ
    for i in range[10]: print[i]
    
    4.

firstName="Jon"
  lastName="Smith"

  File "", line 2
    lastName="Smith"
    ^
IndentationError: unexpected indent

  • Lỗi thời gian chạy xảy ra khi Python hiểu những gì bạn đang nói nhưng có điều gì đó không ổn trong khi một chương trình đang thực hiện

Chạy đoạn mã Python sau đây

  1. Điều gì xảy ra?
  2. Bạn nhận được một
      File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    3. Đây là ngoại lệ Python cho thấy lỗi thời gian chạy do bộ phận không. Lưu ý rằng mã là Python có giá trị về mặt cú pháp, vì vậy đây không phải là lỗi cú pháp.
  3.   File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    3 được tích hợp cho Python. Bài tập tiếp theo xem xét một số trường hợp ngoại lệ tích hợp hơn.
  4. Khám phá các trường hợp ngoại lệ tích hợp

for number in range[10]:
    # use a if the number is a multiple of 3, otherwise use b
    if [Number % 3] == 0:
        message = message + a
    else:
        message = message + "b"
print[message]

Hãy xem tài liệu cho các trường hợp ngoại lệ tích hợp. Xem nếu bạn có thể tìm thấy từng lỗi sau đây. Nếu đã gặp bất kỳ lỗi nào khác gần đây, hãy xem liệu bạn có thể tìm thấy những lỗi đó không.

  1. Điều gì xảy ra?
  2. Bạn nhận được một
      File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    3. Đây là ngoại lệ Python cho thấy lỗi thời gian chạy do bộ phận không. Lưu ý rằng mã là Python có giá trị về mặt cú pháp, vì vậy đây không phải là lỗi cú pháp.
  3.   File "", line 1
        print ["hello world"
                            ^
    SyntaxError: unexpected EOF while parsing
    
    3 được tích hợp cho Python. Bài tập tiếp theo xem xét một số trường hợp ngoại lệ tích hợp hơn.

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print['My favorite season is ', seasons[4]]

Khám phá các trường hợp ngoại lệ tích hợp

  • Hãy xem tài liệu cho các trường hợp ngoại lệ tích hợp. Xem nếu bạn có thể tìm thấy từng lỗi sau đây. Nếu đã gặp bất kỳ lỗi nào khác gần đây, hãy xem liệu bạn có thể tìm thấy những lỗi đó không.

  • Th thụt lề có ý nghĩa trong Python.

  • Python sử dụng thụt vào các phần nhóm của mã với nhau [được thảo luận trong tập các vòng lặp].

  • Nếu vết lõm thay đổi theo cách mà Python không mong đợi, nó sẽ báo cáo một

    for i in range[10]: print[i]
    
    0 [đây là một loại lỗi cú pháp cụ thể hơn].

  • Trong trường hợp này, phần IP IPYTHON INPUT của tên tệp cho chúng tôi biết rằng chúng tôi đang làm việc với đầu vào vào Ipython, trình thông dịch Python được sử dụng bởi Jupyter Notebook.

Lỗi cú pháp trong Python được phát hiện bởi là gì?

Cú pháp Python xảy ra khi trình thông dịch gặp phải cú pháp không hợp lệ trong mã. Khi mã Python được thực thi, trình thông dịch đã phân tích nó để chuyển đổi nó thành mã byte. Nếu thông dịch viên tìm thấy bất kỳ cú pháp không hợp lệ nào trong giai đoạn phân tích cú pháp, một cú pháp sẽ bị ném.the interpreter encounters invalid syntax in code. When Python code is executed, the interpreter parses it to convert it into bytecode. If the interpreter finds any invalid syntax during the parsing stage, a SyntaxError is thrown.

Lỗi cú pháp được phát hiện ở đâu?

Lỗi cú pháp bị bắt bởi một chương trình phần mềm được gọi là trình biên dịch và lập trình viên phải sửa chúng trước khi chương trình được biên dịch và sau đó chạy.caught by a software program called a compiler, and the programmer must fix them before the program is compiled and then run.

Lỗi cú pháp được phát hiện như thế nào?

Tất cả các lỗi cú pháp và một số lỗi ngữ nghĩa [lỗi ngữ nghĩa tĩnh] được phát hiện bởi trình biên dịch, tạo ra thông báo cho biết loại lỗi và vị trí trong tệp nguồn Java nơi xảy ra lỗi [lưu ý rằng lỗi thực tế có thểxảy ra trước khi vị trí được báo hiệu bởi ...by the compiler, which generates a message indicating the type of error and the position in the Java source file where the error occurred [notice that the actual error could have occurred before the position signaled by the ...

Làm thế nào để Python xử lý lỗi cú pháp?

Bạn có thể xóa cú pháp không hợp lệ này trong Python bằng cách chuyển ra dấu chấm phẩy cho một dấu hai chấm.Ở đây, một lần nữa, thông báo lỗi rất hữu ích khi cho bạn biết chính xác những gì sai với dòng.switching out the semicolon for a colon. Here, once again, the error message is very helpful in telling you exactly what is wrong with the line.

Bài Viết Liên Quan

Chủ Đề