Se uma instrução goto existe no Python

Najwa Riyaz 30 janeiro 2023
  1. Use exceções para emular uma instrução goto em Python
  2. Use loops com as instruções break e continue para emular uma instrução goto em Python
Se uma instrução goto existe no Python

Este artigo fornece a você a resposta se a instrução goto existe ou não no Python.

Basicamente, as instruções goto não são suportadas no Python. Geralmente, essas instruções são amplamente desprezadas porque resultam em um código muito desorganizado; assim, terminando em código espaguete. Esse código se torna difícil de entender e rastrear ao tentar entender os fluxos e a depuração.

O Python permite a programação estruturada usando várias maneiras de ramificar o código, como usar expressões if-else, exceções e loops.

Se você deseja emular uma instrução goto em Python, este artigo fornece alguns exemplos. No entanto, esses métodos não são recomendados, pois é uma má prática de programação usar goto.

Use exceções para emular uma instrução goto em Python

Você pode usar exceções para fornecer uma maneira estruturada de implementar goto, embora não seja uma prática de programação recomendada. Afinal, as exceções podem saltar de estruturas de controle profundamente aninhadas. Verifique este exemplo abaixo.

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

Produção:

from the goto label

Use loops com as instruções break e continue para emular uma instrução goto em Python

Você poderia usar loops com as instruções break e continue para emular uma instrução goto em Python. Este programa de exemplo demonstra esse 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

Produção:

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

Aqui, a instrução continue ajuda o processo a saltar para a próxima iteração do loop e causar um loop infinito. Por outro lado, a instrução break ajuda a encerrar o loop.

Artigo relacionado - Python Loop