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 :

Incrémentation du compteur dans une boucle while


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2020
    Messages : 20
    Par défaut Incrémentation du compteur dans une boucle while
    Bonjour,

    Je suis un grand débutant, j'ai développer le petit script suivant pour calculer une table de multiplication:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nb = 7
    i = 0 
    while i <10:
        print ( i +1 , "*", nb, "=", (i + 1 )* nb)
        i = i + 1
    ça marche bien, par contre en premier essai, "logiquement" j'avais écris :

    <= 10

    car la dernier multiplication est par 10. Or dans le code final il faut mettre strictement inférieur a 10, mais dans la dernière boucle le compteur envoi dans while 10, ou le programme comprend i = 9 +1 et non i =10?

    Dans ce cas il y a quelque chose qui m'échappe

    Merci d'avance pour votre support

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 602
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nb = 7
    i = 1
    while i < 10:
        print(i, "*", nb, "=", (i) * nb)
        i = i + 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1 * 7 = 7
    2 * 7 = 14
    3 * 7 = 21
    4 * 7 = 28
    5 * 7 = 35
    6 * 7 = 42
    7 * 7 = 49
    8 * 7 = 56
    9 * 7 = 63
    Comparez votre code avec ma version modifiée

  3. #3
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2020
    Messages : 20
    Par défaut
    Citation Envoyé par Arioch Voir le message
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nb = 7
    i = 1
    while i < 10:
        print(i, "*", nb, "=", (i) * nb)
        i = i + 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1 * 7 = 7
    2 * 7 = 14
    3 * 7 = 21
    4 * 7 = 28
    5 * 7 = 35
    6 * 7 = 42
    7 * 7 = 49
    8 * 7 = 56
    9 * 7 = 63
    Comparez votre code avec ma version modifiée
    Bonjour, je crois que j'ai compris,

    la dernière fois que le programme lit:

    et qu'il repasse dans le while c'est quand c'est égal à 9.

    C'est le +1 dans le print qui permet d'obtenir le 10

    Et toute logique ce code marche aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    nb = 7
    i = 1 
    while i <=10:
        print ( i , "*", nb, "=", (i + 1 )* nb)
        i = i + 1

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    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 801
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Sonata Arctica Voir le message
    Et toute logique ce code marche aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nb = 7
    i = 1 
    while i <=10:
        print ( i , "*", nb, "=", (i + 1 )* nb)
        i = i + 1
    En logique peut-être, en réalité non. Si tu multiplies "nb" par "i+1" alors pour (par exemple) 1*7 ça t'affiche 14.
    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]

  5. #5
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    914
    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 : 914
    Billets dans le blog
    7
    Par défaut
    Bonjour,
    ...
    L'utilisation d'une boucle for est dans ce type de cas plus pertinant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(1, 11): 
        print(i, "*", nb, "=", (i) * nb)

  6. #6
    Membre averti
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Avril 2020
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Contrôleur de gestion

    Informations forums :
    Inscription : Avril 2020
    Messages : 20
    Par défaut
    Ok c'est très clair,

    Merci à tous

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/04/2016, 13h28
  2. [TPW] Incrémentation du compteur dans une boucle for
    Par sukhoimk dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 15/07/2011, 17h58
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

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