Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Giải pháp lỗi Python SyntaxError: continue not properly in loop

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

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

SyntaxError: continue not properly in loop

Câu lệnh continue cho phép chuyển sang vòng lặp tiếp theo trong for hoặc while. Câu lệnh continue, như break, không nhận đối số. Chúng đứng riêng trong chương trình.

Bạn chỉ có thể dùng continue trong vòng lặp. Điều này là do continue được thiết kế xuất hiện trong vòng lặp. Bạn không thể dùng continue để bảo chương trình continue ngoài vòng lặp vì không có ngữ cảnh cho từ khóa diễn giải gì cần continue.

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

Ví dụ minh họa

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

Đầu tiên, yêu cầu người dùng nhập tên sản phẩm muốn nhập vào hệ thống:

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

Tiếp theo, xác thực phản hồi. Dùng câu lệnh if đảm bảo đầu vào í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 nhập tên sản phẩm dưới ba ký tự, thông báo in ra console rồi continue chạy. Ngược lại, break chạy. Chúng ta dùng len() lấy độ dài tên sản phẩm.

Nếu tên sản phẩm hợp lệ, thông báo hiển thị trên console.

Bây giờ đã viết validator, sẵn sàng chạy mã. Xem điều gì xảy ra:

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

Mã trả về lỗi.

Giải pháp

Chúng ta dùng continue để bảo chương trình tiếp tục nếu điều kiện đáp ứng. Mặc dù có thể dùng continue trong if, continue phải xuất hiện ở đâu đó trong vòng lặp.

Chúng ta không dùng vòng lặp trong chương trình khiến continue trở nên counterproductive. Vấn đề là dùng continue gây lỗi. Để khắc phục, bao quanh mã bằng 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 ta thay đổi một chỗ: toàn bộ chương trình bên trong vòng while. Người dùng sẽ được nhắc nhập tên sản phẩm cho đến khi vòng lặp dừng.

Vòng lặp chỉ dừng nếu người dùng nhập tên hợp lệ. Ngược lại, thông báo in ra và vòng lặp lặp lại.

Chạy chương trình:

Your product name is valid.
Enter the product name: Rwandan

Mã chạy thành công! Thử chạy với tên không hợp lệ:

Enter the product name: RW
Product names must be at least three characters long.
Enter the product name:

Chương trình báo tên không hợp lệ và nhắc nhập tên khác.

Kết luận

Lỗi SyntaxError: continue not properly in loop xảy ra khi dùng continue ngoài for hoặc while. Để khắc phục, bao quanh mọi continue trong mã bên trong vòng lặp.

Bây giờ bạn đã có kiến thức khắc phục lỗi này như chuyên gia!