在 Python 中是否存在 goto 語句
Najwa Riyaz
2023年1月30日
2021年10月2日
本文為你提供了 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
語句有助於終止迴圈。