Si une instruction goto existe en Python

Najwa Riyaz 30 janvier 2023
  1. Utiliser des exceptions pour émuler une instruction goto en Python
  2. Utilisez des boucles avec les instructions break et continue pour émuler une instruction goto en Python
Si une instruction goto existe en Python

Cet article vous donne la réponse si l’instruction goto existe ou non en Python.

Fondamentalement, les instructions goto ne sont pas prises en charge en Python. Généralement, ces déclarations sont largement méprisées car elles donnent lieu à un code très désorganisé ; ainsi, se retrouvant dans le code spaghetti. Un tel code devient difficile à comprendre et à retracer tout en essayant de comprendre les flux et le débogage.

Python permet une programmation structurée en utilisant plusieurs manières de brancher le code, telles que l’utilisation d’expressions if-else, d’exceptions et de boucles.

Si vous souhaitez émuler une instruction goto en Python, cet article fournit quelques exemples. Cependant, ces méthodes ne sont pas recommandées car c’est une mauvaise pratique de programmation d’utiliser goto.

Utiliser des exceptions pour émuler une instruction goto en Python

Vous pouvez utiliser des exceptions pour fournir une manière structurée d’implémenter goto, même si ce n’est pas une pratique de programmation recommandée. Après tout, les exceptions peuvent sortir de structures de contrôle profondément imbriquées. Vérifiez cet exemple ci-dessous.

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

Production:

from the goto label

Utilisez des boucles avec les instructions break et continue pour émuler une instruction goto en Python

Vous pouvez utiliser des boucles avec les instructions break et continue pour émuler une instruction goto en Python. Cet exemple de programme illustre cette méthode.

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

Production:

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

Ici, l’instruction continue aide le processus à passer à l’itération suivante de la boucle et à provoquer une boucle infinie. D’autre part, l’instruction break permet de terminer la boucle.

Article connexe - Python Loop