Computer >> Máy Tính >  >> Lập trình >> Python

Python SyntaxError:tiếp tục không đúng trong vòng lặp Giải pháp

Từ khóa continue di chuyển thứ tự của một chương trình sang lần lặp tiếp theo trong một vòng lặp. Nếu bạn sử dụng câu lệnh continue bên ngoài vòng lặp for hoặc vòng lặp while, thì SyntaxError: continue not properly in loop lỗi sẽ được nâng lên.

Hướng dẫn này khám phá lỗi này có nghĩa là gì và tại sao bạn có thể gặp phải nó. Nó hướng dẫn bạn một ví dụ về lỗi này để bạn có thể tìm ra cách nó hoạt động.

SyntaxError:tiếp tục không đúng trong vòng lặp

Câu lệnh continue cho phép bạn chuyển sang lần lặp tiếp theo trong vòng lặp for hoặc vòng lặp while. Câu lệnh tiếp tục, giống như câu lệnh ngắt, không có đối số. Họ đứng một mình trong một chương trình.

Bạn chỉ có thể sử dụng câu lệnh continue trong một vòng lặp. Điều này là do các câu lệnh continue được thiết kế để xuất hiện trong các vòng lặp. Bạn không thể sử dụng câu lệnh continue để hướng dẫn một chương trình continue bên ngoài vòng lặp vì không có ngữ cảnh để từ khóa diễn giải những gì cần tiếp tục.

Câu lệnh Continue có thể xuất hiện bên trong câu lệnh if hoặc một khối mã khác, miễn là khối mã đó nằm trong một vòng lặp.

Một tình huống mẫu

Hãy xây dựng một chương trình xác thực đầu vào cho hệ thống quản lý hàng tồn kho tại một quán cà phê. Để một đầu vào hợp lệ, nó phải chứa ít nhất ba ký tự.

Để bắt đầu, hãy yêu cầu người dùng chèn tên sản phẩm mà họ muốn nhập vào hệ thống:

product_name = input(“Enter the product name: ”)

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Tiếp theo, hãy xác thực câu trả lời này. Chúng tôi sẽ sử dụng câu lệnh if để đảm bảo rằng đầu vào dài ít nhất ba ký tự:

if len(product_name) < 3:
	print("Product names must be at least three characters long.")
	continue
else:
	break

print("Your product name is valid.")

Nếu người dùng chèn tên sản phẩm dưới ba ký tự, một thông báo sẽ được in ra bảng điều khiển và sau đó câu lệnh tiếp tục chạy. Nếu không, một câu lệnh break sẽ chạy. Chúng tôi sử dụng phương thức len () để lấy độ dài của tên sản phẩm.

Nếu tên sản phẩm của chúng tôi hợp lệ, một thông báo cho chúng tôi biết đây là trường hợp được hiển thị trên bảng điều khiển.

Bây giờ chúng tôi đã viết trình xác thực của mình, chúng tôi đã sẵn sàng chạy mã của mình. Hãy xem điều gì sẽ xảy ra khi chúng tôi chạy chương trình của mình:

 File "main.py", line 3
	continue
	^
SyntaxError: 'continue' not properly in loop

Mã của chúng tôi trả về lỗi.

Giải pháp

Chúng tôi đã sử dụng câu lệnh continue để yêu cầu chương trình của chúng tôi tiếp tục hoạt động nếu một điều kiện cụ thể được đáp ứng. Mặc dù chúng ta có thể sử dụng câu lệnh continue trong câu lệnh if, nhưng câu lệnh continue của chúng ta phải xuất hiện ở đâu đó trong vòng lặp.

Chúng tôi không sử dụng vòng lặp trong chương trình của mình, điều này làm cho việc sử dụng tiếp tục hơi phản tác dụng. Hơn nữa, chúng tôi đang sử dụng tiếp tục, điều này gây ra lỗi. Để khắc phục lỗi này, chúng tôi cần đặt mã của chúng tôi trong một vòng lặp:

while True:
	product_name = input("Enter the product name: ")

if len(product_name) < 3:
	print("Product names must be at least three characters long.")
	continue
else:
	break

print("Your product name is valid.")

Chúng tôi đã thực hiện một thay đổi đối với mã của mình. Tất cả chương trình của chúng tôi bây giờ nằm ​​trong vòng lặp while. Điều này có nghĩa là người dùng của chúng tôi sẽ được nhắc nhập tên sản phẩm cho đến khi vòng lặp dừng lại.

Vòng lặp của chúng tôi chỉ dừng lại nếu người dùng chèn tên sản phẩm hợp lệ. Nếu không, một thông báo được in ra bảng điều khiển và vòng lặp của chúng tôi sẽ lặp lại một lần nữa.

Hãy chạy chương trình của chúng tôi và xem điều gì sẽ xảy ra:

Tên sản phẩm của bạn là hợp lệ.

Nhập tên sản phẩm:Rwandan

Mã của chúng tôi chạy thành công! Hãy thử chạy mã của chúng tôi trên một tên sản phẩm không hợp lệ:

Nhập tên sản phẩm:RW

Tên sản phẩm phải dài ít nhất ba ký tự.

Nhập tên sản phẩm:

Chương trình của chúng tôi thông báo cho chúng tôi rằng tên sản phẩm không hợp lệ và nhắc chúng tôi chèn một tên sản phẩm khác.

Kết luận

SyntaxError: continue not properly in loop lỗi được đưa ra khi bạn cố gắng sử dụng câu lệnh continue bên ngoài vòng lặp for hoặc vòng lặp while. Để khắc phục lỗi này, hãy đặt mọi câu lệnh continue trong mã của bạn bên trong một vòng lặp.

Bây giờ bạn đã có kiến ​​thức cần thiết để sửa lỗi này như một người chuyên nghiệp!