Y a-t-il un goto
ou tout autre équivalent en Python pour pouvoir sauter à une ligne de code spécifique ?
Réponses
Trop de publicités?Je cherchais quelque chose de similaire à
for a in xrange(1,10):
A_LOOP
for b in xrange(1,5):
for c in xrange(1,5):
for d in xrange(1,5):
# do some stuff
if(condition(e)):
goto B_LOOP;
Mon approche a donc consisté à utiliser un booléen pour m'aider à me libérer des boucles for imbriquées :
for a in xrange(1,10):
get_out = False
for b in xrange(1,5):
if(get_out): break
for c in xrange(1,5):
if(get_out): break
for d in xrange(1,5):
# do some stuff
if(condition(e)):
get_out = True
break
Bien qu'il n'y ait pas d'équivalent de code à goto/label
en Python, vous pourriez toujours obtenir une telle fonctionnalité de goto/label
en utilisant des boucles.
Prenons un exemple de code montré ci-dessous où goto/label
peut être utilisé dans un langage arbitraire autre que python.
String str1 = 'BACK'
label1:
print('Hello, this program contains goto code\n')
print('Now type BACK if you want the program to go back to the above line of code. Or press the ENTER key if you want the program to continue with further lines of code')
str1 = input()
if str1 == 'BACK'
{
GoTo label1
}
print('Program will continue\nBla bla bla...\nBla bla bla...\nBla bla bla...')
Maintenant, la même fonctionnalité de l'exemple de code ci-dessus peut être réalisée en python en utilisant une fonction while
comme indiqué ci-dessous.
str1 = 'BACK'
while str1 == 'BACK':
print('Hello, this is a python program containing python equivalent code for goto code\n')
print('Now type BACK if you want the program to go back to the above line of code. Or press the ENTER key if you want the program to continue with further lines of code')
str1 = input()
print('Program will continue\nBla bla bla...\nBla bla bla...\nBla bla bla...')
Je voulais la même réponse et je ne voulais pas utiliser goto
. J'ai donc utilisé l'exemple suivant (tiré de learnpythonthehardway)
def sample():
print "This room is full of gold how much do you want?"
choice = raw_input("> ")
how_much = int(choice)
if "0" in choice or "1" in choice:
check(how_much)
else:
print "Enter a number with 0 or 1"
sample()
def check(n):
if n < 150:
print "You are not greedy, you win"
exit(0)
else:
print "You are nuts!"
exit(0)
3 votes
L'étiquette est assez vague. Pouvez-vous être plus précis sur ce que vous recherchez ?
16 votes
import goto
25 votes
Un de mes amis a mis en place
goto
en Python alors qu'il traduisait du code Fortran en Python. Il s'est détesté pour ça.6 votes
github.com/cdjc/goto (c'est beaucoup plus rapide que l'implémentation entrienne)
0 votes
"L'étiquette est plutôt vague", aucune étiquette n'est intelligente, la structure fonctionne comme une machine.
2 votes
Dans le contexte de l'étiquette "goto" est très clair pour tout programmeur expérimenté