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 :

res false et boucle while


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2019
    Messages : 20
    Points : 8
    Points
    8
    Par défaut res false et boucle while
    bonsoir, nouveau mystère :
    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
    def triple_double_lettres(mot):
       """renvoie vrai si le mot contient trois double lettres consécutives"""
     
       i = 0   
       n = len(mot) 
       res = False  
       while not res and i < n - 5:
           res = mot[i] == mot[i + 1] and mot[i + 2] == mot[i + 3] \
                 and mot[i + 4] == mot[i + 5]
           i += 1
       return res
     
    u=triple_double_lettres('kkjjyygetdfer')
    print (u)
    True
    Question : tant que la réponse n'est pas non et que le nombre de boucles n'a pas atteint n-5, la réponse à retourner est …..lettre 1 = lettre 2, lettre 3 = lettre 4, lettre 5 = lettre 5
    jusqu'à ce que ….
    Jamais je n'aurais fait cela car je ne comprends pas que res = ……..des lettres , alors que c'est au départ false et que s'imprimera True !

  2. #2
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Salut.

    Lorsque tu postes du code, utilise la balise code [#]

    Lorsqu'on fait :

    On demande si a vaut b, python répond par True ou False.

    Maintenant, tu peux ouvrir un interpréteur python, regarder et comprendre ce que python renvoie lorsqu'on lui demande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    True and False and True
    Ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    False and False and False
    Ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    True and True and False
    Ou encore

    Bref, teste !

    Comprendre cela est la base de la programmation.

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

    En programmation res s'appelle un drapeau (ou un "flag").
    Et c'est quoi la question?

    - W

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mars 2019
    Messages : 20
    Points : 8
    Points
    8
    Par défaut
    salut

    True and False and True, c'est une intersection donc false ?
    non, ma question c'est : res = false qui viendra arrêter la boucle.
    si res = lettre 1 dont on affirme que c'est la même que lettre 2 est vraie alors la boucle se poursuit jusqu'à ce que les trois conditions soient remplies et que soit retourné res considérée cette fois comme le vrai ou le faux
    J'ai du mal à saisir ….

  5. #5
    Membre confirmé

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Points : 503
    Points
    503
    Billets dans le blog
    1
    Par défaut
    Salut.

    Je ne comprends pas ce que tu ne comprends pas.
    La variable res ne vaut pas lettre 1, elle vaut l'expression entière située derrière l'opérateur d'affectation =.
    Place des parenthèses autour de l'expression si cela te perturbe.

    res = ( mot[i] == mot[i + 1] and mot[i + 2] == mot[i + 3] and mot[i + 4] == mot[i + 5] )

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 329
    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 329
    Points : 36 848
    Points
    36 848
    Par défaut
    Citation Envoyé par nipocham Voir le message
    salut

    True and False and True, c'est une intersection donc false ?
    non, ma question c'est : res = false qui viendra arrêter la boucle.
    si res = lettre 1 dont on affirme que c'est la même que lettre 2 est vraie alors la boucle se poursuit jusqu'à ce que les trois conditions soient remplies et que soit retourné res considérée cette fois comme le vrai ou le faux
    J'ai du mal à saisir ….
    La programmation est une composition d'abstractions "simples":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    res = False
    i = 0
    while res and i < len(conditions):
             res = conditions(i)
             i = i +1
    et le travail du débutant est d'arriver à les retrouver lorsqu'il relit un code.
    Si vous n'y arrivez pas, c'est pas grave, çà veut juste dire que vous avez encore plein de chose à apprendre (et que programmer n'est pas si évident).

    - W

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par nipocham Voir le message
    car je ne comprends pas que res = ……..des lettres
    Non. res="un test d'égalité diverses". Or tout test renvoie un booléen True/False

Discussions similaires

  1. boucle while trop lente
    Par atouze dans le forum Access
    Réponses: 17
    Dernier message: 15/06/2005, 16h35
  2. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 15h38
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

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