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 58 với câu lệnh 59 và 60 trong Python. Nhưng khi chạy các câu lệnh 61 trong mã của bạn, bạn có thể gặp lỗi có tên là 62 trong Python Show
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 62 trong PythonSử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 PythonThụ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 58 và 59Mã ví dụ
Đầu ra lỗi
Ví dụ trên đưa ra một ngoại lệ, 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ã 58 sau khối mã 60Câu lệnh 59 cần phải phù hợp với câu lệnh 60, như hình bên dướiMã ví dụ
đầu ra
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 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 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ể
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 PythonKhi 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 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 ổnGhi 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à 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ệuBạ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 5 và 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 1Loại bỏ các quảng cáo>>> len('hello') == 5 True 1 Ngoại lệ và Truy nguyênKhi 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ệ 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 6Bạ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, 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 8Lư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 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ì saiTrong 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 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 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
Trong ví dụ trên, tên tệp đã cho là 76, số dòng là 5 và dấu mũ trỏ đến trích dẫn đóng của khóa từ điển 77. Truy nguyên 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ápCó 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 1 nhưng có các tên khác nhau
Cả hai ngoại lệ này đều kế thừa từ lớp 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 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 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 sauCác vấn đề về cú pháp thường gặpKhi bạn gặp phải một 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 1 có thể xuất hiện và cách bạn có thể khắc phục chúngLạ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à 1 truy nguyên>>> 7Ví dụ đầu tiên cố gắng gán giá trị 89 cho lệnh gọi 90. Thông báo 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àmVí 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ũ ( 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àyCó 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 ( 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ệ>>>
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áoViết sai chính tả, thiếu hoặc sử dụng sai từ khóa PythonTừ 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
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 1. Ví dụ: đây là điều sẽ xảy ra nếu bạn đánh vần sai từ khóa 95>>> 7Tin nhắn có nội dung là 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 >>> 8Mộ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 97 bị thiếu trong cú pháp vòng lặp 95Bạ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 99 hoặc 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>>> 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 21 và 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ụngMộ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 >>> 2Khi bạn cố gắng gán một giá trị cho 23 hoặc khi bạn cố gắng xác định một hàm mới có tên là 23, bạn sẽ nhận được một 1 và lại thấy thông báo 26Có 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 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ụngDanh 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 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 28 làm tên biến hoặc tên hàm, điều này sẽ gây ra lỗi 1 nếu mã của bạn dành cho Python 3. 7 hoặc muộn hơnMột ví dụ khác về điều này là 51, khác với Python 2 so với Python 3Phiên bản 51 TypeTakes A ValuePython 2từ khóanoPython 3chức năng tích hợpcó 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 5 54 cũng cung cấp 55 hữu ích. Nếu bạn chỉ cần một cách nhanh chóng để kiểm tra biến 23, thì bạn có thể sử dụng một lớp lót sau>>> 2Mã 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áoThiếu dấu ngoặc đơn, dấu ngoặc kép và dấu ngoặc képThô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 >>> 80Ở đây, truy nguyên trỏ đến mã không hợp lệ, nơi có một 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
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 >>> 81Lần này, dấu mũ trong truy nguyên trỏ ngay đến mã sự cố. Thông báo 1, 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 ( 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 82Ở đây, tham chiếu đến từ điển 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 83Python 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 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 84Khi 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 25 85Điều đang xảy ra ở đây là Python nghĩ rằng danh sách chứa ba phần tử. 26, 27 và 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 29 với 800, Python gộp chúng lại với nhau thành phần tử thứ ba của danh sáchMộ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 86Bây giờ bạn nhận được một dấu vết khác 87Trong ví dụ trước, 29 và 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 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ácTrong ví dụ này, Python đã mong đợi một dấu ngoặc đóng ( 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 saiLoại bỏ các quảng cáoTừ điển sai cú phápBạn đã thấy trước đó rằng bạn có thể nhận được một 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 ( 87) để phân tách khóa và giá trị, thay vì dấu hai chấm>>> 88Mộ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 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 807>>> 89Bạn có thể sử dụng 807 để xác định từ điển nếu cú pháp đó hữu ích hơnSử dụng thụt lề saiCó hai lớp con của 1 xử lý cụ thể các vấn đề về thụt lề
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 80 nếu có một dòng trong khối mã có sai số lượng khoảng trắng 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 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 815 dự định nằm sau vòng lặp 95 hay bên trong khối vòng lặp 95? 71Mặc dù truy nguyên trông rất giống truy nguyên 1, nhưng nó thực sự là một 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, 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ếnLoại 1 khác là 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ạnNế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ố 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. 73Lư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
Khi bạn chạy mã, bạn sẽ gặp lỗi sau và theo dõi lại 74Lưu ý 81 thay vì 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ệpGiả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àmBạ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 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>>> 75Truy 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 1>>> 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 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>>> 77Đây là một trong những ví dụ mà thông báo lỗi được cung cấp với 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 51 mà còn cung cấp mã chính xác để giúp bạn sửa câu lệnhMộ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 >>> 78Trong 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 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ạyCú 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
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 1Trăn 3. 8 cũng cung cấp 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 842 vì bộ dữ liệu không thể gọi được>>> 79Điều này 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àmTrong Trăn 3. 8, mã này vẫn tăng 842, nhưng bây giờ bạn cũng sẽ thấy một 841 cho biết cách bạn có thể tiến hành khắc phục sự cố>>> 0Thông báo hữu ích đi kèm với 841 mới thậm chí còn cung cấp một gợi ý ( 847) để chỉ cho bạn đi đúng hướngLoại bỏ các quảng cáoSự kết luậnTrong hướng dẫn này, bạn đã thấy thông tin mà truy nguyên 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ơnKhi 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 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 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 Gửi cho tôi thủ thuật Python » Giới thiệu về Chad Hansen 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ề TchadMỗ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à Aldren Geir Arne Jaya Joanna 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 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 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ẻ EmailBà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 |