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 :

Table de multiplication


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut Table de multiplication
    Bonjour,

    J'aimerais écrire une table de multiplication avec en sortie un affichage du type :

    1 2 3 4 5

    2 4 6 8 10

    3 6 9 12 15

    4 8 12 16 20

    5 10 15 20 25

    Cependant je n'arrive pas du tout à avoir cet affichage en sortie....Mon affichage se fait en une seule colonne au lieu des 5 souhaitées. Quelqu'un peut-il m'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def multi(n):
        result=0
        print (("Table de multiplication de 1 à "+str(n)).center(50,"-"))
        for i in range(1,n+1):
            for j in range(1,n+1):
                result=i*j
                print result
     
    n=5
    multi(n)
    Merci d'avance !

  2. #2
    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,

    La question serait plutôt "comment dire à print de ne pas aller à la ligne?".
    Avec Python2, c'est la ',' de fin qui fait la magie (rien de magique en fait, c'est écrit pour...) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> for i in range(5): 
    ...    print i,
    ...
    0 1 2 3 4
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Ah ok, je ne savais pas que la virgule en fin de ligne pouvait servir à ça...merci. Cependant je me retrouve avec les résultats affichés en ligne or je voudrais lignes et colonnes....En gros là par exemple pour ma table de 1 à 4 il m'affiche : 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 seulement j'aimerais qu'il retourne a la ligne toutes les "n" valeurs....

    pour obtenir :

    1 2 3 4
    2 4 6 8
    3 6 9 12
    4 8 12 16

    un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if result%n==0:
     va a la ligne
    mais je ne sais pas comment l"écrire

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    yeah j'ai trouvé ! Voici le code final, merci pour l'aide

    Il me manquait le séparateur "split" à incrémenter à chaque boucle de "i"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # -*- coding: cp936 -*-
    def multi(n):
        result=0
        split=0
        print (("Tables de multiplication de 1 à "+str(n)).center(50,"-")+"\n")
        for i in range(1,n+1):
            split+=n
            for j in range(1,n+1):
                result=i*j
                print result,
                if result%split==0:
                    print"\n"
    n=14
    multi(n)

  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,

    Réfléchissez plutôt à la structure de votre boucle imbriqué.
    C'est sur qu'en écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> for i in range(3):
    ...     for j in range(3):
    ...         print j,
    ...
    0 1 2 0 1 2 0 1 2
    >>>
    tout est "à la ligne". Mais après "print j," le block d'instructions "for i..." continue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> for i in range(3):
    ...     for j in range(3):
    ...         print j,
    ...     print
    ...
    0 1 2
    0 1 2
    0 1 2
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 172
    Points : 163
    Points
    163
    Par défaut
    Pfff en effet, je suis vraiment stupide parfois

    Du coup pas besoin de "split"....

    Code Fini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    def multi(n):
        result=0
        print (("Tables de multiplication de 1 à "+str(n)).center(50,"-")+"\n")
        for i in range(1,n+1):
            for j in range(1,n+1):
                result=i*j
                print result,
            print "\n"
    n=14
    multi(n)
    Merci pour les explications !

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

Discussions similaires

  1. [ADO.NET] remplaire datagrid "depuis table relation multiple"
    Par hoda dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/12/2006, 08h49
  2. Réponses: 1
    Dernier message: 29/09/2006, 10h43
  3. table de multiplication
    Par spacergirly dans le forum Excel
    Réponses: 3
    Dernier message: 21/09/2006, 17h24
  4. [T-SQL] exécuter un ALTER TABLE/COLUM multiple
    Par elderion dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/10/2005, 16h06

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