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 :

Récupération de caractère


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2018
    Messages : 28
    Par défaut Récupération de caractère
    Bonjour à tous...s'il vous plaît j'ai un soucis j'ai écris un petit programme en python qui affiche un menu de cette (1-aire du cercle 2-factorielle q-quitter) mon soucis est le suivant j'ai créé une varianble choix dont le type est int mais ce type ne gère que les entier mais moi je veux géré les entier et les caractères c'est à dire permettre à l'utilisateur de taper q au clavier pour quitter

  2. #2
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    commencez par montrer votre code, sinon pour ce qui est saisi il suffit de faire input()

    En faite je ne vois vraiment pas où est le problème désolé.

  3. #3
    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,

    Pour votre "problème" il suffit de ne pas caster directement la variable chois à la saisi, input retourne un str() de base.
    Il suffit de caster en entier que au moment des testes.

    un exemple rapide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import sys
     
    choix = input()
     
    # on passe en minuscule pour être sûr que ça fonctionne si on saisi 'Q'
    if choix.lower() ==  "q": 
        sys.exit(0)
    elif int(choix) == 1:
        pass
    elif int(choix) == 2:
        pass

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Si on veut retourner quelque chose, il faudra créer une fonction.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    def get_choice():
        choice = input('...')
        if choice.isdigit():
            return int(choice)
        return choice if choice == 'q' else ''
    Non testé, mais dans ce style

  5. #5
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par zancrows Voir le message
    (...)
    avec ton code si tu rentres "z" ça va lever une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ValueError: invalid literal for int() with base 10: 'z'
    il vaut mieux commencer par vérifier le type de choix avec isdigit() par exemple

  6. #6
    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
    Citation Envoyé par BufferBob Voir le message
    avec ton code si tu rentres "z" ça va lever une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ValueError: invalid literal for int() with base 10: 'z'
    il vaut mieux commencer par vérifier le type de choix avec isdigit() par exemple
    C'est vrai j'y ai pas pensé sur l'instant... merci pour la remarque

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2018
    Messages : 28
    Par défaut
    Citation Envoyé par zancrows Voir le message
    Bonjour,

    Pour votre "problème" il suffit de ne pas caster directement la variable chois à la saisi, input retourne un str() de base.
    Il suffit de caster en entier que au moment des testes.

    un exemple rapide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import sys
     
    choix = input()
     
    # on passe en minuscule pour être sûr que ça fonctionne si on saisi 'Q'
    if choix.lower() ==  "q": 
        sys.exit(0)
    elif int(choix) == 1:
        pass
    elif int(choix) == 2:
        pass
    Merci beaucoup pour ta réponse

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/09/2009, 12h38
  2. Réponses: 17
    Dernier message: 20/02/2009, 15h35
  3. Problème de récupération de caractère Tabulation
    Par ESTERALIX dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/07/2008, 15h26
  4. le bash et récupération des caractères
    Par RedBlack.Ma dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 17/01/2007, 22h20
  5. [SAX] Récupération chaine caractère
    Par sebus dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/02/2006, 23h57

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