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 :

Python Variable et Scope [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut Python Variable et Scope
    Bonjour,

    J'ai un problème. En effet je voudrais afficher la valeur des variable ci-dessous définies en utilisant une boucle for. Mais j'ai un message d'erreur et je ne sais pas comment m'en sortir.

    je voudrais en sortie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    172.31.1.0/24
    172.31.2.0/24
    172.31.101.0/24
    172.31.102.0/24
    Merci pour votre aide.

    Code python : 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
     
    public_cidr_web1a = '172.31.1.0/24'
    public_cidr_web1b = '172.31.2.0/24'
    public_cidr_app1a = '172.31.101.0/24'
    public_cidr_app1b = '172.31.102.0/24'
     
    for value in ['web1a', 'web1b', 'app1a','app1b']:
        print(public_cidr_value)
     
     
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-57-9692cf3d2a3a> in <module>
          5 
          6 for value in ['web1a', 'web1b', 'app1a','app1b']:
    ----> 7     print(public_cidr_value)
     
    NameError: name 'public_cidr_value' is not defined
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    Bonjour,

    Dans votre code que vous nous montrez, il y a plusieurs choses qui ne vont pas.
    Dans la boucle vous essayez de créer une variable dynamiquement à partir de chaine de caractère, c'est ce qui provoque votre erreur, qui que public_cidr_value n'a jamais été créée.
    Votre boucle ne peut au mieux qu'afficher le contenu de ['web1a', 'web1b', 'app1a','app1b'].

    Vous avez plusieurs solutions pour faire ce vous souhaitez.
    La première est de créer une liste qui contient les variables initialisées, puis de boucler sur cette liste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public_cidr_web1a = '172.31.1.0/24'
        public_cidr_web1b = '172.31.2.0/24'
        public_cidr_app1a = '172.31.101.0/24'
        public_cidr_app1b = '172.31.102.0/24'
     
        l = [public_cidr_web1a, public_cidr_web1b, public_cidr_app1a, public_cidr_app1b]
        for value in l:
            print(value)
    La seconde qui se rapprocherait plus de ce vous souhaitez faire, et de créer un dictionnaire avec les valeurs que vous voulez:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public_cidr = {
            "web1a": "172.31.1.0/24",
            "web1b": "172.31.2.0/24",
            "app1a": "172.31.101.0/24",
            "app1b": "172.31.102.0/24",
        }
     
        for value in ['web1a', 'web1b', 'app1a','app1b']:
            print(public_cidr[value])
    Mais dans ce cas pas besoin de passer par une liste contenant les clés du dictionnaire, il est possible d'itérer sur le dictionnaire lui-même.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 221
    Par défaut
    Merci Ce serait plus simple avec les dictionnaires.

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

Discussions similaires

  1. Syntaxe python scope variable
    Par olivier252 dans le forum Général Python
    Réponses: 4
    Dernier message: 19/11/2019, 10h06
  2. Script python variable provenant d'un fichier
    Par PythonNovices dans le forum Général Python
    Réponses: 1
    Dernier message: 13/05/2015, 09h30
  3. [JSTL] Modifier la valeur d'une variable de scope
    Par Miimmmii dans le forum Taglibs
    Réponses: 2
    Dernier message: 04/02/2014, 08h44
  4. Passer une variable python en javascript?
    Par Sayrus dans le forum Zope
    Réponses: 6
    Dernier message: 19/06/2006, 10h29
  5. variable de classe en Python
    Par Thierry Chappuis dans le forum Général Python
    Réponses: 5
    Dernier message: 09/02/2006, 22h06

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