IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

incrementer le nom d'une variable


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 40
    Par défaut incrementer le nom d'une variable
    Bonjour, je cherche comment faire pour incrementer le nom d'une variable:

    Par exemple ma variable de base est "prenom" et je veux selon une variable i récuperer les valeurs sous la forme;


    i=1
    prenom1 = jean
    i=2
    prenom2 = stephane
    ...
    i=27
    prenom27 = robert

    comment reussir a creer ces noms de variables prenom1,prenom2,prenom27 au fur a mesure que i s'incremente ?

    Merci

  2. #2
    Membre émérite
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Par défaut
    J'ai deja essayer... J'ai jamais reussi.

    Peut etre que l'usage d'un dictionnaire ou tableau serait plus judicieux.

    un truc du genre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    a=input("Entre un nom : \n")
    i=0
    Tableau=[]
    Tableau.append({'prenom'+str(i):a})
    while a <>"":
        a=input("Entre un nom : \n")
        i=i+1
        Tableau.append({'prenom'+str(i):a})
     
    print "Fait"
    Apres tu n'as plus qu'a parcourir ta liste de dictionnaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Entre un nom : 
    "Marcel"
    Entre un nom : 
    "Jules"
    Entre un nom : 
    "Josette"
    Entre un nom : 
    "Eliane"
    Entre un nom : 
    ""
    Fait
    >>> Tableau
    [{'prenom0': 'Marcel'},{'prenom1': 'Jules'}, {'prenom2': 'Josette'}, {'prenom3': 'Eliane'}, {'prenom4': ''}]
    >>> a=Tableau[1]
    >>> a
    {'prenom1': 'Jules'}
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  3. #3
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    http://python.developpez.com/faq/?pa...es#GenStrDecla
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> tab = ['jean', 'stephane', 'robert']
    >>> for i in range(len(tab)):
    	exec("prenom"+str(i)+"='"+tab[i]+"'")
     
     
    >>> prenom0
    'jean'
    >>> prenom1
    'stephane'

  4. #4
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par Guigui_
    http://python.developpez.com/faq/?pa...es#GenStrDecla
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> tab = ['jean', 'stephane', 'robert']
    >>> for i in range(len(tab)):
    	exec("prenom"+str(i)+"='"+tab[i]+"'")
     
     
    >>> prenom0
    'jean'
    >>> prenom1
    'stephane'
    J'ajoute que souvent ça semble ne pas fonctionner, quand on l'utilise dans une fonction. Et j'imagine que ce n'est pas très utilisé en console.
    J'ai passé pas mal de temps avant de trouver grâce à Google. Il faut quand on a l'erreur
    SyntaxError: unqualified exec is not allowed in function 'test' it contains a nested function with free variables
    et peut-être systématiquement dans une fonction, écrire par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec("prenom"+str(i)+"='"+tab[i]+"'") in locals(), globals()
    http://nixforums.org/about18028.html
    http://www.python.org/doc/2.4/ref/dynamic-features.html

    Pierre

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. [Tableaux] Concaténation du nom d'une variable
    Par nebule dans le forum Langage
    Réponses: 11
    Dernier message: 18/05/2006, 11h30
  3. Réponses: 37
    Dernier message: 02/03/2006, 01h58
  4. Incrémenter le NOM d'une variable
    Par Mors_Ubyte dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2006, 18h47
  5. [Reflection] Connaître le nom d'une variable ...
    Par dahwoud dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/08/2005, 14h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo