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 :

ValueError : too many values to unpack [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Canada

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut ValueError : too many values to unpack
    Bonjour ami pythoniens,
    J'ai débuté en Python il n'y a pas très longtemps encore. Je viens de tenter de faire un générateur de profils mais un bug agaçant m'en empêche...
    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
    print "____________________________________________________"
    print " Generateur de Profils Textes                      / "
    print "\n"
     
    sexe = "inconnu"
    age = -1
    while sexe != "homme" and sexe != "femme" :   
        sexe = raw_input("Quel est votre sexe ? homme/femme ").lower().strip()
        if sexe != "homme" and sexe != "femme" :
            print "Hey, arrettez de faire le coquin ! "
    if sexe == "homme" :
        nom = raw_input("Bonjour cher monsieur, veuillez entrer votre nom silvousplait. ").title()
    if sexe == "femme" :
        nom = raw_input("Bonjour madame, veuillez entrer votre nom silvousplait. ").title()
    with open(str(nom)+'.txt', "w") as info:
        if sexe == "homme" :
            print "Ok."
        if sexe == "femme" :
            print "Ouah,",nom,"... Quel beau nom !..."
     
        while age < 0 :
            if sexe == "femme" :
                print "Cherie, Desole, mais je suis oblige de te poser cette question... "
            age = raw_input("Quel Age avez vous ? ")
        travail = raw_input("Et chez qui travaillez vous ? ")
        description = raw_input("Comment vous decrivez vous ? ")
     
        typage = {"sexe":sexe,"nom":nom,"age":age,"travail":travail,"description":description}
        for b,i in typage.values() :
            if len(i) == 0 :
                i = "Inconnu"
            info.write(str(b)+" : "+str(i)+"\n")
     
        raw_input("Parfait, c'est note.Merci pour votre contribution, "+str(nom)+" ! :) ")
    En effet, cette partie est défectueuse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        typage = {"sexe":sexe,"nom":nom,"age":age,"travail":travail,"description":description}
        for b,i in typage.values() :
            if len(i) == 0 :
                i = "Inconnu"
            info.write(str(b)+" : "+str(i)+"\n")
    Pourtant, il ne me semble pas avoir commis d'erreurs
    Quelqu'un aurais-t'il l'obligeance de me guider ?
    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Ce n'est pas values() mais items()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    >>> typage = {"sexe":"h","nom":"untel","age":20,"travail":"","description":"foo"}
    >>> for key, value in typage.items():
    ...     print(key, value)
    ... 
    age 20
    sexe h
    nom untel
    travail 
    description foo
    Mais si c'est uniquement pour remplacer les chaînes vides tu peux le faire directement à l'input
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>> t = input("Question: ") or "Nihil"
    Question: foo
    >>> t
    'foo'
    >>> t = input("Question: ") or "Nihil"
    Question: 
    >>> t
    'Nihil'

  3. #3
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Canada

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Par défaut
    Merci pour ton aide, cher ami

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

Discussions similaires

  1. [Python 2.X] too many values to unpack
    Par Sh0rtY dans le forum Général Python
    Réponses: 5
    Dernier message: 07/07/2014, 19h22
  2. Réponses: 11
    Dernier message: 09/07/2013, 09h57
  3. Réponses: 6
    Dernier message: 16/04/2010, 15h02
  4. [DDL] Too many versions
    Par TMuet dans le forum Débuter
    Réponses: 4
    Dernier message: 13/01/2004, 09h23
  5. Pgsql : erreur de connexion 'too many clients ...'
    Par petitmoosse dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/08/2003, 14h03

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