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 :

Question de base


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2013
    Messages : 6
    Par défaut Question de base
    Bonjour,

    J'ai à créer une fonction qui saisie et valide l'entré d'un string

    La fonction doit commencer par 4 lettre suivit de 2 chiffre
    Le tout fonctionne, mais la boucle while s'exécute seulement une fois...
    Quelqu'un pourrait corriger mon code pour que la boucle d'exécute autant de fois que la saisie n'est pas correct.

    Merci!

    *****************************************************************

    matricule = ""

    def validerMatricule(matricule):
    # Variable locale
    estMatricule = False


    matricule = input ("Entrer votre matricule:")

    if (len(matricule) == 6) and matricule[:4].isalpha() and matricule[4:].isdigit():
    estMatricule = True


    return matricule
    return cestMatricule


    while estMatricule == False:
    print("Le matricule doit commencer par 4 lettres et finir par 2 chiffres")
    matricule = input("Entrer votre matricule:")


    return matricule



    validerMatricule(matricule)

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 068
    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 068
    Par défaut
    Peux-tu mettre ton code dans les balises de code, les indentations sont très importantes avec python. Utilises le bouton #

  3. #3
    Membre Expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 568
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 568
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    def validerMatricule():
        while True: # poursuit indéfinement
            matricule = input ("Entrer votre matricule:")
            #validation et sortie si Ok
            if (len(matricule) == 6) and matricule[:4].isalpha() and matricule[4:].isdigit()): break
            # affiche le message qu'en cas d'erreur
            print("Le matricule doit commencer par 4 lettres et finir par 2 chiffres")
        return matricule
    (non testé)
    Remarques :
    - Il faut placer le while en tête de bloc.
    - Indente correctement ton code, c'est obligatoire dans Python, car c'est grâce à l'indentation que l'interpréteur reconnaît les blocs des structures de contrôle.
    - Aucun intérêt de passer Matricule en paramètre puisque tu l'initialise avec input dès le départ
    - un seul return sauf si répartis dans des structures de contrôle différentes.

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 068
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def saisieMatricule():
        matricule = ""
        while  not(len(matricule)==6 and matricule[:4].isalpha() and matricule[-2:].isdigit()):
            print("Le matricule doit commencer par 4 lettres et finir par 2 chiffres")
            matricule = input("Entrer votre matricule:")
        return matricule
     
    print(saisieMatricule())

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

Discussions similaires

  1. Question de base sur les classes
    Par deaven dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 16h20
  2. Réponses: 4
    Dernier message: 20/11/2005, 21h46
  3. question de base
    Par tuxedo dans le forum Langage SQL
    Réponses: 11
    Dernier message: 05/04/2005, 15h28
  4. [Débutant] Question de base sur le BDE et les SGBD
    Par Invité dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/03/2005, 08h45
  5. Question de base
    Par xinu1.1 dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 03/02/2005, 22h14

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