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 :

Boucles while imbriquées


Sujet :

Python

  1. #1
    Membre régulier Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Points : 98
    Points
    98
    Par défaut Boucles while imbriquées
    Bonjour à tous,

    Pour qu'elle raison ceci fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a, b = 0, 0
    for a in range(10):
        a+=1
        for b in range(10):
            b+=1
            print(a, ' X ', b, ' = ', a * b)
    et pas cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a, b = 0, 0
    while a < 10:
        a+=1
        while b < 10:
            b+=1
            print(a, ' X ', b, ' = ', a * b)
    Je suis vraiment impatient de comprendre, j'ai du louper un truc énorme.
    Débutant en janvier 2024 l'apprentissage d'un langage de programmation et n'étant pas particulièrement doué, soyez indulgents.

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 824
    Points : 7 120
    Points
    7 120
    Par défaut
    C'est une erreur algorithmique,

    Voici à quoi devrait ressembler l'algorithme avec une boucle while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Initialiser a à 0
    Tant que a est inférieur à 10 :
        Incrémenter a de 1
        Initialiser b à 0
        Tant que b est inférieur à 10 :
            Incrémenter b de 1
            Afficher a, 'X', b, '=', a*b
    Réessayez de développer en suivant cet algorithme.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Il faut remettre b à 0.
    Edit : Grillé par fred

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Pourquoi le premier code fonctionne ?
    Surprise, ce code affiche 100 lignes, je pensais qu'il en afficherait moins, mais je ne programme jamais en Python, donc ok.
    Ce code serait BEAUCOUP plus propre en enlevant les 2 lignes a+=1 et b+=1. Quitte à remplacer ces 2 lignes par aa= a+1 et bb=b+1, et afficher ces variables aa et bb plutôt que a et b.

    Pourquoi le deuxième code ne fonctionne pas.
    En fait, il fonctionne, il affiche 10 lignes.
    Tu voudrais probablement qu'il affiche 100 lignes, comme le premier code.
    Premier passage, a=1, on affiche les 10 valeurs pour b.
    Puis a =2, et il n'y a aucune instruction pour 'réinitialiser b' ; donc aucune raison pour que b reprenne la valeur 0.

    Proposition : juste avant ou juste après la ligne a+=1, tu ajoutes l'instruction b=0

    Edit : grillé par Fred et popo
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  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
    Citation Envoyé par scalpel Voir le message
    Je suis vraiment impatient de comprendre, j'ai du louper un truc énorme.
    Quand vous avez un truc comme ça, regardez le résultat obtenu.
    Dans le premier cas ça affiche 100 lignes (10x10) et dans le 2nd seulement 10.
    Là vous pouvez vous concentrez sur les valeurs prises par a et par b et vous poser de bonnes questions en relisant le code.

    note: je ne vous dis pas le "pourquoi" car il est préférable d'essayer de faire cette démarche par vous même.

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

  6. #6
    Membre régulier Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Points : 98
    Points
    98
    Par défaut
    Merci pour vos retours,

    Je me suis laissé influencer par le fait que ma première version fonctionnait parfaitement, j'ai voulu essayer avec des boucles "while".
    L'algorithme semblait tellement identique que je n'ai pas eu le reflexe de décortiquer pas à pas.

    Franchement même en tant que débutant, j'ai honte.

    Le coté positif c'est qu'a chaque discussion que j'ouvre j'apprends quelque chose :

    Citation Envoyé par tbc92 Voir le message
    .. Ce code serait BEAUCOUP plus propre en enlevant les 2 lignes a+=1 et b+=1. Quitte à remplacer ces 2 lignes par aa= a+1 et bb=b+1, et afficher ces variables aa et bb plutôt que a et b...
    Débutant en janvier 2024 l'apprentissage d'un langage de programmation et n'étant pas particulièrement doué, soyez indulgents.

  7. #7
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 105
    Points : 4 455
    Points
    4 455
    Par défaut
    bonjour

    Et si tu désires jouer avec range(), il faut voir son cousin enumerate() qui peut aussi pas mal servir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for a, x in enumerate(range(10), 1):
        print(a, x)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for a, _ in enumerate("*"*10, 1):
        print(a)
    ps: pas top ce code, mais pour jouer/comprendre : ok
    $moi= ( !== ) ? : ;

  8. #8
    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 scalpel Voir le message
    Franchement même en tant que débutant, j'ai honte.
    Ecrire sur une ligne un for i in range(...) avec un while ce sera 3 instructions: initialisation, while condition, incrémentation.
    Dès que le code autour est un peu compliqué on se fait avoir à tous les coups....
    C'est ce qui fait qu'on préfèrera le for i in range(...) beaucoup plus robuste.

    Ce ne sera qu'après vous être fait avoir plusieurs fois par ce genre de construction que vous verrez l'intérêt de fuir le while.
    Si un jour vous y êtes obligés écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a = b = 0
    while a < 10:
        a+=1
        while b < 10:
            b+=1
    ou b est initialisé en même temps que a laisse la porte ouverte à penser que b ayant été initialisé plus la peine de s'en occuper.
    Ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    a = 0
    while a < 10:
        a+=1
        b = 0
        while b < 10:
            b+=1
    rapproche les 3 instructions nécessaires (initialisation, while condition, incrémentation) et permet de vérifier d'un coup d’œil qu'on n'a rien oublié.


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

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par scalpel Voir le message
    Je me suis laissé influencer par le fait que ma première version fonctionnait parfaitement
    Elle fonctionne oui dans le sens où elle affiche les 10 tables de multiplication... mais pas vraiment "parfaitement".
    En effet, chaque indice de boucle va de 0 à 9, ce qui t'oblige à l'incrémenter pour qu'il ait la valeur attendue. Et c'est là le hic. Si on part sur for a in range(...) cela signifie que "a" doit être géré par le range() et de fait, on n'a pas à y toucher. Et s'il ne te convient pas ainsi c'est alors qu'il te faut revoir le range()
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for a in range(1, 11):
    	for b in range(1, 11):
    		print(a, ' X ', b, ' = ', a * b)

    Après, si tu veux gérer toi-même, tu en as le droit...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    a=1
    while a <= 10:
    	b=1
    	while b <= 10:
    		print(a, ' X ', b, ' = ', a * b)
    		b+=1
    	# while
    	a+=1
    # while
    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]

  10. #10
    Membre régulier Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Points : 98
    Points
    98
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    ... Et c'est là le hic. Si on part sur for a in range(...) cela signifie que "a" doit être géré par le range() et de fait, on n'a pas à y toucher.
    J'ai fini par m'en apercevoir tout seul, voici comment j'ai terminé l'exercice :

    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
    # Écrivez un script qui génère automatiquement un fichier texte contenant les tables de multiplication de 2 à 30
    # (chacune d'entre elles incluant 20 termes seulement).
     
    # Fonctions
    def enregTables(nomFichier):
        a = b = 0
        nomFichier =open(nomFichier, 'a')
        while a < 30:
            a+=1
            for b in range(1, 21):
                nomFichier.write(str(a) + ' X ' + str(b) + ' = ' + str(a * b) + '\r')
        nomFichier.close()    
     
    # Programe principal
    fichier =open('tablemult.txt', 'w')
    fichier.close()
    enregTables('tablemult.txt')
    Comme c'était un petit exercice , j'ai tout mis dans la fonction (c'est pas très cleen).
    Le "a = b = 0", c'est la réponse de wiztricks qui m'a inspiré.
    Débutant en janvier 2024 l'apprentissage d'un langage de programmation et n'étant pas particulièrement doué, soyez indulgents.

  11. #11
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par scalpel Voir le message
    nomFichier.write(str(a) + ' X ' + str(b) + ' = ' + str(a * b) + '\r')
    print("%d X %d = %d" % (a, b, a*b), file=nomFichier).
    Et fais attention, la variable "nomFichier" ne contient pas vraiment un nom de fichier mais un objet interne Python qui peut lire ou écrire ce fichier. Généralement ceux qui viennent du C ont l'habitude de nommer cette variable "fp" comme "File Pointeur".

    Citation Envoyé par scalpel Voir le message
    Comme c'était un petit exercice , j'ai tout mis dans la fonction (c'est pas très cleen).
    C'est ton code, tu l'organise comme tu le sens. Une fonction pour afficher toutes les tables ce n'est pas le souci. Ce que par exemple je ne trouve pas très clean, c'est que la fonction travaille obligatoirement dans un fichier et obligatoirement en mode "a". Et si je veux réinitialiser le fichier ? Et si je le veux à l'écran ?

    Code python : 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
    18
    19
    20
    # Écrivez une fonction qui enregistre les tables de multiplication de 2 à n dans un flux quelconque
    # Fonctions
    def enregTables(flux, n=10):
    	for a in range(1, n+1):
    		for b in range(1, 21):
    			print("{0} * {1} = {2}".format(a, b, a*b), file=flux)
    # enregTables()
     
    # Dans un fichier
    fp=open('tablemult.txt', 'w')
    enregTables(fp, n=30)
    fp.close()
     
    # On rajoute d'autres tables dans le fichier
    with open('tablemult.txt', 'a') as fp:
    	enregTables(fp, n=50)
     
    # A l'écran
    import sys
    enregTables(sys.stdout, n=5)
    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]

  12. #12
    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 scalpel Voir le message
    Comme c'était un petit exercice , j'ai tout mis dans la fonction (c'est pas très cleen).
    Le "a = b = 0", c'est la réponse de wiztricks qui m'a inspiré.
    Pour le coup, j'ai ré-écrit votre code (plutôt que de le recopier) et ça sort sans trop réfléchir.
    Par contre, écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def enregTables(nomFichier):
        a = b = 0
        nomFichier =open(nomFichier, 'a')
        while a < 30:
            a+=1
            for b in range(1, 21):
                nomFichier.write(str(a) + ' X ' + str(b) + ' = ' + str(a * b) + '\r')
        nomFichier.close()
    • L'initialisation du a est loin du while.
    • Initialiser b à la ligne 2 n'a aucun intérêt que la boucle interne soit faite via while ou via for.
    • Evitez d'écraser les variables nomFichier est un argument, pourquoi l'écraser avec le retour d'open?



    D'où:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def enregTables(nomFichier):
     
        f = open(nomFichier, 'a')
     
        a = 0
        while a < 30:
            a+=1
            for b in range(1, 21):
                print(a, 'X', b, '=', a*b, file=f)
     
        f.close()
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 397
    Points
    9 397
    Par défaut
    Tu as besoin de boucler a de 1 à 30, et b de 1 à 20.
    Tu as le choix entre différents outils pour ça, un while ou un parcours de range. Au choix.
    En terme d'esthétique, c'est mieux d'utiliser 2 fois le même outil, puisque c'est exactement le même besoin.
    Ici, on a le sentiment que tu changes d'outil parce que l'outil while ne saurait pas gérer les 2 cas, et l'outil Range non plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for a in range(1,31) :
       for b in range (1,21) :
            # traitement de a, b
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    a=1
    while a <= 30 :
       b=1
       while b<=30 :
          # traitement de a, b
          b+=1
       a+=1
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  14. #14
    Membre régulier Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Points : 98
    Points
    98
    Par défaut
    Vraiment merci à tous pour ces retours très formateurs.
    Je rêve du jour où je vais poster un bout de code et ou l'on va me répondre "tout est OK".
    Débutant en janvier 2024 l'apprentissage d'un langage de programmation et n'étant pas particulièrement doué, soyez indulgents.

  15. #15
    Membre régulier Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Points : 98
    Points
    98
    Par défaut
    C'est de la magie

    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
    def enregTables(nomFichier):
     
        f = open(nomFichier, 'a')
     
        a = 0
        while a < 30:
            a+=1
            for b in range(1, 21):
                print(a, 'X', b, '=', a*b, file=f)
     
        f.close()    
     
    # Programe principal
    fichier =open('tablemult.txt', 'w')
    fichier.close()
    enregTables('tablemult.txt')
    Avec un print() on peut écrire directement dans un fichier. , je suppose que c'est grâce à "file=f".

    J'attendais la sortie dans la console.
    J'ai cru que wiztricks avait fait une erreur

    J'ai encore beaucoup de chemin à parcourir.
    Débutant en janvier 2024 l'apprentissage d'un langage de programmation et n'étant pas particulièrement doué, soyez indulgents.

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 986
    Points
    30 986
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par scalpel Voir le message
    C'est de la magie
    Juste de la factorisation. Un fichier ou une console, finalement, c'est à quelques détails près la même chose (un support de sortie). Donc une seule fonction d'écriture (print) dans laquelle on précise où écrire... et plus bas, dans l'OS, il y a un aiguillage qui déroute soit vers l'écran, soit vers le disque. C'est pour ça qu'on parle de langages "haut niveau", parce que ce qu'on n'a pas à se préoccuper des couches matérielles.
    Et bien entendu l'inverse marche aussi avec write() (on peut écrire sur un écran => sys.stdout.write(...)).
    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]

  17. #17
    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 scalpel Voir le message
    J'attendais la sortie dans la console.
    J'ai cru que wiztricks avait fait une erreur
    Je vous l'ai proposé car c'est quand même plus digeste que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomFichier.write(str(a) + ' X ' + str(b) + ' = ' + str(a * b) + '\r')
    Citation Envoyé par scalpel Voir le message
    J'ai encore beaucoup de chemin à parcourir.
    Ce que vous savez est une chose. Le plus important est ce que vous êtes capable de faire avec. Après, c'est une question d'esthétique/concision/... qui ont une importance relative.

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

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

Discussions similaires

  1. [PDO] Imbriquer 2 boucle "while"
    Par modius dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 03/03/2010, 17h52
  2. optimiser une boucle while imbriquer dans une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/01/2010, 15h35
  3. Boucle while imbriqué, problème de renvoi de valeur
    Par biche1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 17h09
  4. [MySQL] Boucle while imbriqué
    Par agbononamour dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 31/05/2007, 18h09
  5. [Tableaux] Boucle while imbriquer
    Par Le-Cortex dans le forum Langage
    Réponses: 11
    Dernier message: 09/09/2005, 14h22

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