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 :

Boucle while qui ne fonctionne pas [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut Boucle while qui ne fonctionne pas
    bonjour,

    je ne comprends pas ,j'ai un code qui ne m'affiche rien et je n'ai aucune erreur
    voici le code

    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
    16
    17
    import os
    import os.path 
     
    source_pth = os.path.abspath("C:/DIVERS/IN/")  
    source = os.listdir(source_pth)  
     
    i = 0  
    if ("ARMOIRE") in source:    
        while i < 1:
            print("j'ai une armoire")   
     
        i +=1
    elif ("TIROIR") in source:
        while i < 2:
            print("j'ai 1 tiroir")
     
        i +=1
    merci

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

    Les instructions "print" affichent que si on les exécute... et comme vous avez des conditions qui peuvent empêcher cette exécution, c'est qu'elles ne sont pas réalisées (vraies).

    Ce qui revient à se demander pourquoi "ARMOIRE" n'est pas dans source et à vous poser la question entre la différence côté opérateur "in" lorsqu'il cherche dans un chaîne de caractères vs une liste de chaînes de caractères.

    Question qu'on se pose normalement lorsqu'on fait les exercices proposés dans les tutos (parce que si on ne connaît pas la différence, on se retrouve face à un mur...).

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2019
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2019
    Messages : 67
    Par défaut
    maintenant j'ai bien l'affichage concernant l'armoire, mais pourquoi pas le tiroir dans cans le repertoire j'ai bien ARMOIRE.txt ET TIROIR.txt

    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
    16
    17
    import os
    import os.path 
     
    source_pth = os.path.abspath("C:/DIVERS/IN/")  
    source = os.listdir(source_pth)  
     
    i = 0  
    if ("ARMOIRE") in str(source):    
        while i < 1:
            print("j'ai une armoire")   
     
            i +=1
    elif ("TIROIR") in str(source):
        while i < 2:
            print("j'ai 1 tiroir")
     
            i +=1

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par frederic2710 Voir le message
    maintenant j'ai bien l'affichage concernant l'armoire, mais pourquoi pas le tiroir dans cans le repertoire j'ai bien ARMOIRE.txt ET TIROIR.txt
    Salut !

    Je vais faire mon wiztricks : Commencez par lire un tutoriel ! Avant de vouloir faire de la mécanique, il faut déjà connaître les outils de bases !

    Bref, si tu ne connais pas le fonctionnement des instructions if elif else tu vas jamais y arriver.

    Donc :
    if = si
    elif = sinon si
    else = sinon

    si "toto" dans "tu connais toto?" alors afficher "toto détecté"

    sinon si "tata" dans "toto va à la plage" alors afficher "tata détecté"

    ...

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    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 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par frederic2710 Voir le message
    maintenant j'ai bien l'affichage concernant l'armoire, mais pourquoi pas le tiroir dans cans le repertoire j'ai bien ARMOIRE.txt ET TIROIR.txt
    "elif" signifie "sinon si". Si tu n'as pas d'armoire alors tu vas regarder les tiroirs. Mais si tu as des armoires...
    Accessoirement on ne met pas de parenthèses au hasard. Les parenthèses ont un but qui est de prioriser des opérations, pas des valeurs. Si je veux obtenir 2+3*4=20 j'écrirai (2+3)*4 parce que je veux l'addition en premier alors que d'ordinaire elle passe après la multiplication. Mais écrire (2)+3 pour avoir 5 ne sert totalement à rien par rapport à 2+3.

    Citation Envoyé par LeNarvalo Voir le message
    Je vais faire mon wiztricks...
    Ah... encore envie de fessée
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Citation Envoyé par frederic2710 Voir le message
    maintenant j'ai bien l'affichage concernant l'armoire, mais pourquoi pas le tiroir dans cans le repertoire j'ai bien ARMOIRE.txt ET TIROIR.txt

    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
    16
    17
    import os
    import os.path 
     
    source_pth = os.path.abspath("C:/DIVERS/IN/")  
    source = os.listdir(source_pth)  
     
    i = 0  
    if ("ARMOIRE") in str(source):    
        while i < 1:
            print("j'ai une armoire")   
     
            i +=1
    elif ("TIROIR") in str(source):
        while i < 2:
            print("j'ai 1 tiroir")
     
            i +=1
    Transformer la liste en chaîne de caractères? Pourquoi pas mais rechercher les fichiers de la forme *ARMOIRE*.txt serait plus précis... et vous avez glob.glob pour le faire.

    Mais comme vous ne savez pas encore utiliser les conditions (if...then...else...) pas la peine de vous éparpiller: vous avez des tas de choses à apprendre avant de vous lancer à coder de petits projets.

    Citation Envoyé par LeNarvalo Voir le message
    Je vais faire mon wiztricks : Commencez par lire un tutoriel ! Avant de vouloir faire de la mécanique, il faut déjà connaître les outils de bases !
    Un tutoriel ne se lit pas, il se pratique... parce que le plus important sera le temps passé à essayer de faire les exercices pour voir comment se comporte Python, apprendre à corriger les erreurs basiques, être en confiance avec les constructions de base et arriver à relire le code qu'on a écrit.

    A vouloir faire sans passer par cette étape qui peut sembler harassante et qui est loin d'être "fun", on ne comprends pas le code qu'on écrit. On se retrouve à aller dans les forums à rechercher des sortes d'écrivains publics (ceux qui dépatouillent les "illettrés" dans les démarches administratives) mais n'est illettré en Python que ceux qui le choisissent (ou qui ont l'arrogance de vouloir faire sans avoir pris le temps d'apprendre).

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

  7. #7
    Invité
    Invité(e)
    Par défaut
    mais n'est illettré en Python que ceux qui le choisissent
    C'était pas le moment de faire une ellipse involontaire !

    @Sve@r

  8. #8
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Bonjour,
    Citation Envoyé par wiztricks Voir le message
    Transformer la liste en chaîne de caractères? Pourquoi pas mais rechercher les fichiers de la forme *ARMOIRE*.txt serait plus précis... et vous avez glob.glob pour le faire.
    Path.glob() du module Pathlib se debrouille très bien aussi dans ce type de recherche.

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

Discussions similaires

  1. Boucle do loop while qui ne fonctionne pas
    Par nahamed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2015, 11h52
  2. Une boucle While qui ne fonctionne pas
    Par seremei dans le forum Langage
    Réponses: 6
    Dernier message: 25/10/2012, 11h33
  3. [XL-2010] Boucle For qui ne fonctionne pas pour toutes les valeurs
    Par pleskyd dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 13/02/2012, 15h16
  4. une boucle for qui ne fonctionne pas
    Par piffeo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/11/2008, 21h52
  5. Fonction While {} qui ne fonctionne pas
    Par zoom61 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2006, 12h17

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