Se uma instrução goto existe no Python
-
Use exceções para emular uma instrução
gotoem Python -
Use loops com as instruções
breakecontinuepara emular uma instruçãogotoem 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.