faire une boucle

Le
fred1599
Bonjour,

Un problème de boucle,

J'aimerais faire comme dans les machines a calculer avec la fonction
'lbl' et la fonction 'goto'

C'est surement possible mais je n'ai rien vu par rapport à ça
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Desthuilliers
Le #639852
Bonjour,

Un problème de boucle,

J'aimerais faire comme dans les machines a calculer avec la fonction
'lbl' et la fonction 'goto'


s/fonction/instruction/g

C'est surement possible


Surement pas. Enfin, pas en Python, ni dans aucun langage de haut
niveau. Heureusement.

mais je n'ai rien vu par rapport à ça


Regarde du côté des exceptions et des générateurs.

Laurent Pointal
Le #639364
wrote:

Bonjour,

Un problème de boucle,

J'aimerais faire comme dans les machines a calculer avec la fonction
'lbl' et la fonction 'goto'


<quirk: trois morts dans les lecteurs>

C'est surement possible mais je n'ai rien vu par rapport à ça


Pas de goto en Python, pas de goto dans la majeure partie des langages
récents. Tu peux faire des boucles via for ou while, il faut que tu
réorganise ton code dans ce sens - au besoin poste un petit bout de code et
on verra comment le restructurer.


A+

Laurent

PS. Pour le fun, il y a un "goto" Python ici: http://www.entrian.com/goto/

Méta-MCI \(MVP\)
Le #639114
Bonsoir !


Je te conseille d'essayer le langage GOTO++
(http://gpp.niacland.net/presentation.html.fr)


@-salutations
--
Michel Claveau
Laurent Pointal
Le #639113
wrote:

Bonjour,

Un problème de boucle,

J'aimerais faire comme dans les machines a calculer avec la fonction
'lbl' et la fonction 'goto'

C'est surement possible mais je n'ai rien vu par rapport à ça


Ah, j'oubliais une référence

"Go To Statement Considered Harmful"
par Edsger W. Dijkstra
http://www.acm.org/classics/oct95/

Méta-MCI \(MVP\)
Le #639109
Extrait de la doc :

"Ensuite vient le GOTOGOTO..."
"le GOTOGOTO requiert, en plus du label, un pourcentage de
réussite qui va permettre de calculer la probabilité pour
que le GOTOGOTO vous envoie vraiment à cette étiquette"
fred1599
Le #638861
Extrait de la doc :

"Ensuite vient le GOTOGOTO..."
"le GOTOGOTO requiert, en plus du label, un pourcentage de
réussite qui va permettre de calculer la probabilité pour
que le GOTOGOTO vous envoie vraiment à cette étiquette"


Bon je te passe un code exemple que je me suis amusé a faire pour
faire cette boucle

# _*_ coding:Utf-8 _*_

print 'voila un petit programme afin de calculer un pourcentage'

# Les chiffres dont on a besoin

a = float(raw_input('Donner la valeur de votre article :'))
b = float(raw_input('Donner la valeur de votre pourcentage :'))

if a > 0 and b > 0 :
c=((a*b)/100)
d= (a-c)
print 'vous avez demandé sur votre article d'une valeur de' , a ,
'euros, un pourcentage de' , b , '%, ce qui donne une valeur finale
pour votre article de :' , d
elif a < 0 and b > 0 :
print 'vous ne pouvez pas avoir une valeur négative!!! Recommencez le
programme'
elif a > 0 and b < 0 :
print 'votre pourcentage ne peut pas être négatif!!! Recommencez le
programme'
elif a < 0 and b < 0 :
print 'soyons logique, recommencez le programme'

raw_input()


Voila, maintenant, une fois que j'appuis sur une nouvelle touche,
j'aimerais que le programme revienne au point de départ en me
redemendant la valeur a et la valeur b

Merci par avance

Franssoa
Le #638860
Je te conseille d'essayer le langage GOTO++
(http://gpp.niacland.net/presentation.html.fr)
Mais c'est très bon ça ! Domage, ça ne fonctionne pas sur windows 95,

sinon... hum...

François

jean-michel bain-cornu
Le #638859
Bonjour,
J'aimerais faire comme dans les machines a calculer avec la fonction
'lbl' et la fonction 'goto'


Il y a quelques temps, j'avais trouvé sur un forum ce qui suit pour le goto.
Je me rappelle l'avoir utilisé pour la migration d'une vieille
application en basic (on verse une larme).
Le deuxième est un lien vers un module qui ajoute le goto à python.
http://entrian.com/goto/index.html
Je n'ai pas vérifié si ça marche.

A+
jm

"""
10 i=0
20 if i>10: goto(100)
30 print 'i=',i
40 i += 1
50 goto(20)
100 print 'ok'
"""
z = dict((int(x[0]), " ".join(x[1:])) for x in (y.split() for y in (__doc__
or _).strip().splitlines())); k = [0] + sorted(z.keys()); m = dict((b,a) for
a,b in enumerate(k)); l = k[1]

def goto(n): global l; l = k[m[n]-1]

while l and l <= k[-1]: exec z[l]; l = l != k[-1] and k[m[l]+1]

Laurent Pointal
Le #638858
Extrait de la doc :

"Ensuite vient le GOTOGOTO..."
"le GOTOGOTO requiert, en plus du label, un pourcentage de
réussite qui va permettre de calculer la probabilité pour
que le GOTOGOTO vous envoie vraiment à cette étiquette"


Bon je te passe un code exemple que je me suis amusé a faire pour
faire cette boucle

# _*_ coding:Utf-8 _*_

print 'voila un petit programme afin de calculer un pourcentage'

# Les chiffres dont on a besoin

a = float(raw_input('Donner la valeur de votre article :'))
b = float(raw_input('Donner la valeur de votre pourcentage :'))

if a > 0 and b > 0 :
c=((a*b)/100)
d= (a-c)
print 'vous avez demandé sur votre article d'une valeur de' , a ,
'euros, un pourcentage de' , b , '%, ce qui donne une valeur finale
pour votre article de :' , d
elif a < 0 and b > 0 :
print 'vous ne pouvez pas avoir une valeur négative!!! Recommencez le
programme'
elif a > 0 and b < 0 :
print 'votre pourcentage ne peut pas être négatif!!! Recommencez le
programme'
elif a < 0 and b < 0 :
print 'soyons logique, recommencez le programme'

raw_input()


Voila, maintenant, une fois que j'appuis sur une nouvelle touche,
j'aimerais que le programme revienne au point de départ en me
redemendant la valeur a et la valeur b


# _*_ coding:Utf-8 _*_

print 'voila un petit programme afin de calculer un pourcentage'

while True:
# (ton code, indenté d'un cran à droite:)
# Les chiffres dont on a besoin

a = float(raw_input('Donner la valeur de votre article :'))
b = float(raw_input('Donner la valeur de votre pourcentage :'))

if a > 0 and b > 0 :
c=((a*b)/100)
d= (a-c)
print 'vous avez demandé sur votre article d'une valeur de' , a ,
'euros, un pourcentage de' , b , '%, ce qui donne une valeur finale
pour votre article de :' , d
elif a < 0 and b > 0 :
print 'vous ne pouvez pas avoir une valeur négative!!! Recommencez le
programme'
elif a > 0 and b < 0 :
print 'votre pourcentage ne peut pas être négatif!!! Recommencez le
programme'
elif a < 0 and b < 0 :
print 'soyons logique, recommencez le programme'

raw_input()


Si tu veux sortir, tu peux faire qq chose sur la dernière ligne comme:

if raw_input("Continuer (O/N) ?").upper() in ("N","NON","NO) : break


fred1599
Le #638856
Et bien moi j'ai vérifié si ça fonctionne, et je te dis que ca marche
au poil.

Merci beaucoup ca me simplifie énormément la vie.

Bye


Bonjour,
J'aimerais faire comme dans les machines a calculer avec la fonction
'lbl' et la fonction 'goto'


Il y a quelques temps, j'avais trouvé sur un forum ce qui suit pour le goto.
Je me rappelle l'avoir utilisé pour la migration d'une vieille
application en basic (on verse une larme).
Le deuxième est un lien vers un module qui ajoute le goto à python.
http://entrian.com/goto/index.html
Je n'ai pas vérifié si ça marche.

A+
jm

"""
10 i=0
20 if i>10: goto(100)
30 print 'i=',i
40 i += 1
50 goto(20)
100 print 'ok'
"""
z = dict((int(x[0]), " ".join(x[1:])) for x in (y.split() for y in (__d oc__
or _).strip().splitlines())); k = [0] + sorted(z.keys()); m = dict((b ,a) for
a,b in enumerate(k)); l = k[1]

def goto(n): global l; l = k[m[n]-1]

while l and l <= k[-1]: exec z[l]; l = l != k[-1] and k[m[l]+1]



Publicité
Poster une réponse
Anonyme