在Python中编写代码时,我们需要遵循一些规则,这些规则规定了代码必须如何编写,这也被称为语法。每个单独的语句都有自己的语法。如果我们不遵循这些语法,Python就会引发SyntaxError异常。
continue是一个Python关键字,是一个循环控制语句。它只能写在循环体内部,如果我们试图在循环体外使用它,在那里Python将引发SyntaxError: 'continue' not properly in loop 错误。
这篇 Python 指南详细讨论了下面的错误,并演示了一个常见的例子场景,并提供了解决方案。在本文结束时,你将对什么是Python中的SyntaxError: 'continue' not properly in loop 错误有一个完整的概念,为什么它会发生以及如何调试它。
Python问题:SyntaxError:'continue'在循环中不正确
在Python程序中,当continue 语句写在for或while循环体之外时,就会出现这个错误。
例如
age = 20
if age>=18:
print("You are eligible to get the vaccine ")
continue
else:
print("You are not Eligible for vaccing")
输出
File "main.py", line 4
continue
^
SyntaxError: 'continue' not properly in loop
该错误语句有两个子语句,用冒号隔开:
- SyntaxError
- 'continue'在循环中不正确
1.语法错误(SyntaxError
SyntaxError 是 Python 的标准异常之一。当Python解析器发现某些语句没有遵循定义的语法时,就会引发这个异常。
2.'continue'在循环中不正确
这是错误信息,告诉我们continue 关键字不在循环体中。只有当我们在循环体外使用continue 关键字时,我们才会收到这个错误信息。
在上面的例子中,我们在if..else 体中使用了continue ,这就是为什么 Python 的解析器引发了这个错误。
常见的例子情况
continue 只能在 或 循环体中使用,而且会延续到循环的下一次迭代。for while
在循环内部,我们可以在任何地方使用它,一般来说,我们把它放在if..else 条件里面,所以它只能在特定的条件下执行,而不是在每个迭代中执行。
例子
让我们创建一个输入验证器,要求用户在1000到9999之间输入一个有效的4位数字密码。如果用户输入了有效的数字,我们将显示 "密码有效 "的信息,如果没有,我们将显示 "密码无效 "的信息并要求用户再次输入密码。
passcode = int(input("Enter a valid 4 digit passcode (1000 to 9999): "))
#if passcode is not valid
if not (passcode >=1000 and passcode <=9999):
print("Your Passcode is Not valid \n Please enter again ")
continue
else:
print("The entered Passcode is valid")
输出
File "main.py", line 6
continue
^
SyntaxError: 'continue' not properly in loop
破解代码
Python在上面的例子中产生了错误,因为continue 语句不在任何循环语句里面。我们在上面的例子中的逻辑错过了循环语句。
解决方法
为了解决上述问题,我们需要把所有的代码放在默认条件为True的while循环语句中,这将使循环无限大。而用户只有在输入有效的密码后才能退出该循环。
while True:
passcode = int(input("Enter a valid 4 digit passcode (1000 to 9999): "))
#if passcode is not valid
if not (passcode >=1000 and passcode <=9999):
print("Your Passcode is Not valid \nPlease enter again ")
continue
else:
#if the passcode is valid print the statement and get out of the loop
print("The entered Passcode is valid")
break
输出
Enter a valid 4 digit passcode (1000 to 9999): 99999
Your Passcode is Not valid
Please enter again
Enter a valid 4 digit passcode (1000 to 9999): 9898
The entered Passcode is vaid
现在Python脚本的运行没有任何语法错误。
总结
在处理循环的时候,我们得到了两个循环控制关键字continue 和break 。这两个关键字对于循环语句(for和while)来说是专用的。如果我们在循环代码块之外使用这些关键字,我们就会收到带有错误信息的语法错误。对于循环范围外的continue ,Python抛出了'continue' not properly in loop 错误,对于break ,它抛出了'break' outside the loop 错误。
这个错误在Python中非常常见,而且调试它也非常容易。你唯一需要记住的是,你不能在循环范围外使用这两个关键字。