Si existe una instrucción goto en Python

Najwa Riyaz 30 enero 2023
  1. Utilice excepciones para emular una declaración goto en Python
  2. Utilice bucles con declaraciones break y continue para emular una declaración goto en Python
Si existe una instrucción goto en Python

Este artículo le proporciona la respuesta si la declaración goto existe o no en Python.

Básicamente, las declaraciones goto no son compatibles con Python. Generalmente, estas declaraciones son ampliamente despreciadas porque dan como resultado un código muy desorganizado; por lo tanto, termina en código espagueti. Este código se vuelve difícil de entender y rastrear mientras se intenta comprender los flujos y la depuración.

Python permite la programación estructurada mediante el uso de varias formas de ramificar el código, como el uso de expresiones, excepciones y bucles if-else.

Si desea emular una declaración goto en Python, este artículo proporciona algunos ejemplos. Sin embargo, estos métodos no se recomiendan ya que es una mala práctica de programación utilizar goto.

Utilice excepciones para emular una declaración goto en Python

Puede utilizar excepciones para proporcionar una forma estructurada de implementar goto, aunque no es una práctica de programación recomendada. Después de todo, las excepciones pueden surgir de estructuras de control profundamente anidadas. Mira este ejemplo a continuación.

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

Producción :

from the goto label

Utilice bucles con declaraciones break y continue para emular una declaración goto en Python

Puede usar bucles con declaraciones break y continue para emular una declaración goto en Python. Este programa de ejemplo demuestra este método.

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

Producción :

Roll the dice hj
Please enter a valid number
Roll the dice 6
Correct!

Aquí, la declaración continue ayuda al proceso a saltar a la siguiente iteración del bucle y provocar un bucle infinito. Por otro lado, la declaración break ayuda a terminar el bucle.

Artículo relacionado - Python Loop