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 :

Débutant, valeur d'une variable depuis une autre


Sujet :

Python

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut Débutant, valeur d'une variable depuis une autre
    Bonjour, à tous!

    Je sollicite votre aide car je débute en python, et je bloque sur un point. Plutôt qu'un long discours qui sera aussi peu clair que mon titre je vous présente en code le principe qui me coince :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    yp1 = 15
    yp2 = 20
     
    for i in range(1,3):
        yp="yp"+str(i)
        print yp
    Quand je lance ce code il m'affiche "yp1" puis "yp2", or je voudrais qu'il m'affiche "15" puis "20". Je suppose qu'il faut transformer le "string" ypi en la valeur de ypi mais je ne sais pas comment faire...
    Dans les FAQ j'ai vu "Comment déclarer une variable à partir d'une chaine de caractères ?" mais je n'ai pas compris...

    J'espère que vous pourrez m'aider. Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    Alors avant toute chose utilise les balises permettant d'indiquer ton code

    ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    yp1=15
    yp2=20
     
    print yp1 # affiche 15
    print yp2 # affiche 20

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Utilise: print eval(yp)

    La fonction eval() calcule l'expression passée sous forme de chaine de caractères. Comme yp est une variable, elle est remplacée par sa valeur qui est une chaine, et celle-ci est calculée.

    Autre exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    x = "2*3"
    print eval(x)
    6
    print eval("2*3")
    6
    Tyrtamos

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 049
    Par défaut
    Voila seulement que je comprend ce que tu veux faire

    La solution est celle de Tyrtamos

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    yp1=15
    yp2=20
    for i in range(1, 3):
        yp="yp"+str(i)
        print eval(yp)

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut
    Woah merci pour la rapidité! J'ai édité mon premier post pour rajouter la balise de code.

    C'est exactement ce que je voulais, merci Tyrtamos et fred1599.

    J'ai une question subsidiare : si je rajoute une deuxième variable dans ma chaine comme ça (avec la balise s'il vous plaît )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    yp1=15
    yp2=20
    xp1=40
    xp2=50
    for i in range(1, 3):
        yp="yp"+str(i)
        xp="xp"+str(i)
        print eval(yp)
        print eval(xp)
    j'ai le message d'erreur "invalid syntax" qui renvoie sur xp... On ne peut pas mettre plusieurs variables à définir dans une boucle for?

  6. #6
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par fabrice_84 Voir le message
    j'ai le message d'erreur "invalid syntax" qui renvoie sur xp... On ne peut pas mettre plusieurs variables à définir dans une boucle for?
    Chez moi, ton code fonctionne, et affiche:

    15
    40
    20
    50

    ???

    Tyrtamos

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut
    Alors là je pige pas... J'ai refais un copier coller de mon code depuis IE et là ça marche, alors que quand je tappe la même chose dans l'éditeur ça bug!

    ça peut venir du fait que j'utilise notepad++?

  8. #8
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par fabrice_84 Voir le message
    ça peut venir du fait que j'utilise notepad++?
    Je ne sais pas: je ne le connais pas.

    Essaye d'utiliser idle (livré avec Python).

    Tyrtamos

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 139
    Par défaut
    Ca sent l'erreur de tabulation a plein nez ton affaire

    Remplace les tabulations par 4 espaces dans ton editeur et tu ne devrai plus avoir de probleme

    Sous notepad ++:
    (Paramétrage -> reference -> Onglet Divers, Paramétrage de tab cohe "Remplacer par un espace")

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut
    Oui je pense que ça doit venir d'une mauvaise interprétation des espaces...

    En tout cas merci pour votre aide et votre efficacité, tout fonctionne maintenant!

    A bientôt.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 139
    Par défaut
    tout fonctionne maintenant!
    Alors on coche "Résolu"...

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 5
    Par défaut
    Voilà qui est fait!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Affecter une variable d'une classe C# à une variable Javascript
    Par SultanGeek dans le forum C#
    Réponses: 0
    Dernier message: 20/06/2015, 20h42
  2. Réponses: 6
    Dernier message: 16/06/2011, 12h45
  3. Modifier une variable d'une classe depuis une autre classe
    Par Kezado dans le forum Général Java
    Réponses: 8
    Dernier message: 23/09/2010, 14h52
  4. transmission des valeurs d'une variable d'une fonction a une autre
    Par Invité dans le forum GTK+ avec C & C++
    Réponses: 7
    Dernier message: 22/07/2009, 23h05
  5. Réponses: 0
    Dernier message: 21/01/2009, 13h52

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