Incrémenter le nom d'une variable

Incrémenter le nom d'une variable - Python - Programmation

Marsh Posté le 18-07-2004 à 23:35:32    

Bonjour,
 
J'aimerais savoir comment faire pour incrémenter le nom d'une variable en python. Ce n'est pas la valeur de la variable que je veux incrémenter.
 
exemple:
 
for truc in bidul:
    ma_variable1=truc
 
et qu'après cela devienne ma_variable2, ma_variable3, etc....
 
merci

Reply

Marsh Posté le 18-07-2004 à 23:35:32   

Reply

Marsh Posté le 18-07-2004 à 23:40:09    

non, utilise un tableau


Message édité par schnapsmann le 18-07-2004 à 23:40:43

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 18-07-2004 à 23:47:43    

abruti :o
 
 
et utilise les list comprehension le plus possible

Reply

Marsh Posté le 19-07-2004 à 00:23:02    

Merci pour la rapidité de réponse, et je débute en python donc sa fait toujours plaisir de se faire traiter d'abruti !

Reply

Marsh Posté le 19-07-2004 à 07:41:56    

ça n'a rien à voir avec python. la notion de séquence est fondamentale. si tu ne l'a pas, tu peux retourner page 2

Reply

Marsh Posté le 19-07-2004 à 09:15:59    

UFC a écrit :

Merci pour la rapidité de réponse, et je débute en python donc sa fait toujours plaisir de se faire traiter d'abruti !


 
Faut pas te formaliser, y'a plein de gens qui ont été élévés par des singes en haut d'une montagne ici. Mais bon parfois ils donnent des réponses compréhensibles.

Reply

Marsh Posté le 17-04-2013 à 18:26:40    

Comme je suis moi aussi un gros abruti, je relance la question avec un cas concret :
J'utilise python dans Maya pour regler la rotation des phalanges des doigts de la main d'un personnage 3D.
j'ai ces variables, qui correspondent a la valeur de la rotation des phalanges lorsque le poing est ferme. :
 
IndexP2rotZ = -80
IndexP3rotZ = -90
IndexP4rotZ = -90
 
MajeurP2rotZ = -85
MajeurP3rotZ = -80
MajeurP4rotZ = -90
 
AnnulaireP2rotZ = -82
AnnulaireP3rotZ = -85
AnnulaireP4rotZ = -85
 
AuriculaireP2rotZ = -75
AuriculaireP3rotZ = -90
AuriculaireP4rotZ = -80
 
j'ai ensuite une fonction "editValue", dont le contenu n'a pas d'interet ici, mais qui fait appele a ces variables :
 
editValue( "IndexP2_rotateZ", IndexP2rotZ )
 
// IndexP2_rotateZ est le nom du noeud dans Maya qui gere la rotation de ma phalange.
 
pour le moment, j'ai ecrit ca :
 
editValue( "IndexP2_rotateZ", IndexP2rotZ )
editValue( "IndexP3_rotateZ", IndexP3rotZ )
editValue( "IndexP4_rotateZ", IndexP4rotZ )
 
editValue( "MajeurP2_rotateZ", MajeurP2rotZ )
editValue( "MajeurP3_rotateZ", MajeurP3rotZ )
editValue( "MajeurP4_rotateZ", MajeurP4rotZ )
 
etc...
 
 
Ce qui n'a absolument aucun sens.
3 phalanges par doigts, 4 doigts par main (je ne traite pas le pouce), 2 mains par personnage, 24 lignes de code grotesques.
Je veux pouvoir ecrire :
 
for doigt in ["Index", "Majeur", "Annulaire", "Auriculaire"] :
    for phalange in range( 1, 4 ) :
        editValue( doigt+"P"+phalange+"_rotateZ", doigtPphalangerotZ )
 
 
Ce qui aurait un peu plus de classe...
J'ai beau essayer de comprendre comment fonctionnent les dictionnaires, je ne vois comment ca peut m'aider dans ce cas precis...
Merci.

Reply

Marsh Posté le 17-04-2013 à 19:49:55    

C'est pas joli joli, mais si tu fais une chaine qui correspond à ton nom de variable, tu peux juste faire un eval() et tu obtiendras ce que tu veux. :o


---------------
last.fm
Reply

Marsh Posté le 18-04-2013 à 10:50:43    

Ok, merci, je vais voir si j'y arrive tout seul :)
je ne comprends pas pourquoi ce n'est pas joli joli, moi je trouve ca plutot elegant au contraire, de passer dans des boucles plutot que de taper des lignes et lignes, mais j'ai l'impression que la presence de variable dans le nom d'une variable est un sujet delicat, partout ou j'ai cherche, j'ai rencontre les memes reponses indignees, voire insultantes.
Pourquoi tant de passion ?!

Reply

Marsh Posté le 18-04-2013 à 11:00:56    

Je donnerais pas de réponse pour python, qui est un langage que je n'aime pas pour des raisons syntaxiques, mais pour faire ça en perl (et il y a surement l'analogue en python), je passerais par un hash.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 18-04-2013 à 11:00:56   

Reply

Marsh Posté le 18-04-2013 à 11:06:58    

francoisboudaille a écrit :

Ok, merci, je vais voir si j'y arrive tout seul :)
je ne comprends pas pourquoi ce n'est pas joli joli, moi je trouve ca plutot elegant au contraire, de passer dans des boucles plutot que de taper des lignes et lignes, mais j'ai l'impression que la presence de variable dans le nom d'une variable est un sujet delicat, partout ou j'ai cherche, j'ai rencontre les memes reponses indignees, voire insultantes.
Pourquoi tant de passion ?!

 

Parce que techniquement, tu peux sans doute mettre ta donnée initiale en forme correctement et utiliser des tableaux ou dictionnaires et ne pas avoir à nommer dynamiquement ta variable.

 

Edit : Exemple :

Code :
  1. setupDesDoigts = { "Index" : [ -80, -90, -90 ], "Majeur" : [ -85, -80, -90 ], "Annulaire" : [ -82, -85, -85 ], "Auriculaire" : [ -75, -90, -80 ] }
 

Si tu pars sur ca, t'as plus besoin de nommer quoi que ce soit, et ta boucle se contente d'aller chercher la bonne configuration dans cette structure. Accessoirement, cette structure est aussi plus facile à maintenir si tu veux ajouter le support du pouce.


Message édité par theshockwave le 18-04-2013 à 11:13:01

---------------
last.fm
Reply

Marsh Posté le 18-04-2013 à 11:12:45    

Oui, j'ai vu que tout le monde conseillait plutot l'utilisation de dictionnaires, mais je debute dans Python, et meme si je comprends comment fonctionnent les dictionnaires, je n'arrive pas a voir comment je pourrais les utiliser dans ce cas precis.
J'ai bosse dix ans avec un langage proprietaire et c'est dur de se convertir...

Reply

Marsh Posté le 18-04-2013 à 11:13:56    

Bah voilà, je t'ai donné un exemple en éditant mon message pendant que tu tapais ta réponse :D


---------------
last.fm
Reply

Marsh Posté le 18-04-2013 à 11:15:42    

Argh, merci !!!

Reply

Marsh Posté le 14-06-2016 à 15:38:02    

UFC a écrit :

Bonjour,
 
J'aimerais savoir comment faire pour incrémenter le nom d'une variable en python. Ce n'est pas la valeur de la variable que je veux incrémenter.
 
exemple:
 
for truc in bidul:
    ma_variable1=truc
 
et qu'après cela devienne ma_variable2, ma_variable3, etc....
 
merci


 
Bonjour,
 
Si quelqu'un d'autre cherche la solution, le plus simple est de passer par ces lignes de code:
 
for i in range(1,4)
      variable+str(i)=i
 
On ne peut réaliser des opérations mathématiques que sur des nombres, or les noms des variables sont des chaînes de caractères, il faut donc réaliser un changement de type ( str(i) ) sur la variable utilisée.
 
J'espère avoir été utile ;-)

Reply

Marsh Posté le 15-06-2016 à 09:31:30    

matth0u a écrit :

 

Bonjour,

 

Si quelqu'un d'autre cherche la solution, le plus simple est de passer par ces lignes de code:

 

for i in range(1,4)
      variable+str(i)=i

 

On ne peut réaliser des opérations mathématiques que sur des nombres, or les noms des variables sont des chaînes de caractères, il faut donc réaliser un changement de type ( str(i) ) sur la variable utilisée.

 

J'espère avoir été utile ;-)


Non, non seulement tu remontes un topic qui a 3 ans mais ton code n'a aucun sens, il est tellement foireux qu'il contient une erreur de syntaxe par ligne, et en python les noms de variables sont des noms de variables pas "des chaînes de caractères".


Message édité par masklinn le 15-06-2016 à 09:32:40

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed