Dans le niouze anglais, j'ai trouvé 2 messages qui intéresseront ceux qui
veulent le GOTO en python.
Beurk diront certains.
Mais ceux qui essayent de migrer de vieilles appli en GW-Basic ou autre
pourraient bien apprécier...
J'ai pas tout compris dans le premier, je vous le livre tel que:
----------------------------------------------------------------------------
-------------------------------
On peut utiliser le goto seulement si on programme avec des numéros de
ligne:
"""
10 import sys
20 real_stdout = sys.stdout
30 class fake_stdout(object): pass
40 fake_stdout.write = lambda x, y: None
50 sys.stdout = fake_stdout()
60 import this
70 sys.stdout = real_stdout
80 d = {}
90 c = 65
100 i = 0
110 d[chr(i+c)] = chr((i+13) % 26 + c)
120 if i == 26: goto(150)
130 i += 1
140 goto(110)
150 if c == 97: goto(180)
160 c = 97
170 goto(100)
180 print "How zen it is:"
190 print "".join([d.get(c, c) for c in this.s])
"""
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]
--
Michael Hoffman
----------------------------------------------------------------------------
-------------------------------
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.
----------------------------------------------------------------------------
-------------------------------
++jm
Je connais Malboge. Mais c'est un langage où je n'ai pas compris grand chose. Il faut dire qu'il est supposé avoir été écrit dans "l'esprit de Dante".
Le site original ayant disparu, il en existe une copie, là : http://web.archive.org/web/20000815230017/http:/www.mines.edu/students/b/bolmstea/malbolge
Sinon un exemple : les "99 bottles of beer" : http://www.99-bottles-of-beer.net//m.html#Malbolge
J'ai aussi un lien sur un délire complet : une tentative de compilateur BrainFuck, générant du Malboge : http://www.lscheffer.com/bf2malbolge.html
@-salutations -- Michel Claveau
Hi !
Je connais Malboge. Mais c'est un langage où je n'ai pas compris grand
chose. Il faut dire qu'il est supposé avoir été écrit dans "l'esprit de
Dante".
Le site original ayant disparu, il en existe une copie, là :
http://web.archive.org/web/20000815230017/http:/www.mines.edu/students/b/bolmstea/malbolge
Sinon un exemple : les "99 bottles of beer" :
http://www.99-bottles-of-beer.net//m.html#Malbolge
J'ai aussi un lien sur un délire complet : une tentative de compilateur
BrainFuck, générant du Malboge :
http://www.lscheffer.com/bf2malbolge.html
Je connais Malboge. Mais c'est un langage où je n'ai pas compris grand chose. Il faut dire qu'il est supposé avoir été écrit dans "l'esprit de Dante".
Le site original ayant disparu, il en existe une copie, là : http://web.archive.org/web/20000815230017/http:/www.mines.edu/students/b/bolmstea/malbolge
Sinon un exemple : les "99 bottles of beer" : http://www.99-bottles-of-beer.net//m.html#Malbolge
J'ai aussi un lien sur un délire complet : une tentative de compilateur BrainFuck, générant du Malboge : http://www.lscheffer.com/bf2malbolge.html
@-salutations -- Michel Claveau
Do Re Mi chel La Si Do
Bonjour !
Au cas où, j'ai, en réserve, une copie du site de PATH.
Mais j'ai noté une faiblesse dans la documentation du langage. Lors d'une rotation, il n'est pas précisé que le direction annoncée est celle que "voit" le développeur. Dans le cas où le cheminement des instructions vient du haut, c'est l'inverse de la rotation "par le curseur".
@-salutations -- Michel Claveau
Bonjour !
Au cas où, j'ai, en réserve, une copie du site de PATH.
Mais j'ai noté une faiblesse dans la documentation du langage. Lors d'une
rotation, il n'est pas précisé que le direction annoncée est celle que
"voit" le développeur. Dans le cas où le cheminement des instructions vient
du haut, c'est l'inverse de la rotation "par le curseur".
Au cas où, j'ai, en réserve, une copie du site de PATH.
Mais j'ai noté une faiblesse dans la documentation du langage. Lors d'une rotation, il n'est pas précisé que le direction annoncée est celle que "voit" le développeur. Dans le cas où le cheminement des instructions vient du haut, c'est l'inverse de la rotation "par le curseur".
@-salutations -- Michel Claveau
Gilles Lenfant
"Gilles Lenfant" a écrit dans le message de news:420e172f$0$806$
Dans le niouze anglais, j'ai trouvé 2 messages qui intéresseront ceux
qui
veulent le GOTO en python. Beurk diront certains. Mais ceux qui essayent de migrer de vieilles appli en GW-Basic ou autre
Super !
Comment faire du Python (presque) aussi inmaintenable et illisible que du GWBasic ;)
Au prochain épisode : comment se passer des classes, de la gestion des exceptions, limiter les symboles à 2 caractères, limiter la mémoire utilisable à 64Ko, etc, etc...
C'est beau le progrès !
Merci pour le procès d'intention ! Le but du post était simplement de rendre service.
Désolé, je ne voulais pas vexer !
Plus sérieusement, pour migrer une vieille (probablement plus de 20 ans) application GWBasic en Python (ou autre langage digne de ce nom), il est préférable de reprendre à zéro depuis les specs (if any). A long terme cette approche est plus payante.
-- Gilles
Et tu as certes raison: refaire tout de zéro est une approche où il faut payer plus ;-) ++jm
Tu dois déja traduire une à une les instructions Basic en Python. Ce n'est pas un effort considérable de traduire le code en "vrai" python ce qui permettra une meilleure lisibilité / maintenabilité si ce script est sensé "vivre" longtemps.
En plus, la boucle d' "exec" ralentit salement l'exécution de la chose.
L'approche est valable pour les petits trucs qui ne nécessitent pas d'être maintenus par la suite. Sinon, bonjour la galère.
Enfin, bon courage à ceux qui devront maintenir ces scripts...
-- Gilles
"Gilles Lenfant" <glenfant_no_spam@bigfoot.com> a écrit dans le message de
news:420e172f$0$806$8fcfb975@news.wanadoo.fr...
Dans le niouze anglais, j'ai trouvé 2 messages qui intéresseront ceux
qui
veulent le GOTO en python.
Beurk diront certains.
Mais ceux qui essayent de migrer de vieilles appli en GW-Basic ou autre
Super !
Comment faire du Python (presque) aussi inmaintenable et illisible que
du GWBasic ;)
Au prochain épisode : comment se passer des classes, de la gestion des
exceptions, limiter les symboles à 2 caractères, limiter la mémoire
utilisable à 64Ko, etc, etc...
C'est beau le progrès !
Merci pour le procès d'intention ! Le but du post était simplement de rendre
service.
Désolé, je ne voulais pas vexer !
Plus sérieusement, pour migrer une vieille (probablement plus de 20 ans)
application GWBasic en Python (ou autre langage digne de ce nom), il est
préférable de reprendre à zéro depuis les specs (if any). A long terme
cette approche est plus payante.
--
Gilles
Et tu as certes raison: refaire tout de zéro est une approche où il faut
payer plus ;-)
++jm
Tu dois déja traduire une à une les instructions Basic en Python. Ce
n'est pas un effort considérable de traduire le code en "vrai" python ce
qui permettra une meilleure lisibilité / maintenabilité si ce script est
sensé "vivre" longtemps.
En plus, la boucle d' "exec" ralentit salement l'exécution de la chose.
L'approche est valable pour les petits trucs qui ne nécessitent pas
d'être maintenus par la suite. Sinon, bonjour la galère.
Enfin, bon courage à ceux qui devront maintenir ces scripts...
"Gilles Lenfant" a écrit dans le message de news:420e172f$0$806$
Dans le niouze anglais, j'ai trouvé 2 messages qui intéresseront ceux
qui
veulent le GOTO en python. Beurk diront certains. Mais ceux qui essayent de migrer de vieilles appli en GW-Basic ou autre
Super !
Comment faire du Python (presque) aussi inmaintenable et illisible que du GWBasic ;)
Au prochain épisode : comment se passer des classes, de la gestion des exceptions, limiter les symboles à 2 caractères, limiter la mémoire utilisable à 64Ko, etc, etc...
C'est beau le progrès !
Merci pour le procès d'intention ! Le but du post était simplement de rendre service.
Désolé, je ne voulais pas vexer !
Plus sérieusement, pour migrer une vieille (probablement plus de 20 ans) application GWBasic en Python (ou autre langage digne de ce nom), il est préférable de reprendre à zéro depuis les specs (if any). A long terme cette approche est plus payante.
-- Gilles
Et tu as certes raison: refaire tout de zéro est une approche où il faut payer plus ;-) ++jm
Tu dois déja traduire une à une les instructions Basic en Python. Ce n'est pas un effort considérable de traduire le code en "vrai" python ce qui permettra une meilleure lisibilité / maintenabilité si ce script est sensé "vivre" longtemps.
En plus, la boucle d' "exec" ralentit salement l'exécution de la chose.
L'approche est valable pour les petits trucs qui ne nécessitent pas d'être maintenus par la suite. Sinon, bonjour la galère.
Enfin, bon courage à ceux qui devront maintenir ces scripts...
-- Gilles
jean-michel
L'intention est louable... Mais le but est-il réellement atteint ?-)
Je n'aurais pas l'outrecuidance de l'affirmer ! Je crois qu'il y a eu au moins un post de quelqu'un qui cherchait ça, et pour une fois que c'est moi qui rend service sur ce forum, j'en suis très heureux. Et encore, il ne s'agit simplement que d'un forward du news anglais; ma responsabilité dans cette pollution goto-esque n'est donc que très relative :-) En tout cas, on peut dire qu'il y là un débat ! Pour ma part, cela aurait pu m'aider lorsque j'ai fait une migration d'application il y a un an. Python est super pour mouliner des sources abracadabresques, et il me manquait juste ça ! En fait, python est super pour plein d'autres trucs. Je ne vois pas de contexte me concernant pour lequel je ne pourrais pas l'utiliser. Sans goto évidemment !
++jm
L'intention est louable... Mais le but est-il réellement atteint ?-)
Je n'aurais pas l'outrecuidance de l'affirmer ! Je crois qu'il y a eu au
moins un post de quelqu'un qui cherchait ça, et pour une fois que c'est moi
qui rend service sur ce forum, j'en suis très heureux. Et encore, il ne
s'agit simplement que d'un forward du news anglais; ma responsabilité dans
cette pollution goto-esque n'est donc que très relative :-)
En tout cas, on peut dire qu'il y là un débat !
Pour ma part, cela aurait pu m'aider lorsque j'ai fait une migration
d'application il y a un an. Python est super pour mouliner des sources
abracadabresques, et il me manquait juste ça !
En fait, python est super pour plein d'autres trucs. Je ne vois pas de
contexte me concernant pour lequel je ne pourrais pas l'utiliser. Sans goto
évidemment !
L'intention est louable... Mais le but est-il réellement atteint ?-)
Je n'aurais pas l'outrecuidance de l'affirmer ! Je crois qu'il y a eu au moins un post de quelqu'un qui cherchait ça, et pour une fois que c'est moi qui rend service sur ce forum, j'en suis très heureux. Et encore, il ne s'agit simplement que d'un forward du news anglais; ma responsabilité dans cette pollution goto-esque n'est donc que très relative :-) En tout cas, on peut dire qu'il y là un débat ! Pour ma part, cela aurait pu m'aider lorsque j'ai fait une migration d'application il y a un an. Python est super pour mouliner des sources abracadabresques, et il me manquait juste ça ! En fait, python est super pour plein d'autres trucs. Je ne vois pas de contexte me concernant pour lequel je ne pourrais pas l'utiliser. Sans goto évidemment !
++jm
jean-michel
Désolé, je ne voulais pas vexer ! Vexer est un grand mot; j'ai réagi un peu vite à un propos un peu ironique;
j'en suis désolé aussi. (Tout le monde est désolé, et tout le monde va bien :-)
Tu dois déja traduire une à une les instructions Basic en Python. Ce n'est pas un effort considérable de traduire le code en "vrai" python ce qui permettra une meilleure lisibilité / maintenabilité si ce script est sensé "vivre" longtemps. Tu as raison 100% sur le fond. Mais si l'appli est très grosse, tout
simplement, tu ne peux pas.
En plus, la boucle d' "exec" ralentit salement l'exécution de la chose. Pas grave. A cette époque, les machines tournaient à 4.77 mégahertz, c'est à
dire + de 1000 fois moins vite qu'aujourd'hui. Même si on rame un peu plus que la normale, ça sera encore beaucoup plus rapide qu'il y a 20 ans.
L'approche est valable pour les petits trucs qui ne nécessitent pas d'être maintenus par la suite. Sinon, bonjour la galère.
Enfin, bon courage à ceux qui devront maintenir ces scripts... Sincèrement merci...
Désolé, je ne voulais pas vexer !
Vexer est un grand mot; j'ai réagi un peu vite à un propos un peu ironique;
j'en suis désolé aussi. (Tout le monde est désolé, et tout le monde va bien
:-)
Tu dois déja traduire une à une les instructions Basic en Python. Ce
n'est pas un effort considérable de traduire le code en "vrai" python ce
qui permettra une meilleure lisibilité / maintenabilité si ce script est
sensé "vivre" longtemps.
Tu as raison 100% sur le fond. Mais si l'appli est très grosse, tout
simplement, tu ne peux pas.
En plus, la boucle d' "exec" ralentit salement l'exécution de la chose.
Pas grave. A cette époque, les machines tournaient à 4.77 mégahertz, c'est à
dire + de 1000 fois moins vite qu'aujourd'hui. Même si on rame un peu plus
que la normale, ça sera encore beaucoup plus rapide qu'il y a 20 ans.
L'approche est valable pour les petits trucs qui ne nécessitent pas
d'être maintenus par la suite. Sinon, bonjour la galère.
Enfin, bon courage à ceux qui devront maintenir ces scripts...
Sincèrement merci...
Désolé, je ne voulais pas vexer ! Vexer est un grand mot; j'ai réagi un peu vite à un propos un peu ironique;
j'en suis désolé aussi. (Tout le monde est désolé, et tout le monde va bien :-)
Tu dois déja traduire une à une les instructions Basic en Python. Ce n'est pas un effort considérable de traduire le code en "vrai" python ce qui permettra une meilleure lisibilité / maintenabilité si ce script est sensé "vivre" longtemps. Tu as raison 100% sur le fond. Mais si l'appli est très grosse, tout
simplement, tu ne peux pas.
En plus, la boucle d' "exec" ralentit salement l'exécution de la chose. Pas grave. A cette époque, les machines tournaient à 4.77 mégahertz, c'est à
dire + de 1000 fois moins vite qu'aujourd'hui. Même si on rame un peu plus que la normale, ça sera encore beaucoup plus rapide qu'il y a 20 ans.
L'approche est valable pour les petits trucs qui ne nécessitent pas d'être maintenus par la suite. Sinon, bonjour la galère.
Enfin, bon courage à ceux qui devront maintenir ces scripts... Sincèrement merci...
bruno modulix
jean-michel wrote:
L'intention est louable... Mais le but est-il réellement atteint ?-)
Je n'aurais pas l'outrecuidance de l'affirmer ! Je crois qu'il y a eu au
moins un post de quelqu'un qui cherchait ça,
C'est bien ce que je voulais dire : es-tu bien sûr de l'avoir aidé ?-) (bon, cherche pas, je trolle...)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
jean-michel wrote:
L'intention est louable... Mais le but est-il réellement atteint ?-)
Je n'aurais pas l'outrecuidance de l'affirmer ! Je crois qu'il y a eu au
moins un post de quelqu'un qui cherchait ça,
C'est bien ce que je voulais dire : es-tu bien sûr de l'avoir aidé ?-)
(bon, cherche pas, je trolle...)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"