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 :

Problème input nom utilisateur


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Points : 51
    Points
    51
    Par défaut Problème input nom utilisateur
    Bonjour,

    Je me permets de vous contacter car j'ai un petit problème sur du code python ( je suis débutant sur cette techno). Il s'agit d'une erreur toute conne que je n'arrive pas à résoudre.

    Je me suis créer un "input" pour pouvoir entrer le nom de l'utilisateur ( ex lolo ) qui le récupère par la suite pour pouvoir lancer le jeu, mais il me retourne une erreur de ce type : name 'lolo' is not defined.

    Voici ma fonction recupérer nom utilisateur

    fonctions.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def recup_nom_utilisateur():
        nom_utilisateur = input("Tapez votre nom: ")
        nom_utilisateur = nom_utilisateur.islower()
        print(nom_utilisateur)
        if not nom_utilisateur.isalnum() or len(nom_utilisateur)<4:
            print("Ce nom est invalide. ")
            return recup_nom_utilisateur()
        else:
            return nom_utilisateur

    Voici mon main

    jeu.py
    utilisateur = recup_nom_utilisateur()

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Citation Envoyé par Taylor08 Voir le message

    fonctions.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def recup_nom_utilisateur():
        nom_utilisateur = input("Tapez votre nom: ")
        nom_utilisateur = nom_utilisateur.islower()
        print(nom_utilisateur)
        if not nom_utilisateur.isalnum() or len(nom_utilisateur)<4:
            print("Ce nom est invalide. ")
            return recup_nom_utilisateur()
        else:
            return nom_utilisateur
    Salut,

    Tout d'abord, si il te retourne name 'lolo' is not defined. c'est que tu as écris 'lolo' dans le code.

    Ensuite,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom_utilisateur = nom_utilisateur.islower()
    islower te diras si le texte est entièrement em minuscule, je suppose que tu veux plutôt le convertir, il faudra écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nom_utilisateur = nom_utilisateur.lower()
    Pour le code, la balise est "code" et non pas "B"

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Points : 51
    Points
    51
    Par défaut
    D'accord, mais du coup comment je fais pour récupérer la valeur?

  4. #4
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Quel est le problème ? Que retourne la fonction ?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Points : 51
    Points
    51
    Par défaut
    Ben, lorsque je rentre le nom de l'utilisateur, il est censé me retourner le nom de l'utilisateur que j'ai tapé dans mon input.

    Une fenetre s'affiche en me demandant de taper le nom de l'utilisateur. Il est censé me retourner utilisateur : lolo.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Points : 34
    Points
    34
    Par défaut
    Bonjour.

    Comme te l'a dit VinsS, islower() sert à vérifier si une chaîne de caractère est en minuscule et renvoie un booléen (True si ta chaîne est en minuscules et False dans le cas contraire). Ton code doit ressembler à ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def recup_nom_utilisateur():
        nom_utilisateur = input("Tapez votre nom: ")
        nom_utilisateur = nom_utilisateur.lower()    
        if not nom_utilisateur.isalnum() or len(nom_utilisateur)<4:
            print("Ce nom est invalide. ")
            return recup_nom_utilisateur()
        else:
            return nom_utilisateur
     
    nom = recup_nom_utilisateur()
    print(nom)

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Points : 51
    Points
    51
    Par défaut
    oui, j'avais compris pour le lower() mais là n'est pas le problème puisqu'il me retourne la même erreur.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Points : 34
    Points
    34
    Par défaut
    Quelle erreur? Tu peux nous donner le code complet? Comment tu exécutes ta fonction main()?

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Points : 51
    Points
    51
    Par défaut
    jeu.py

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    from fonctions import *
     
    scores = recup_scores()
    utilisateur = recup_nom_utilisateur()
    if utilisateur not in scores.keys():
        scores[utilisateur] = 0
    fonctions.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def recup_nom_utilisateur():
        nom_utilisateur = input("Tapez votre nom: ")
        nom_utilisateur = nom_utilisateur.lower()
        if not nom_utilisateur.isalnum() or len(nom_utilisateur)<4:
            print("Ce nom est invalide. ")
            return recup_nom_utilisateur()
        else:
            return nom_utilisateur

    Erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        nom_utilisateur = input("Tapez votre nom: ")
      File "<string>", line 568, in Win32Input
      File "<string>", line 1, in <module>
    NameError: name 'Lolo' is not defined

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Amateur
    Inscrit en
    Janvier 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Janvier 2015
    Messages : 24
    Points : 34
    Points
    34
    Par défaut
    Tu as essayé d'exécuter ton code dans l'IDLE par défaut? Je n'ai pas d'erreur. Je ne sais pas ce qu'est win32Input? Tu utilises une version particulière de python? Un truc orienté jeux? Sinon, c'est pas un problème de guillemets? Et que donne la fonction raw_input()? ou input() sans rien entre les parenthèses.

  11. #11
    Expert éminent

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Une fenetre s'affiche en me demandant de taper le nom de l'utilisateur.
    quelle fenêtre ?


    Ton problème vient de l'environnement dans lequel tu exécutes ton programme.

    Sans en savoir plus ....

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Taylor08 Voir le message
    Je me suis créer un "input" pour pouvoir entrer le nom de l'utilisateur ( ex lolo ) qui le récupère par la suite pour pouvoir lancer le jeu, mais il me retourne une erreur de ce type : name 'lolo' is not defined.
    C'est un comportement normal de Python 2.7:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> input('foo')
    foololo
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<string>", line 1, in <module>
    NameError: name 'lolo' is not defined
    >>>
    Mettez à jour votre version de Python ou utilisez "raw_input".

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

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 95
    Points : 51
    Points
    51
    Par défaut
    Merci j'ai utilisé le raw_input.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/11/2012, 21h40
  2. [Lycos] Problème de nom de domaine
    Par yannickn dans le forum Autres hébergeurs
    Réponses: 30
    Dernier message: 07/05/2009, 11h33
  3. Problème pour récupérer le nom utilisateur
    Par philippef dans le forum Langage
    Réponses: 12
    Dernier message: 06/08/2007, 17h57
  4. Problème de nom de table
    Par davix123 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/02/2006, 14h41
  5. Delphi - Base donnée Paradox, problème de nom des champs
    Par mjp dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/01/2005, 21h10

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