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