在 Python 中是否存在 goto 語句

Najwa Riyaz 2023年1月30日
  1. 在 Python 中使用異常模擬 goto 語句
  2. 在 Python 中使用帶有 breakcontinue 語句的迴圈來模擬 goto 語句
在 Python 中是否存在 goto 語句

本文為你提供了 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 中使用帶有 breakcontinue 語句的迴圈來模擬 goto 語句

你可以使用帶有 breakcontinue 語句的迴圈來模擬 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 語句有助於終止迴圈。

相關文章 - Python Loop