在 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