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 :

[Débutant] Vérification de la saisie


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 3
    Par défaut [Débutant] Vérification de la saisie
    Bonjour à tous je sollicite votre aide, en effet je suis débutant en python et pour mon premier code je créer un programme qui calcule la tva le prix HT, TTC... sur le prix que l'on entre. Or je me trouve face à un problème, je voudrais que lorsque l’utilisateur rentre le prix ou la quantité en tapant une lettre ou un autre caractère le terminal affiche erreur prix et que la boucle recommence.
    Pour cela je pensais que taper cela suffirait mais apparemment ce n'est pas le cas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			if prixHT != float : 
    				print ("Erreur")
    				continue
    Merci d'avance pour le temps que vous me consacrerez en vous souhaitant une bonne soirée .

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    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 746
    Par défaut
    Salut,

    Si prixHT est une chaine de caractères, prixHT.isnumeric() retournera un booléen disant si c'est un nombre entier (ou pas). Et si vous ne voulez pas travaillez en centimes mais avec des nombres flottants, la méthode la plus simple est d'essayer de faire float(prixHT) et d'attraper l'exception.

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Si prixHT est une chaine de caractères, prixHT.isnumeric() retournera un booléen disant si c'est un nombre entier (ou pas). Et si vous ne voulez pas travaillez en centimes mais avec des nombres flottants, la méthode la plus simple est d'essayer de faire float(prixHT) et d'attraper l'exception.

    - W
    prixHT n'est pas une chaîne de caractère mais un nombre et j'aurais du remplacer float par int

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    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 746
    Par défaut
    Citation Envoyé par tiegrou Voir le message
    prixHT n'est pas une chaîne de caractère mais un nombre et j'aurais du remplacer float par int
    Si c'est déjà un nombre pourquoi le vérifier encore?

    De plus ce n'est pas très cohérent avec ce que vous racontiez dans le premier message:

    Citation Envoyé par tiegrou Voir le message
    je voudrais que lorsque l’utilisateur rentre le prix ou la quantité en tapent une lettre ou un autre caractère le terminal affiche erreur prix et que la boucle recommence.
    or l'utilisateur ne va saisir que des chaines de caractères que vous pourrez éventuellement convertir en "int" plus tard (par exemple en vous assurant que .isnumeric() retourne True).


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

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 3
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Si c'est déjà un nombre pourquoi le vérifier encore?

    De plus ce n'est pas très cohérent avec ce que vous racontiez dans le premier message:



    or l'utilisateur ne va saisir que des chaines de caractères que vous pourrez éventuellement convertir en "int" plus tard (par exemple en vous assurant que .isnumeric() retourne True).


    - W
    Premièrement désolé de l'explication ,il est vrai que je débute et je me perd facilement.
    Pour paraître plus clair le code apparaît comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    prixHT = input ("prixHT : ")
    prixHT = int (prixHT)
    ensuite je calcule la tva qui se rajoute au prixht
    sauf que l'utilisateur dans le input si il se trompe peut écrire sans faire attention imaginons "a", et cela stop le code.
    Mon objectif serais de refaire démarré la boucle la ou l'utilisateur a fait la faute de frappe.
    Par la suite j'ai voulu utilisé la commande .isnumeric(), True mais comme après que l'utilisateur ai mis sont prix Ht celui si est calculé en ttc et que prixHT= True si il n'y a pas eu de faute de frappe le calcule se fausse car j imagine que pour puthon True = 1 false= 0

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    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 746
    Par défaut
    Salut,

    Citation Envoyé par tiegrou Voir le message
    Mon objectif serais de refaire démarré la boucle la ou l'utilisateur a fait la faute de frappe.
    C'est ce qu'on peut appeler un "besoin" (je veux que...).
    Tout l'apprentissage de la programmation est d'arriver à "reformuler" ce besoin pour arriver à le programmer.

    Pour pouvoir "reformuler", il faut maîtriser ce qui est "programmable".
    Au début vous apprenez à écrire une suite d'instructions avec des boucles et des conditions.
    Vous devriez pouvoir "penser" à écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while True:
        saisie = input(prompt=...)
        if saisie.isnumeric():
            break
    saisie = int(saisie)
    puis vous apprenez fonctions et exceptions, pour ne pas vous laisser peturber par les détails du code à réaliser, vous allez vous concentrer sur l'essentiel pour écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    saisie = get_type(int, prompt=...)
    où get_type sera (par exemple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    def get_type(type_, prompt):
         while True:
              try:
                   return type_(input(prompt))
              except ValueError:
                   pass
    Mais il est illusoire de savoir faire cela des ses premiers pas, c'est pour çà qu'il y a des tutos qui proposent une progression dans l'apprentissage avec des exercices pour s'entrainer (et une table des matières pour revoir certains concepts de temps en temps).

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

Discussions similaires

  1. Demande d'aide comme débutant
    Par caven7 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 28/07/2016, 23h02
  2. Demande d'aide Apache (débutant)
    Par mononoke dans le forum Apache
    Réponses: 1
    Dernier message: 04/05/2014, 20h57
  3. Demande d'aide pour débutant.
    Par pixee dans le forum jQuery
    Réponses: 6
    Dernier message: 31/07/2009, 10h13
  4. demande d'aide pour débutant
    Par libremax dans le forum Langage
    Réponses: 6
    Dernier message: 19/11/2008, 19h03

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