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 General sur les boucles


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2020
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 114
    Par défaut Question General sur les boucles
    Bonjour,

    dans le tutos : Apprendre Python et s'initier à la programmation
    Partie 1 : Bases de la programmation
    IV-A-1. Liste de paramètres

    Il est dit :" Écrivons, par exemple, une fonction qui affiche la table de multiplication de 7. Pour cela, on va évidemment utiliser une boucle while..."

    Pourquoi while et pas for, c'est le "évidemment" que je ne comprend pas. Pour le coup je m'attendais plus a for...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     n = 0
        while n <= 10:
            print(n, "x 7 =", n * 7)
            n += 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(11):
        print(i, "x 7=", i*7)
    La question est peut être bête.

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

    Citation Envoyé par Aelurus_ Voir le message
    Pourquoi while et pas for, c'est le "évidemment" que je ne comprend pas. Pour le coup je m'attendais plus a for...
    Le principe d'un bon tuto. est de vous donner des exercices pour approfondir les notions abordées dans le chapitre courant et les précédents. Donc si jusqu'ici, les boucles for n'ont pas été présentées, on fait les exercices avec le Python qu'on connaît.
    note: je ne suis pas allez voir le tuto. pour vérifier que... mais le Swinnen est un bon tuto.

    Si vous connaissez déjà "for", ne zappez pas le chapitre, il s'y raconte des choses qui fixeront vos idées. Ne zappez pas les exercices non plus car, l'important est aussi dans ce que vous allez découvrir en essayant de les mettre au point.

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2020
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 114
    Par défaut
    Oui, effectivement je comprend la logique du tutos. Je ne la remettais pas en cause, ni le tutos. Je reformule ma question.
    Sur le cas cité qui est la génération d'une table de multiplication. Entre le faire avec une boucle while et le faire avec une boucle for, je vois que les deux sortie sont pour moi équivalente. Est il plus judicieux d'utiliser while ou for ? Qu'est ce qui objectivement me permet de privilégier l'une de l'autre ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    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 746
    Par défaut
    Citation Envoyé par Aelurus_ Voir le message
    Est il plus judicieux d'utiliser while ou for ? Qu'est ce qui objectivement me permet de privilégier l'une de l'autre ?
    Vous voyez bien que le "for" permet, dans ce cas, d'avoir en une seule instruction ce qui en demande 3 avec "while". L'intérêt n'est pas dans le "plus court" mais à éviter l'oublie de l'initialisation, de l'incrémentation,... facile à vérifier dans 5 lignes de code mais plus compliqué quand c'est plus long.

    note: Avec Python, ce qui est judicieux, est un code concis facile à relire.

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

  5. #5
    Membre confirmé
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2020
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 114
    Par défaut
    Merci

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    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 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Aelurus_ Voir le message
    Pourquoi while et pas for, c'est le "évidemment" que je ne comprend pas. Pour le coup je m'attendais plus a for...
    En fait, le but d'un tuto est d'amener la compréhension des choses. Il est clair que pour afficher une table de multiplication, il faut une boucle dans laquelle on incrémente une variable qui fait office de la partie "changeante" de la table.
    Cette variable doit être forcément initialisée (c'est généralement le cas de la majorité des langages qui n'initialisent pas par défaut, considérant que c'est une perte de temps et donc de vitesse d'exécution vu que les variables sont toujours initialisées par leur créateur et pas forcément à 0). Cette variable doit aussi grandir d'où un incrément obligatoire.
    D'où la solution basique de la boucle while qui est la boucle standard dans l'algorithmie. Ca c'est la compréhension que tente de donner le tuto. Si on veut avoir une variable qui change n fois alors dans un premier réflexe "évidemment" on pensera au while.

    Ensuite Python offre la boucle for. Cette boucle n'est pas standard. Dans Python elle a une certaine syntaxe, elle en aura une autre en C et encore une autre en Basic et encore une autre en Pascal et peut-être n'existera même pas dans plein d'autres langages (par exemple elle n'existe pas en Brainfuck). Bien évidemment ici on est en Python donc une fois qu'on a compris le principe du while, on a alors le droit (voire même le devoir) de s'offrir le raccourci que donne le for. Ca donne effectivement un code plus concis, donc plus lisible et moins sujet à erreurs. Mais tu ne peux pas reprocher au tuto de ne pas en parler (ou du moins de ne pas en parler tout de suite car il est probable qu'il en parle plus tard).
    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]

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 746
    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 746
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Ensuite Python offre la boucle for. Cette boucle n'est pas standard.
    Python est un langage objet. La boucle "for" balaie un itérable. On les appelle des "for each loop" pour les différentier des "numeric for loops".

    Quand on commence, while est plus simple à apprendre/comprendre.
    Quand on sait comment les remplacer par une boucle "for" et qu'on en a marre de se faire avoir par les oublis d'initialisation, d'incrémentation, on s'y met "naturellement" (quelque soit le langage).

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

  8. #8
    Membre confirmé
    Homme Profil pro
    Curieux
    Inscrit en
    Avril 2020
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 114
    Par défaut
    Merci, tous les deux, pour ces précisions.



    Sve@r : ce n'était en aucun cas un reproche, c'est juste qu'en lisant le terme "évidence" dit dans un tuto, en tant que débutant j'ai voulu comprendre pourquoi c'était évident. Pas de reproche juste un pourquoi ^^. Car sur le coup je me suis dit qu'outre la syntaxe il y avait peut-être d'autres raisons plus subtiles que le peu de tutos que j'ai lu, me permettaient de connaitre. Je me suis dit c'est peut-être avec une vitesse d'exécution, association.......



    Ensuite je trouve la construction d'une boucle for plus simple dans ma tête (c'est très personnel) comparé à une boucle while. En rapport avec le peu de fois que j'ai essayé d'en faire, donc mon avis ne me paraissait pas représentatif du tout.

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

Discussions similaires

  1. [Python 3.X] question théorique sur les boucles
    Par Moustic53 dans le forum Général Python
    Réponses: 2
    Dernier message: 14/06/2016, 16h11
  2. [MySQL] question bete sur les boucles
    Par Klink dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 24/01/2013, 15h18
  3. [Débutant] question bete sur les boucles
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 12
    Dernier message: 05/03/2010, 16h26
  4. Questions d'ordre general sur les design CSS
    Par Clorish dans le forum Mise en page CSS
    Réponses: 20
    Dernier message: 19/06/2007, 13h20
  5. Question générale sur les scripts linux
    Par jejerome dans le forum Linux
    Réponses: 4
    Dernier message: 09/04/2006, 08h25

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