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 :

Parcours de matrice


Sujet :

Python

  1. #1
    Candidat au Club
    Parcours de matrice
    Bonjour,

    Je suis débutant en programmation python et j'essaie d'écrire un script me permettant de parcourir une matrice carrée me donnant le numéro de ligne et de colonne de chaque élément.
    Je dois le faire avec 2 boucles while.
    Par exemple pour une matrice 3x3 :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    M=[[3,4,5],[5,6,7]]
    x=len(M)
    y=len(M[0])
    a=1
    b=1
    print('ligne','colonne',sep=' ')
    while(a<=x):
      while(b<=y):
        print('{:4d}'.format(a),'{:4d}'.format(b))
        b=b+1 
      a=a+1


    Mon script donne que la première ligne et je souhaiterais avoir les 2 autres lignes.

    Merci par avance pour votre aide.

  2. #2
    Expert éminent sénior
    Salut,

    Citation Envoyé par Anthony7893 Voir le message
    Mon script donne que la première ligne et je souhaiterais avoir les 2 autres lignes.
    Quand vous avez un problème la commande print est aussi là pour vous permettre d'afficher l'état de vos variables et essayer de comprendre ce qu'il se passe.
    Par exemple ajoutez print('a= ', a) juste après le while (a <= x) devrait vous donner une idée sur votre bévue...

    Vous avez aussi remarqué qu'un tableau en Python commence à l'indice 0...

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

  3. #3
    Candidat au Club
    J'ai mis un peu de temps à trouver mais avec ce nouveau script ça boucle mieux :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    M=[[3,4,5],[5,6,7],[6,7,8]]
    x=len(M)
    y=len(M[0])
    a=1
    print('ligne','colonne',sep=' ')
    while(a<=x):
      b=1
      while(b<=y):
        print('{:4d}'.format(a),'{:4d}'.format(b))
        b=b+1 
      a=a+1

  4. #4
    Expert éminent sénior
    Ben, y a plus qu'à marquer la discussion

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

  5. #5
    Candidat au Club
    Bonjour,
    Pour rebondir sur le thème des matrices, j'ai écrit ce programme permettant de trouver les indices d'une matrice carrée sans sa diagonale et sans redondance des indices :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    M=[[3,4,5,6],[5,6,7,8],[8,9,10,11],[11,12,13,14]]
    a=len(M)
    b=len(M[0])
    k=0.5*(a*(a-1))
    print('ligne','colonne',sep='  ')
    for i in range(a):
      for j in range(b):
        if(i!=j and i<j):
            print('{:4d}'.format(i+1),'{:4d}'.format(j+1))
    print('la taille de la matrice est : ',a,'*',b,sep="")
    print('le nombre de case parcourue est :',"{:.0f}".format(k))

    J'aurais souhaité avoir un peu d'aide pour obtenir le même résultat mais sans la fonction "if" et sans la formule générale k qui donne le nombre de cases parcourues.
    Merci

###raw>template_hook.ano_emploi###