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 :

insérer une variable dans le nom d'une variable


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 61
    Points : 40
    Points
    40
    Par défaut insérer une variable dans le nom d'une variable
    Bonjour

    Je voudrais que quand je rentre 3:

    python me demande "nom du point 1"
    qu'il affecte la valeur que je lui donne à la variable p1
    python me demande "nom du point 2"
    qu'il affecte la valeur que je lui donne à la variable p2
    python me demande "nom du point 3"
    qu'il affecte la valeur que je lui donne à la variable p3

    Avec quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    n=input("n")
    while n>0:
        n1=1
        p,n1=input("nom du point",n1)
        n1=n1+1
        n=n-1
    Comment faire s'il vous plait?

    Merci

  2. #2
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Citation Envoyé par leninelenine Voir le message
    Comment faire s'il vous plait?
    Faut pas le faire !

    Comment utiliser tes variables p1, p2 et p3 (dans l'exemple) par la suite avec du code écrit AVANT de savoir que tu en as trois ?
    Utilise une liste et stocke tes N points dedans !
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par leninelenine Voir le message
    Comment faire s'il vous plait?
    Utiliser un tableau !!!
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab=[input("nom du point %d" % (i+1)) for i in xrange(input("n"))]
    print tab

    Le même en plus explicite
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    n=input("n")
    for i in xrange(n):
        tab.append(input("nom du point %d" % (i+1)))
    print tab
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Ou encore plus clair avec un dictionnaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Point = {}
    for i in range(1,n)
    point[i] = input("Saisissez la valeur")
    print point[i]#pour vérif car j'ai pas testé

  5. #5
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Citation Envoyé par olivier.breheret Voir le message
    Ou encore plus clair avec un dictionnaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Point = {}
    for i in range(1,n)
    point[i] = input("Saisissez la valeur")
    print point[i]#pour vérif car j'ai pas testé
    Passer par un dictionnaire n'est NI plus clair NI plus simple. Coller des clés qui sont des valeurs entières et continues (de 1 à n-1), bof...

    Attention aussi, quand tu donnes des conseils : indentations et ':' à la fin du 'for i in range(1, n):.
    Essaye ton code ... (et, là, tu te feras jeter)

    De plus, range(1,n) c'est n-1 valeurs.

    Enfin Point, avec une majuscule, pas terrible pour un nom de variable (voir la PEP 8)
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Désolé plxpy!

    j'ai tapé à l'arrache et c'est vrai que j'ai des problèmes de synthaxe (désolé pour les puristes...)
    Mais n'ayant que 2 semaines de python derrière moi, et ayant réglé un pb de ce genre (qui est si facile à gérer sous d'autres langages) j'étais assez fier de faire partager ma solution à quelqu'un dans la peine.
    Quant aux majuscules, je ne suis pas d'accord avec toi, je penses que ça améliore énormément la lisibilité sur des scripts complexes.
    En attendant, je vais essayer de suivre tes conseils

    O.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Parce-que xrange(n) c'est n valeurs?

  8. #8
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Citation Envoyé par olivier.breheret Voir le message
    Quant aux majuscules, je ne suis pas d'accord avec toi
    Ce n'est pas qu'avec moi, mais avec la communauté Python. Après, c'est toi qui vois.

    EDIT : suis ... tes messages. Tu as écrit range(1, n) et pas xrange(n). Un peu de rigueur ...
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    bah justement la question que je te pose c'est si xrange va jusqu'à n? (et non n-1)
    un peu d'indulgence avec les débutants!!
    que ce soit pour le code ou pour la philosophie de la communauté...

  10. #10
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Use, et abuse du help !

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    >>> help(range)
    Help on built-in function range in module __builtin__:
     
    range(...)
        range(stop) -> list of integers
        range(start, stop[, step]) -> list of integers
     
        Return a list containing an arithmetic progression of integers.
        range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
        When step is given, it specifies the increment (or decrement).
        For example, range(4) returns [0, 1, 2, 3].  The end point is omitted!
        These are exactly the valid indices for a list of 4 elements.
    >>> help(xrange)
    Help on class xrange in module __builtin__:
     
    class xrange(object)
     |  xrange(stop) -> xrange object
     |  xrange(start, stop[, step]) -> xrange object
     |  
     |  Like range(), but instead of returning a list, returns an object that
     |  generates the numbers in the range on demand.  For looping, this is 
     |  slightly faster than range() and more memory efficient.
     |  
     |  Methods defined here:
     |  
     |  __getattribute__(...)
     |      x.__getattribute__('name') <==> x.name
     |  
     |  __getitem__(...)
     |      x.__getitem__(y) <==> x[y]
     |  
     |  __iter__(...)
     |      x.__iter__() <==> iter(x)
     |  
     |  __len__(...)
     |      x.__len__() <==> len(x)
     |  
     |  __reduce__(...)
     |  
     |  __repr__(...)
     |      x.__repr__() <==> repr(x)
     |  
     |  __reversed__(...)
     |      Returns a reverse iterator.
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  __new__ = <built-in method __new__ of type object>
     |      T.__new__(S, ...) -> a new object with type S, a subtype of T
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2015
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Ok Merci jlxpy!
    J'ai pas encore les réflexes, j'avais vu que c'était plus rapide mais je ne savais pas pour quoi!
    Maintenant je sais!
    la bibli est ma seule source et c'est pas toujours top.
    merci du conseil.
    L'important est-ce que le pb est initial réglé?
    (j'ai eu un prof d'automatisme/robotique qui disait "l'important c'est que ça marche comme prévu!)
    @+

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par olivier.breheret Voir le message
    L'important est-ce que le pb est initial réglé?
    Ben malheureusement non. Mais ce n'est pas de ta faute...

    Citation Envoyé par olivier.breheret Voir le message
    (j'ai eu un prof d'automatisme/robotique qui disait "l'important c'est que ça marche comme prévu!)
    La robotique est une chose, la programmation générale en est une autre. Bien souvent "ça marche" n'est pas suffisant. Il faut rajouter aussi "ça peut facilement évoluer"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/10/2013, 12h01
  2. [EG] Macro variable dans le nom d'une table
    Par asirier dans le forum Outils BI
    Réponses: 2
    Dernier message: 02/07/2013, 15h44
  3. Macro variable dans le nom d'une macro
    Par foxrol dans le forum Macro
    Réponses: 3
    Dernier message: 28/02/2012, 14h23
  4. Réponses: 3
    Dernier message: 29/11/2011, 16h34
  5. [AC-2003] Variables dans le nom d'une image
    Par Tatas dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/10/2009, 20h25

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