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 en Python


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Boucle en Python
    Bonjour,
    Je débute actuellement la programmation en Python, et après la lecture d'un tutoriel j'ai tenté de créer une boucle à condition dans l'interpréteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a=1
    while a<100
        print(a)
        a=a+a
        print('Terminé')
    Mon problème est que je souhaiterais afficher le message "Terminé" après l'affichage de la boucle, or, l'interpréteur l'affiche systématiquement après chaque nombre. Lorsque je supprime l'espace avant la commande print, il affiche une erreur de syntaxe.
    Une aide ?
    Merci d'avance.

  2. #2
    Membre régulier Avatar de copyleft28
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2020
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2020
    Messages : 65
    Points : 75
    Points
    75
    Par défaut
    Bonjour;
    pour commencer, il ne faut pas oublier les deux points devant la condition du while. Et pour afficher le message seulement à la fin, il faut supprimer l'indentation. Et au lieu d'écrire a=a+a, tu peux juste écrire a*=2 ou a+=a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a=1
    while a<100 :
        print(a)
        a+=a
    print('Terminé')
    Bonne fin d'année !

  3. #3
    Membre régulier Avatar de copyleft28
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2020
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2020
    Messages : 65
    Points : 75
    Points
    75
    Par défaut
    Par contre si tu utilise Python 2 au lieu de Python 3, c'est un peu différent...

  4. #4
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Re,
    Merci pour ta réponse, mais j'ai toujours le même problème même en suivant ton code. J'obtiens une erreur de syntaxe : Nom : Capture d’écran (1).png
Affichages : 166
Taille : 152,0 Ko
    Dans l'interpréteur, j'obtiens simplement une erreur, tandis que dans l'IDLE, en supprimant l'indentation automatique (en appuyant sur Retour) j'obtiens encore une erreur.
    Et oui, j'utilise bien Python 3.9.1.
    Cdlt

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

    Ce que vous constatez est décrit dans tous les bons tutos.

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

  6. #6
    Membre régulier Avatar de copyleft28
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2020
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2020
    Messages : 65
    Points : 75
    Points
    75
    Par défaut
    Pour commencer, tu ne peux entrer qu'une commande à la fois dans l'interpréteur de commande.
    Ensuite, j'ai essayé de copier-coller le code que j'ai envoyé dans mon message précédent et ca marche pour moi :
    Nom : dvnet.png
Affichages : 117
Taille : 52,1 Ko
    As-tu bien tapé les indentations ? (il faut juste appuyer sur la touche TAB)

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par copyleft28 Voir le message
    j'ai essayé de copier-coller le code que j'ai envoyé dans mon message précédent et ca marche pour moi
    Il faut essayer dans le bon contexte (l'interpréteur Python):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> a=1
    >>> while a<100 :
    ...     print(a)
    ...     a+=a
    ... print('Terminé')
      File "<stdin>", line 4
        print('Terminé')
        ^
    SyntaxError: invalid syntax
    >>>
    Le soucis est avec le prompt '...', il faut terminer le block avec une ligne vide (histoire que le prompt '>>>' s'affiche).

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

  8. #8
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Le soucis est avec le prompt '...', il faut terminer le block avec une ligne vide (histoire que le prompt '>>>' s'affiche).
    Merci pour vos réponses, mais, du coup, comment puis-je faire apparaître le prompt '>>>' sans que le script s'exécute, et ainsi pouvoir faire apparaître à la suite les nombres et le message terminé ?
    Cdlt

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par HediiBL Voir le message
    Merci pour vos réponses, mais, du coup, comment puis-je faire apparaître le prompt '>>>' sans que le script s'exécute, et ainsi pouvoir faire apparaître à la suite les nombres et le message terminé ?
    En entrant une ligne vide (juste <Enter> ou <Return>) comme je vous l'ai indiqué (et que vous auriez du avoir appris par vous même en ouvrant un tuto.).

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

  10. #10
    Candidat au Club
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2020
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Excuse-moi, tu risques peut-être de me prendre pour un débile, mais le problème se pose quand je suis dans cette situation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    a=1
    while a<100:
        print(a)
        a+=a
    À partir du moment où j'appuie sur Entrée pour valider 'a+=a', j'obtiens un prompt secondaire à la ligne suivante (...), et si j'appuie sur Entrée à ce moment, le script s'exécute...
    Je crois bien ne pas avoir compris cette notion, donc si tu peux m'éclairer...
    Cdlt

  11. #11
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Il faut appuyer sur la touche de tabulation après les ":" du while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> a = 1
    >>> while a < 10:
    ...     print(a)
    ...     a+=a
    ... 
    1
    2
    4
    8
    la ligne suivante sera exécutée après si tu enregistres le tout dans un fichier .py
    Pas d'aide par mp.

  12. #12
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Lorsque vous écrivez du code directement dans l'interpréteur python, il s'éxécute dès que l'instruction est complète. Donc à la fin de votre boucle, ca s'éxécute.

    Quand vous commencez à avoir plusieurs lignes de code, je vous conseille de passer par des scripts. En plus ca vous permettera de sauvegarder vos codes, ce qui est quand meme vachement mieux !

    NB: Il existe un moyen quand meme d'exécuter plusieurs instructions en 1 fois, dans l'interpréteur python, mais ce n'est vraiment pas pratique : il faut copier/coller l'ensemble du code dans votre interpréteur.

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Citation Envoyé par lg_53 Voir le message
    NB: Il existe un moyen quand meme d'exécuter plusieurs instructions en 1 fois, dans l'interpréteur python, mais ce n'est vraiment pas pratique : il faut copier/coller l'ensemble du code dans votre interpréteur.
    Mais pas que... Ceci devrait marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a=1
    while a<100 :
        print(a)
        a+=a
     
    print('Terminé')
    alors que cela devrait planter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a=1
    while a<100 :
        print(a)
        a+=a
    print('Terminé')
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. les conditions et les boucles en Python
    Par mido1951 dans le forum Général Python
    Réponses: 10
    Dernier message: 31/01/2017, 01h52
  2. optimiser les boucles en python
    Par huître dans le forum Général Python
    Réponses: 2
    Dernier message: 11/08/2015, 15h48
  3. des boucles sous python
    Par hibouchka dans le forum Général Python
    Réponses: 7
    Dernier message: 07/04/2011, 13h29
  4. boucle for python
    Par space_56 dans le forum Général Python
    Réponses: 3
    Dernier message: 22/01/2011, 13h06
  5. Boucles sur python
    Par Spitfire378 dans le forum Général Python
    Réponses: 10
    Dernier message: 08/04/2007, 20h46

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