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 :

Valeur d'une variable composée


Sujet :

Python

Vue hybride

FlyByck Valeur d'une variable composée 04/05/2012, 15h13
wiztricks Salut, En Python les noms... 04/05/2012, 15h37
FlyByck Merci pour votre réponse dont... 04/05/2012, 19h45
wiztricks Salut, Mon propos... 05/05/2012, 16h56
FlyByck Salut Ah! Cela me plait ... 05/05/2012, 20h05
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 120
    Par défaut Valeur d'une variable composée
    Bonjour

    Je cherche à composer le nom d'une variable qui devra ensuite être remplacé par sa valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #constante
    CST_0 = [0x01]
    CST_1 = [0x02]
    CST_2 = [0x03]
     
    for i in range(3):
      variable = "CST_"+str(i)
      print variable
    Ceci me retourne le string CST_0, CST_1, CST_2
    Est=il possible d'avoir en retour la valeur de ma constante
    [0x01],[0x02],[0x03]

    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Salut,

    En Python les noms de variables sont généralement définies dans le dictionnaire globals() (qui est local au module). Donc...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #constante
    CST_0 = [0x01]
    CST_1 = [0x02]
    CST_2 = [0x03]
     
    for i in range(3):
      variable = globals().get("CST_%d" % i)
      print variable
    Mais, en écrivant cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CST = range(3)
    for i in range(len(CST)):
        print CST[i]
    N'est-il pas plus simple/naturel d'utiliser une liste de valeurs accessibles à travers une variable CST que de créer un paquet de variables suivant un "template" CST_%d qui ne seront que des clés dans une map...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 120
    Par défaut
    Merci pour votre réponse dont votre première solution correspond à ma recherche
    La deuxième proposition ne convient pas car le nom composé des variables CST_X données en exemple ne sont pas 0,1,2,3,... mais des valeurs construites dynamiquement pas nécessairement séquentiel

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 705
    Par défaut
    Salut,

    Citation Envoyé par FlyByck Voir le message
    Merci pour votre réponse dont votre première solution correspond à ma recherche
    La deuxième proposition ne convient pas car le nom composé des variables CST_X données en exemple ne sont pas 0,1,2,3,... mais des valeurs construites dynamiquement pas nécessairement séquentiel
    Mon propos était d'éviter d'utiliser le dictionnaire "globals()" d'un module!
    Si la structure de liste n'est pas appropriée, créer CST comme dictionnaire permet d'avoir le même type d'accès que dans 'globals':
    De façon condensée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CST = {}
    CST[0] = 0x01
    CST[1] = 0x02
    CST[2] = 0x03
    for x in range(3):
         print CST.get(x)
    De façon plus lourde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CST = {}
    CST['CST_%d' % 0] = 0x01
    CST['CST_%d' % 1] = 0x02
    CST['CST_%d' % 2] = 0x03
    for x in range(3):
         print CST.get('CST_%d' % x)
    Notez aussi que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #constante
    CST_0 = [0x01]
    CST_1 = [0x02]
    CST_2 = [0x03]
    associent à CST_x non pas des constantes mais des listes contenant un entier.
    Cordialement,
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 120
    Par défaut
    Salut

    Ah! Cela me plait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CST = {}
    CST[0] = 0x01
    CST[1] = 0x02
    CST[2] = 0x03
    for x in range(3):
         print CST.get(x)
    Bien sur #constante est un abus de langage

    Merci

  6. #6
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par défaut
    Bonjour,

    Pourquoi get() ?
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12345678910
    >>> CST_0 = [0x01]
    >>> CST_1 = [0x02]
    >>> CST_2 = [0x03]
    >>> for i in range(3):
    ...     variable = globals()["CST_%d" % i]
    ...     print(variable)
    ... 
    [1]
    [2]
    [3]
    (Juste pour l'exemple, l'utilisation de globals()/locals() doit être bien assimilée pour les utiliser)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    12
    >>> type(globals())
    <class 'dict'>
    >>> CST = {} >>> CST[0] = 0x01 >>> CST[1] = 0x02 >>> CST[2] = 0x03 >>> for x in range(3): ... print(CST[x])
    Le get() des dico n'a d’intérêt que dans le cadre dic.get(value, other)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> CST.get(4, None)
    >>> CST.get(4, 5)
    5
    @+

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Réponses: 2
    Dernier message: 16/08/2005, 09h43
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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