Tại sao cú pháp elif không hợp lệ trong python?

Bạn có thể kết hợp câu lệnh

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
58 với câu lệnh
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
59 và
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
60 trong Python. Nhưng khi chạy các câu lệnh
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
61 trong mã của bạn, bạn có thể gặp lỗi có tên là
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
62 trong Python

Nó chủ yếu xảy ra khi có một vết lõm sai trong mã. Hướng dẫn này sẽ dạy bạn sửa lỗi

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
62 trong Python

Sửa câu lệnh num=25 guess=int(input("Guess the number:")) if guess == num: print("correct") elif guess < num: print("The number is greater.") else: print("The number is smaller.") 58 & num=25 guess=int(input("Guess the number:")) if guess == num: print("correct") elif guess < num: print("The number is greater.") else: print("The number is smaller.") 59 File "c:\Users\rhntm\myscript.py", line 5 elif guess < num: ^^^^ SyntaxError: invalid syntax 2 bằng Python

Thụt đầu dòng là khoảng trắng hàng đầu (dấu cách và tab) trong một dòng mã trong Python. Không giống như các ngôn ngữ lập trình khác, thụt đầu dòng rất quan trọng trong Python

Python sử dụng thụt đầu dòng để thể hiện một khối mã. Khi thụt đầu dòng không được thực hiện đúng cách, nó sẽ báo lỗi cho bạn

Chúng ta hãy xem một ví dụ về câu lệnh

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
58 và
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
59

Mã ví dụ

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")

Đầu ra lỗi

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax

Ví dụ trên đưa ra một ngoại lệ,

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
2, vì việc thụt đầu dòng không được tuân thủ chính xác trong dòng 5. Bạn phải sử dụng khối mã
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
58 sau khối mã
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
60

Câu lệnh

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
59 cần phải phù hợp với câu lệnh
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
60, như hình bên dưới

Mã ví dụ

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")

đầu ra

Guess the number:20
The number is greater.

Bây giờ, mã chạy thành công

Thụt đầu dòng là điều cần thiết trong Python để cấu trúc khối mã của câu lệnh. Số lượng khoảng trắng trong một nhóm câu lệnh phải bằng nhau để biểu thị một khối mã

Thụt đầu dòng mặc định là 4 khoảng trắng trong Python. Tùy thuộc vào bạn, nhưng ít nhất một khoảng trống phải được sử dụng

Nếu có lỗi thụt lề trong mã, bạn sẽ nhận được một

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
0 trong Python. Bạn có thể sửa nó bằng cách sửa lỗi thụt lề trong mã của bạn

Python được biết đến với cú pháp đơn giản. Tuy nhiên, khi bạn học Python lần đầu tiên hoặc khi bạn đến với Python với nền tảng vững chắc về ngôn ngữ lập trình khác, bạn có thể gặp phải một số điều mà Python không cho phép. Nếu bạn từng nhận được lỗi

>>> len('hello') == 5
True
1 khi cố chạy mã Python, thì hướng dẫn này có thể giúp bạn. Xuyên suốt hướng dẫn này, bạn sẽ thấy các ví dụ phổ biến về cú pháp không hợp lệ trong Python và tìm hiểu cách giải quyết vấn đề

Đến cuối hướng dẫn này, bạn sẽ có thể

  • Xác định cú pháp không hợp lệ trong Python
  • Tìm hiểu về truy nguyên của
    >>> len('hello') == 5
    True
    
    1
  • Giải quyết cú pháp không hợp lệ hoặc ngăn chặn nó hoàn toàn

Tiền thưởng miễn phí. 5 Suy nghĩ về Làm chủ Python, một khóa học miễn phí dành cho các nhà phát triển Python cho bạn thấy lộ trình và tư duy mà bạn sẽ cần để đưa các kỹ năng Python của mình lên một tầm cao mới

Cú pháp không hợp lệ trong Python

Khi bạn chạy mã Python của mình, trước tiên trình thông dịch sẽ phân tích cú pháp mã đó để chuyển mã đó thành mã byte Python, sau đó mã này sẽ thực thi. Trình thông dịch sẽ tìm thấy bất kỳ cú pháp không hợp lệ nào trong Python trong giai đoạn thực thi chương trình đầu tiên này, còn được gọi là giai đoạn phân tích cú pháp. Nếu trình thông dịch không thể phân tích thành công mã Python của bạn, thì điều này có nghĩa là bạn đã sử dụng cú pháp không hợp lệ ở đâu đó trong mã của mình. Trình thông dịch sẽ cố gắng chỉ cho bạn biết lỗi đó xảy ra ở đâu

Khi bạn học Python lần đầu tiên, bạn có thể cảm thấy khó chịu khi nhận được một

>>> len('hello') == 5
True
1. Python sẽ cố gắng giúp bạn xác định đâu là cú pháp không hợp lệ trong mã của bạn, nhưng truy nguyên mà nó cung cấp có thể hơi khó hiểu. Đôi khi, mã mà nó trỏ tới hoàn toàn ổn

Ghi chú. Nếu mã của bạn đúng về mặt cú pháp, thì bạn có thể nhận được các ngoại lệ khác không phải là

>>> len('hello') == 5
True
1. Để tìm hiểu thêm về các ngoại lệ khác của Python và cách xử lý chúng, hãy xem Ngoại lệ Python. Một lời giới thiệu

Bạn không thể xử lý cú pháp không hợp lệ trong Python như các ngoại lệ khác. Ngay cả khi bạn cố gắng bọc một khối

>>> len('hello') == 5
True
5 và
>>> len('hello') == 5
True
6 xung quanh mã bằng cú pháp không hợp lệ, bạn vẫn sẽ thấy trình thông dịch đưa ra một
>>> len('hello') == 5
True
1

Loại bỏ các quảng cáo

>>> len('hello') == 5 True 1 Ngoại lệ và Truy nguyên

Khi trình thông dịch gặp cú pháp không hợp lệ trong mã Python, nó sẽ đưa ra một ngoại lệ

>>> len('hello') == 5
True
1 và cung cấp một truy nguyên với một số thông tin hữu ích để giúp bạn gỡ lỗi. Đây là một số mã chứa cú pháp không hợp lệ trong Python

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
6

Bạn có thể thấy cú pháp không hợp lệ trong từ điển chữ trên dòng 4. Mục thứ hai,

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
70, thiếu dấu phẩy. Nếu bạn đã cố chạy mã này nguyên trạng, thì bạn sẽ nhận được dấu vết sau

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
8

Lưu ý rằng thông báo truy nguyên xác định lỗi ở dòng 5, không phải dòng 4. Trình thông dịch Python đang cố chỉ ra cú pháp không hợp lệ ở đâu. Tuy nhiên, nó chỉ có thể thực sự chỉ ra nơi đầu tiên nó nhận thấy một vấn đề. Khi bạn nhận được truy nguyên

>>> len('hello') == 5
True
1 và mã mà truy nguyên trỏ tới có vẻ ổn, thì bạn sẽ muốn bắt đầu di chuyển ngược qua mã cho đến khi bạn có thể xác định điều gì sai

Trong ví dụ trên, không có vấn đề gì khi bỏ dấu phẩy, tùy thuộc vào những gì xảy ra sau dấu phẩy. Ví dụ: không có vấn đề gì với dấu phẩy bị thiếu sau

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
72 ở dòng 5. Nhưng một khi trình thông dịch gặp điều gì đó không có ý nghĩa, nó chỉ có thể chỉ cho bạn điều đầu tiên mà nó thấy rằng nó không thể hiểu được.

Ghi chú. Hướng dẫn này giả định rằng bạn đã biết những kiến ​​thức cơ bản về truy nguyên của Python. Để tìm hiểu thêm về truy nguyên Python và cách đọc chúng, hãy xem Tìm hiểu về truy nguyên Python và Khai thác tối đa khả năng truy nguyên Python

Có một số yếu tố của truy nguyên

>>> len('hello') == 5
True
1 có thể giúp bạn xác định vị trí cú pháp không hợp lệ trong mã của bạn

  • Tên tệp gặp phải cú pháp không hợp lệ
  • Số dòng và dòng mã được sao chép nơi gặp sự cố
  • Dấu mũ (
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
        elif guess < num:
            print("The number is greater.")
    else:
        print("The number is smaller.")
    
    74) trên dòng bên dưới mã được sao chép, cho bạn biết điểm trong mã có vấn đề
  • Thông báo lỗi xuất hiện sau loại ngoại lệ
    >>> len('hello') == 5
    True
    
    1, có thể cung cấp thông tin để giúp bạn xác định sự cố

Trong ví dụ trên, tên tệp đã cho là

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
76, số dòng là 5 và dấu mũ trỏ đến trích dẫn đóng của khóa từ điển
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
77. Truy nguyên
>>> len('hello') == 5
True
1 có thể không chỉ ra vấn đề thực sự, nhưng nó sẽ chỉ ra nơi đầu tiên mà trình thông dịch không thể hiểu cú pháp

Có hai trường hợp ngoại lệ khác mà bạn có thể thấy Python nêu ra. Chúng tương đương với

>>> len('hello') == 5
True
1 nhưng có các tên khác nhau

  1.   File "c:\Users\rhntm\myscript.py", line 5
        elif guess < num:
        ^^^^
    SyntaxError: invalid syntax
    
    80
  2.   File "c:\Users\rhntm\myscript.py", line 5
        elif guess < num:
        ^^^^
    SyntaxError: invalid syntax
    
    81

Cả hai ngoại lệ này đều kế thừa từ lớp

>>> len('hello') == 5
True
1, nhưng chúng là những trường hợp đặc biệt liên quan đến việc thụt đầu dòng. Một
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
80 được nâng lên khi các mức thụt đầu dòng trong mã của bạn không khớp. Một
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
81 được nâng lên khi mã của bạn sử dụng cả tab và dấu cách trong cùng một tệp. Bạn sẽ xem xét kỹ hơn các trường hợp ngoại lệ này trong phần sau

Các vấn đề về cú pháp thường gặp

Khi bạn gặp phải một

>>> len('hello') == 5
True
1 lần đầu tiên, sẽ rất hữu ích nếu bạn biết lý do tại sao lại xảy ra sự cố và bạn có thể làm gì để khắc phục cú pháp không hợp lệ trong mã Python của mình. Trong các phần bên dưới, bạn sẽ thấy một số lý do phổ biến hơn khiến
>>> len('hello') == 5
True
1 có thể xuất hiện và cách bạn có thể khắc phục chúng

Lạm dụng toán tử gán ( File "c:\Users\rhntm\myscript.py", line 5 elif guess < num: ^^^^ SyntaxError: invalid syntax 87)

Có một số trường hợp trong Python mà bạn không thể gán cho các đối tượng. Một số ví dụ được gán cho các cuộc gọi hàm và chữ. Trong khối mã bên dưới, bạn có thể thấy một vài ví dụ cố gắng thực hiện điều này và kết quả là

>>> len('hello') == 5
True
1 truy nguyên

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
7

Ví dụ đầu tiên cố gắng gán giá trị

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
89 cho lệnh gọi
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
90. Thông báo
>>> len('hello') == 5
True
1 rất hữu ích trong trường hợp này. Nó cho bạn biết rằng bạn không thể gán giá trị cho lệnh gọi hàm

Ví dụ thứ hai và thứ ba cố gắng gán một chuỗi và một số nguyên cho các ký tự. Quy tắc tương tự cũng đúng với các giá trị theo nghĩa đen khác. Một lần nữa, các thông báo theo dõi chỉ ra rằng sự cố xảy ra khi bạn cố gắng gán giá trị cho một chữ

Ghi chú. Các ví dụ trên thiếu dòng mã lặp lại và dấu mũ (

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
74) chỉ ra vấn đề trong quá trình truy nguyên. Ngoại lệ và truy nguyên mà bạn thấy sẽ khác khi bạn đang ở trong REPL so với cố gắng thực thi mã này từ một tệp. Nếu mã này nằm trong một tệp, thì bạn sẽ nhận được dòng mã lặp lại và dấu mũ trỏ đến sự cố, như bạn đã thấy trong các trường hợp khác trong hướng dẫn này

Có thể ý định của bạn không phải là gán giá trị cho một lệnh gọi hàm hoặc nghĩa đen. Chẳng hạn, điều này có thể xảy ra nếu bạn vô tình bỏ sót dấu bằng thừa (

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
87), điều này sẽ biến bài tập thành một phép so sánh. Một so sánh, như bạn có thể thấy bên dưới, sẽ hợp lệ

>>>

>>> len('hello') == 5
True

Hầu hết thời gian, khi Python cho bạn biết rằng bạn đang gán một thứ gì đó không thể gán được, trước tiên bạn có thể muốn kiểm tra để đảm bảo rằng thay vào đó, câu lệnh không phải là một biểu thức Boolean. Bạn cũng có thể gặp sự cố này khi đang cố gán giá trị cho từ khóa Python, bạn sẽ đề cập đến vấn đề này trong phần tiếp theo

Loại bỏ các quảng cáo

Viết sai chính tả, thiếu hoặc sử dụng sai từ khóa Python

Từ khóa Python là một tập hợp các từ được bảo vệ có ý nghĩa đặc biệt trong Python. Đây là những từ bạn không thể sử dụng làm mã định danh, biến hoặc tên hàm trong mã của mình. Chúng là một phần của ngôn ngữ và chỉ có thể được sử dụng trong ngữ cảnh mà Python cho phép

Có ba cách phổ biến mà bạn có thể sử dụng nhầm từ khóa

  1. Viết sai từ khóa
  2. Thiếu từ khóa
  3. Sử dụng sai từ khóa

Nếu bạn viết sai chính tả một từ khóa trong mã Python của mình, thì bạn sẽ nhận được một

>>> len('hello') == 5
True
1. Ví dụ: đây là điều sẽ xảy ra nếu bạn đánh vần sai từ khóa
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
95

>>>

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
7

Tin nhắn có nội dung là

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
96, nhưng điều đó không hữu ích lắm. Truy nguyên trỏ đến nơi đầu tiên mà Python có thể phát hiện ra rằng có điều gì đó không ổn. Để khắc phục loại lỗi này, hãy đảm bảo rằng tất cả các từ khóa Python của bạn được viết đúng chính tả

Một vấn đề phổ biến khác với từ khóa là khi bạn bỏ lỡ chúng hoàn toàn

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
8

Một lần nữa, thông báo ngoại lệ không hữu ích lắm, nhưng quá trình truy nguyên cố gắng chỉ cho bạn đi đúng hướng. Nếu bạn di chuyển trở lại từ dấu mũ, thì bạn có thể thấy rằng từ khóa

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
97 bị thiếu trong cú pháp vòng lặp
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
95

Bạn cũng có thể lạm dụng từ khóa bảo vệ Python. Hãy nhớ rằng, từ khóa chỉ được phép sử dụng trong các trường hợp cụ thể. Nếu bạn sử dụng chúng không chính xác, thì bạn sẽ có cú pháp không hợp lệ trong mã Python của mình. Một ví dụ phổ biến về điều này là việc sử dụng

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
99 hoặc
Guess the number:20
The number is greater.
20 bên ngoài vòng lặp. Điều này có thể dễ dàng xảy ra trong quá trình phát triển khi bạn đang triển khai mọi thứ và tình cờ di chuyển logic ra ngoài vòng lặp

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
9

Ở đây, Python thực hiện rất tốt việc cho bạn biết chính xác điều gì sai. Các thông báo

Guess the number:20
The number is greater.
21 và
Guess the number:20
The number is greater.
22 giúp bạn tìm ra chính xác những việc cần làm. Nếu mã này nằm trong một tệp, thì Python cũng sẽ có dấu mũ trỏ ngay đến từ khóa bị lạm dụng

Một ví dụ khác là nếu bạn cố gắng gán một từ khóa Python cho một biến hoặc sử dụng một từ khóa để xác định một hàm

>>>

Guess the number:20
The number is greater.
2

Khi bạn cố gắng gán một giá trị cho

Guess the number:20
The number is greater.
23 hoặc khi bạn cố gắng xác định một hàm mới có tên là
Guess the number:20
The number is greater.
23, bạn sẽ nhận được một
>>> len('hello') == 5
True
1 và lại thấy thông báo
Guess the number:20
The number is greater.
26

Có thể khó hơn một chút để giải quyết loại cú pháp không hợp lệ này trong mã Python vì mã trông ổn từ bên ngoài. Nếu mã của bạn trông ổn, nhưng bạn vẫn nhận được

>>> len('hello') == 5
True
1, thì bạn có thể cân nhắc kiểm tra tên biến hoặc tên hàm bạn muốn sử dụng so với danh sách từ khóa cho phiên bản Python mà bạn đang sử dụng

Danh sách các từ khóa được bảo vệ đã thay đổi theo từng phiên bản Python mới. Ví dụ, trong Python 3. 6 bạn có thể sử dụng

Guess the number:20
The number is greater.
28 làm tên biến hoặc tên hàm, nhưng kể từ Python 3. 7, từ đó đã được thêm vào danh sách từ khóa. Bây giờ, nếu bạn cố gắng sử dụng
Guess the number:20
The number is greater.
28 làm tên biến hoặc tên hàm, điều này sẽ gây ra lỗi
>>> len('hello') == 5
True
1 nếu mã của bạn dành cho Python 3. 7 hoặc muộn hơn

Một ví dụ khác về điều này là

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
51, khác với Python 2 so với Python 3

Phiên bản

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
51 TypeTakes A ValuePython 2từ khóanoPython 3chức năng tích hợpcó

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
51 là một từ khóa trong Python 2, vì vậy bạn không thể gán giá trị cho nó. Tuy nhiên, trong Python 3, đó là một hàm tích hợp có thể được gán giá trị

Bạn có thể chạy đoạn mã sau để xem danh sách từ khóa trong bất kỳ phiên bản Python nào bạn đang chạy

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
5

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
54 cũng cung cấp
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
55 hữu ích. Nếu bạn chỉ cần một cách nhanh chóng để kiểm tra biến
Guess the number:20
The number is greater.
23, thì bạn có thể sử dụng một lớp lót sau

>>>

>>> len('hello') == 5
True
2

Mã này sẽ nhanh chóng cho bạn biết liệu mã định danh mà bạn đang cố sử dụng có phải là từ khóa hay không

Loại bỏ các quảng cáo

Thiếu dấu ngoặc đơn, dấu ngoặc kép và dấu ngoặc kép

Thông thường, nguyên nhân của cú pháp không hợp lệ trong mã Python là do dấu ngoặc đơn, dấu ngoặc nhọn hoặc dấu ngoặc kép bị thiếu hoặc không khớp. Chúng có thể khó phát hiện trong các dòng dấu ngoặc đơn lồng nhau rất dài hoặc các khối nhiều dòng dài hơn. Bạn có thể phát hiện dấu ngoặc kép không khớp hoặc thiếu với sự trợ giúp của truy nguyên Python

>>>

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
80

Ở đây, truy nguyên trỏ đến mã không hợp lệ, nơi có một

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
57 sau một trích dẫn đơn đóng. Để khắc phục điều này, bạn có thể thực hiện một trong hai thay đổi

  1. Thoát khỏi trích dẫn đơn bằng dấu gạch chéo ngược (
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
    elif guess < num:
        print("The number is greater.")
    else:
        print("The number is smaller.")
    
    58)
  2. Thay vào đó, bao quanh toàn bộ chuỗi trong dấu ngoặc kép (
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
    elif guess < num:
        print("The number is greater.")
    else:
        print("The number is smaller.")
    
    59)

Một sai lầm phổ biến khác là quên đóng chuỗi. Với cả chuỗi trích dẫn kép và trích dẫn đơn, tình huống và dấu vết đều giống nhau

>>>

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
81

Lần này, dấu mũ trong truy nguyên trỏ ngay đến mã sự cố. Thông báo

>>> len('hello') == 5
True
1,
>>> len('hello') == 5
True
21, cụ thể hơn một chút và hữu ích trong việc xác định vấn đề. Điều này có nghĩa là trình thông dịch Python đã đi đến cuối dòng (EOL) trước khi một chuỗi mở được đóng lại. Để khắc phục điều này, hãy đóng chuỗi bằng một trích dẫn khớp với chuỗi bạn đã sử dụng để bắt đầu chuỗi đó. Trong trường hợp này, đó sẽ là một trích dẫn kép (
>>> len('hello') == 5
True
22)

Dấu ngoặc kép bị thiếu trong các câu lệnh bên trong chuỗi f cũng có thể dẫn đến cú pháp không hợp lệ trong Python

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
82

Ở đây, tham chiếu đến từ điển

>>> len('hello') == 5
True
23 bên trong chuỗi f được in thiếu dấu ngoặc kép đóng từ tham chiếu chính. Tracback kết quả là như sau

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
83

Python xác định vấn đề và cho bạn biết rằng nó tồn tại bên trong chuỗi f. Thông báo

>>> len('hello') == 5
True
24 cũng cho biết vấn đề là gì. Dấu mũ trong trường hợp này chỉ trỏ đến phần đầu của chuỗi f

Điều này có thể không hữu ích bằng khi dấu mũ chỉ vào khu vực có vấn đề của chuỗi f, nhưng nó thu hẹp phạm vi bạn cần tìm. Có một chuỗi chưa kết thúc ở đâu đó bên trong chuỗi f đó. Bạn chỉ cần tìm ra nơi. Để khắc phục sự cố này, hãy đảm bảo rằng tất cả các dấu ngoặc kép và dấu ngoặc chuỗi bên trong đều có mặt

Tình huống hầu hết giống nhau đối với các dấu ngoặc đơn và dấu ngoặc đơn bị thiếu. Ví dụ: nếu bạn bỏ dấu ngoặc vuông đóng khỏi danh sách, thì Python sẽ phát hiện ra điều đó và chỉ ra nó. Có một vài biến thể của điều này, tuy nhiên. Đầu tiên là bỏ dấu ngoặc đóng khỏi danh sách

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
84

Khi bạn chạy mã này, bạn sẽ được thông báo rằng có sự cố với lệnh gọi tới

>>> len('hello') == 5
True
25

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
85

Điều đang xảy ra ở đây là Python nghĩ rằng danh sách chứa ba phần tử.

>>> len('hello') == 5
True
26,
>>> len('hello') == 5
True
27 và
>>> len('hello') == 5
True
28. Python sử dụng khoảng trắng để nhóm các thứ một cách logic và vì không có dấu phẩy hoặc dấu ngoặc tách giữa
>>> len('hello') == 5
True
29 với
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
800, Python gộp chúng lại với nhau thành phần tử thứ ba của danh sách

Một biến thể khác là thêm dấu phẩy sau phần tử cuối cùng trong danh sách trong khi vẫn bỏ dấu ngoặc vuông đóng

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
86

Bây giờ bạn nhận được một dấu vết khác

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
87

Trong ví dụ trước,

>>> len('hello') == 5
True
29 và
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
800 được gộp lại thành một phần tử, nhưng ở đây bạn thấy dấu phẩy ngăn cách hai phần tử này. Bây giờ, lệnh gọi tới
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
800 được thêm vào làm phần tử thứ tư của danh sách và Python đến cuối tệp mà không có dấu ngoặc đóng. Traceback cho bạn biết rằng Python đã truy cập đến cuối tệp (EOF), nhưng nó đang mong đợi một thứ khác

Trong ví dụ này, Python đã mong đợi một dấu ngoặc đóng (

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
804), nhưng dòng lặp lại và dấu mũ không hữu ích lắm. Thiếu dấu ngoặc đơn và dấu ngoặc đơn rất khó để Python xác định. Đôi khi, điều duy nhất bạn có thể làm là bắt đầu từ dấu mũ và lùi lại cho đến khi bạn có thể xác định được điều gì còn thiếu hoặc sai

Loại bỏ các quảng cáo

Từ điển sai cú pháp

Bạn đã thấy trước đó rằng bạn có thể nhận được một

>>> len('hello') == 5
True
1 nếu bạn bỏ dấu phẩy của một thành phần từ điển. Một dạng cú pháp không hợp lệ khác với từ điển Python là việc sử dụng dấu bằng (
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
87) để phân tách khóa và giá trị, thay vì dấu hai chấm

>>>

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
88

Một lần nữa, thông báo lỗi này không hữu ích lắm. Tuy nhiên, dòng lặp lại và dấu mũ rất hữu ích. Họ đang chỉ thẳng vào nhân vật có vấn đề

Loại sự cố này phổ biến nếu bạn nhầm lẫn cú pháp Python với cú pháp của các ngôn ngữ lập trình khác. Bạn cũng sẽ thấy điều này nếu bạn nhầm lẫn hành động định nghĩa một từ điển với một cuộc gọi

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
807. Để khắc phục điều này, bạn có thể thay thế dấu bằng bằng dấu hai chấm. Bạn cũng có thể chuyển sang sử dụng
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
807

>>>

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
89

Bạn có thể sử dụng

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
807 để xác định từ điển nếu cú ​​pháp đó hữu ích hơn

Sử dụng thụt lề sai

Có hai lớp con của

>>> len('hello') == 5
True
1 xử lý cụ thể các vấn đề về thụt lề

  1.   File "c:\Users\rhntm\myscript.py", line 5
        elif guess < num:
        ^^^^
    SyntaxError: invalid syntax
    
    80
  2.   File "c:\Users\rhntm\myscript.py", line 5
        elif guess < num:
        ^^^^
    SyntaxError: invalid syntax
    
    81

Trong khi các ngôn ngữ lập trình khác sử dụng dấu ngoặc nhọn để biểu thị các khối mã, Python sử dụng khoảng trắng. Điều đó có nghĩa là Python mong muốn khoảng trắng trong mã của bạn hoạt động có thể dự đoán được. Nó sẽ tăng

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
80 nếu có một dòng trong khối mã có sai số lượng khoảng trắng

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
70

Điều này có thể khó nhìn, nhưng dòng 5 chỉ được thụt vào 2 dấu cách. Nó phải phù hợp với câu lệnh vòng lặp

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
95, dài hơn 4 khoảng trắng. Rất may, Python có thể phát hiện ra điều này một cách dễ dàng và sẽ nhanh chóng cho bạn biết vấn đề là gì

Tuy nhiên, cũng có một chút mơ hồ ở đây. Dòng

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
815 dự định nằm sau vòng lặp
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
95 hay bên trong khối vòng lặp
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
95?

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
71

Mặc dù truy nguyên trông rất giống truy nguyên

>>> len('hello') == 5
True
1, nhưng nó thực sự là một
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
80. Thông báo lỗi cũng rất hữu ích. Nó cho bạn biết rằng mức độ thụt đầu dòng của dòng không khớp với bất kỳ mức độ thụt lề nào khác. Nói cách khác,
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
815 được thụt vào 2 dấu cách, nhưng Python không thể tìm thấy bất kỳ dòng mã nào khác phù hợp với mức độ thụt đầu dòng này. Bạn có thể khắc phục điều này nhanh chóng bằng cách đảm bảo mã phù hợp với mức độ thụt đầu dòng dự kiến

Loại

>>> len('hello') == 5
True
1 khác là
  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
81, bạn sẽ thấy loại này bất cứ khi nào có một dòng chứa tab hoặc dấu cách để thụt lề, trong khi phần còn lại của tệp chứa dòng khác. Điều này có thể bị ẩn cho đến khi Python chỉ ra cho bạn

Nếu kích thước tab của bạn có cùng chiều rộng với số lượng khoảng trắng ở mỗi mức thụt đầu dòng, thì có vẻ như tất cả các dòng đều ở cùng một mức. Tuy nhiên, nếu một dòng được thụt lề bằng cách sử dụng dấu cách và dòng kia được thụt lề bằng các tab, thì Python sẽ chỉ ra đây là sự cố

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
72

Ở đây, dòng 5 được thụt vào bằng một tab thay vì 4 dấu cách. Khối mã này có thể trông hoàn toàn ổn đối với bạn hoặc nó có thể trông hoàn toàn sai, tùy thuộc vào cài đặt hệ thống của bạn

Tuy nhiên, Python sẽ nhận thấy vấn đề ngay lập tức. Nhưng trước khi bạn chạy mã để xem Python sẽ cho bạn biết điều gì sai, bạn nên xem một ví dụ về mã trông như thế nào trong các cài đặt độ rộng tab khác nhau.

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
73

Lưu ý sự khác biệt về hiển thị giữa ba ví dụ trên. Hầu hết mã sử dụng 4 dấu cách cho mỗi mức thụt đầu dòng, nhưng dòng 5 sử dụng một tab trong cả ba ví dụ. Chiều rộng của tab thay đổi, dựa trên cài đặt chiều rộng của tab

  • Nếu chiều rộng tab là 4, thì câu lệnh
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
    elif guess < num:
        print("The number is greater.")
    else:
        print("The number is smaller.")
    
    51 sẽ giống như nằm ngoài vòng lặp
      File "c:\Users\rhntm\myscript.py", line 5
        elif guess < num:
        ^^^^
    SyntaxError: invalid syntax
    
    95. Bảng điều khiển sẽ in
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
        elif guess < num:
            print("The number is greater.")
    else:
        print("The number is smaller.")
    
    825 ở cuối vòng lặp
  • Nếu chiều rộng tab là 8, là tiêu chuẩn cho nhiều hệ thống, thì câu lệnh
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
    elif guess < num:
        print("The number is greater.")
    else:
        print("The number is smaller.")
    
    51 sẽ giống như nằm trong vòng lặp
      File "c:\Users\rhntm\myscript.py", line 5
        elif guess < num:
        ^^^^
    SyntaxError: invalid syntax
    
    95. Bảng điều khiển sẽ in
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
        elif guess < num:
            print("The number is greater.")
    else:
        print("The number is smaller.")
    
    825 sau mỗi số
  • Nếu chiều rộng tab là 3, thì câu lệnh
    num=25
    guess=int(input("Guess the number:"))
    if guess == num:
        print("correct")
    elif guess < num:
        print("The number is greater.")
    else:
        print("The number is smaller.")
    
    51 có vẻ không phù hợp. Trong trường hợp này, dòng 5 không khớp với bất kỳ mức thụt đầu dòng nào

Khi bạn chạy mã, bạn sẽ gặp lỗi sau và theo dõi lại

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
74

Lưu ý

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
81 thay vì
>>> len('hello') == 5
True
1 thông thường. Python chỉ ra dòng vấn đề và cung cấp cho bạn một thông báo lỗi hữu ích. Nó cho bạn biết rõ ràng rằng có một hỗn hợp các tab và khoảng trắng được sử dụng để thụt lề trong cùng một tệp

Giải pháp cho vấn đề này là làm cho tất cả các dòng trong cùng một tệp mã Python sử dụng tab hoặc dấu cách, chứ không phải cả hai. Đối với các khối mã ở trên, cách khắc phục là xóa tab và thay thế bằng 4 khoảng trắng, sẽ in ra _____1825 sau khi vòng lặp _____ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Loại bỏ các quảng cáo

Định nghĩa và gọi hàm

Bạn có thể gặp phải cú pháp không hợp lệ trong Python khi định nghĩa hoặc gọi hàm. Ví dụ: bạn sẽ thấy

>>> len('hello') == 5
True
1 nếu bạn sử dụng dấu chấm phẩy thay vì dấu hai chấm ở cuối định nghĩa hàm

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
75

Truy nguyên ở đây rất hữu ích, với dấu mũ trỏ ngay đến ký tự có vấn đề. Bạn có thể xóa cú pháp không hợp lệ này trong Python bằng cách chuyển dấu chấm phẩy thành dấu hai chấm

Ngoài ra, các đối số từ khóa trong cả định nghĩa hàm và lệnh gọi hàm cần phải theo đúng thứ tự. Đối số từ khóa luôn xuất hiện sau đối số vị trí. Việc không sử dụng thứ tự này sẽ dẫn đến một

>>> len('hello') == 5
True
1

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
76

Ở đây, một lần nữa, thông báo lỗi rất hữu ích trong việc cho bạn biết chính xác lỗi của dòng

Thay đổi phiên bản Python

Đôi khi, mã hoạt động hoàn toàn tốt trong một phiên bản Python bị hỏng trong phiên bản mới hơn. Điều này là do những thay đổi chính thức trong cú pháp ngôn ngữ. Ví dụ nổi tiếng nhất về điều này là câu lệnh

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
51, chuyển từ một từ khóa trong Python 2 thành một hàm tích hợp sẵn trong Python 3

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
77

Đây là một trong những ví dụ mà thông báo lỗi được cung cấp với

>>> len('hello') == 5
True
1 tỏa sáng. Nó không chỉ cho bạn biết rằng bạn đang thiếu dấu ngoặc đơn trong lệnh gọi
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
elif guess < num:
    print("The number is greater.")
else:
    print("The number is smaller.")
51 mà còn cung cấp mã chính xác để giúp bạn sửa câu lệnh

Một vấn đề khác mà bạn có thể gặp phải là khi bạn đang đọc hoặc tìm hiểu về cú pháp đó là cú pháp hợp lệ trong phiên bản Python mới hơn nhưng không hợp lệ trong phiên bản bạn đang viết. Một ví dụ về điều này là cú pháp chuỗi f, không tồn tại trong các phiên bản Python trước 3. 6

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
78

Trong các phiên bản Python trước 3. 6, trình thông dịch không biết gì về cú pháp f-string và sẽ chỉ cung cấp một thông báo chung chung

Guess the number:20
The number is greater.
26. Trong trường hợp này, vấn đề là mã trông hoàn toàn ổn, nhưng nó được chạy với phiên bản Python cũ hơn. Khi nghi ngờ, hãy kiểm tra kỹ phiên bản Python bạn đang chạy

Cú pháp Python đang tiếp tục phát triển và có một số tính năng mới thú vị được giới thiệu trong Python 3. 8

  • Toán tử hải mã (biểu thức gán)
  • Cú pháp chuỗi F để gỡ lỗi
  • Đối số chỉ vị trí

Nếu bạn muốn dùng thử một số tính năng mới này, thì bạn cần đảm bảo rằng bạn đang làm việc trên Python 3. 8 môi trường. Nếu không, bạn sẽ nhận được một

>>> len('hello') == 5
True
1

Trăn 3. 8 cũng cung cấp

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
841 mới. Bạn sẽ thấy cảnh báo này trong trường hợp cú pháp hợp lệ nhưng vẫn có vẻ đáng ngờ. Một ví dụ về điều này sẽ là nếu bạn thiếu dấu phẩy giữa hai bộ dữ liệu trong danh sách. Đây sẽ là cú pháp hợp lệ trong các phiên bản Python trước 3. 8, nhưng mã sẽ tăng
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
842 vì bộ dữ liệu không thể gọi được

>>>

  File "c:\Users\rhntm\myscript.py", line 5
    elif guess < num:
    ^^^^
SyntaxError: invalid syntax
79

Điều này

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
842 có nghĩa là bạn không thể gọi một tuple giống như một hàm, đó là điều mà trình thông dịch Python nghĩ rằng bạn đang làm

Trong Trăn 3. 8, mã này vẫn tăng

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
842, nhưng bây giờ bạn cũng sẽ thấy một
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
841 cho biết cách bạn có thể tiến hành khắc phục sự cố

>>>

>>> len('hello') == 5
True
0

Thông báo hữu ích đi kèm với

num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
841 mới thậm chí còn cung cấp một gợi ý (
num=25
guess=int(input("Guess the number:"))
if guess == num:
    print("correct")
    elif guess < num:
        print("The number is greater.")
else:
    print("The number is smaller.")
847) để chỉ cho bạn đi đúng hướng

Loại bỏ các quảng cáo

Sự kết luận

Trong hướng dẫn này, bạn đã thấy thông tin mà truy nguyên

>>> len('hello') == 5
True
1 cung cấp cho bạn. Bạn cũng đã thấy nhiều ví dụ phổ biến về cú pháp không hợp lệ trong Python và giải pháp cho những vấn đề đó là gì. Điều này không chỉ tăng tốc quy trình làm việc của bạn mà còn giúp bạn trở thành một người đánh giá mã hữu ích hơn

Khi bạn đang viết mã, hãy thử sử dụng IDE hiểu cú pháp Python và cung cấp phản hồi. Nếu bạn đặt nhiều ví dụ mã Python không hợp lệ từ hướng dẫn này vào một IDE tốt, thì chúng sẽ làm nổi bật các dòng vấn đề trước khi bạn bắt đầu thực thi mã của mình

Nhận được một

>>> len('hello') == 5
True
1 trong khi bạn đang học Python có thể gây khó chịu, nhưng bây giờ bạn đã biết cách hiểu các thông báo truy nguyên và các dạng cú pháp không hợp lệ trong Python mà bạn có thể gặp phải. Lần tới khi bạn nhận được
>>> len('hello') == 5
True
1, bạn sẽ được trang bị tốt hơn để khắc phục sự cố một cách nhanh chóng

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Xác định cú pháp Python không hợp lệ

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Tại sao cú pháp elif không hợp lệ trong python?

Gửi cho tôi thủ thuật Python »

Giới thiệu về Chad Hansen

Tại sao cú pháp elif không hợp lệ trong python?
Tại sao cú pháp elif không hợp lệ trong python?

Chad là một Pythonista cuồng nhiệt và phát triển web toàn thời gian với Django. Chad sống ở Utah với vợ và sáu đứa con

» Tìm hiểu thêm về Tchad


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Tại sao cú pháp elif không hợp lệ trong python?

Aldren

Tại sao cú pháp elif không hợp lệ trong python?

Geir Arne

Tại sao cú pháp elif không hợp lệ trong python?

Jaya

Tại sao cú pháp elif không hợp lệ trong python?

Joanna

Tại sao cú pháp elif không hợp lệ trong python?

Mike

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tại sao cú pháp elif không hợp lệ trong python?

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Tại sao Elif của tôi nói cú pháp không hợp lệ?

Trong mã Python trong một tệp, không thể có bất kỳ mã nào khác giữa if và other. Bạn sẽ thấy SyntaxError. cú pháp không hợp lệ nếu bạn cố gắng tự viết một câu lệnh khác hoặc đặt thêm mã giữa if và other trong tệp Python .

Tại sao Elif không hoạt động trong Python?

Vấn đề là dòng trống bạn đang nhập trước ký tự else hoặc elif . Chú ý đến lời nhắc bạn được đưa ra. Nếu là >>> , thì Python đang đợi bắt đầu một câu lệnh mới. Nếu nó là. , thì nó mong bạn tiếp tục câu lệnh trước đó.

Tại sao Python của tôi nói cú pháp không hợp lệ?

Lỗi cú pháp được Python tạo ra khi nó dịch mã nguồn thành mã byte. Họ thường chỉ ra rằng có điều gì đó không đúng với cú pháp của chương trình . Thí dụ. Bỏ qua dấu hai chấm ở cuối câu lệnh def sẽ tạo ra thông báo hơi thừa SyntaxError. cú pháp không hợp lệ.

Cú pháp của Elif trong Python là gì?

Mệnh đề elif trong Python . Đây là một ví dụ. nếu 51