在 Python 中是否存在 goto 语句
Najwa Riyaz
2023年1月30日
本文为你提供了 Python 中是否存在 goto
语句的答案。
基本上,Python 不支持 goto
语句。通常,这些语句被广泛鄙视,因为它们导致代码非常无组织;因此,以意大利面条式代码结束。在尝试理解流程和调试时,此类代码变得难以理解和追溯。
Python 通过使用多种方法来分支代码,例如使用 if-else
表达式、异常和循环,从而实现结构化编程。
如果你想在 Python 中模拟 goto
语句,本文提供了一些示例。但是,不推荐使用这些方法,因为使用 goto
是一种糟糕的编程习惯。
在 Python 中使用异常模拟 goto
语句
你可以使用异常来提供实现 goto
的结构化方式,即使它不是推荐的编程实践。毕竟,异常可以跳出深度嵌套的控制结构。参考下面的这个例子。
class gotolabel(Exception):
print("from the goto label") # declare a label
try:
x = 4
if x > 0:
raise gotolabel() # goto the label named "gotolabel"
except gotolabel: # where to goto the label named "gotolabel"
pass
输出:
from the goto label
在 Python 中使用带有 break
和 continue
语句的循环来模拟 goto
语句
你可以使用带有 break
和 continue
语句的循环来模拟 Python 中的 goto
语句。此示例程序演示了此方法。
prompt = "Roll the dice "
while True:
try:
y = int(input(prompt))
except ValueError:
print("Please enter a valid number")
continue
if y > 6:
prompt = "The dice has numbers 1-6 ! Input a number <6"
elif y < 1:
prompt = "The dice has numbers 1-6 ! Input a number >1"
else:
print("Correct!")
break
输出:
Roll the dice hj
Please enter a valid number
Roll the dice 6
Correct!
在这里,continue
语句帮助进程跳转到循环的下一次迭代并导致无限循环。另一方面,break
语句有助于终止循环。