Laurentvidal.fr vous aide à trouver des réponses à toutes vos questions grâce à une communauté d'experts passionnés. Explorez notre plateforme de questions-réponses pour trouver des solutions fiables grâce à une large gamme d'experts dans divers domaines. Explorez des milliers de questions et réponses fournies par une large gamme d'experts dans divers domaines sur notre plateforme de questions-réponses.
Sagot :
Bonjour
Tu nous a donné cet exercice mais on ne sait pas si tu sais déjà ce qu'est une matrice en Python, comment en créer, etc. Je vais donc essayer d'expliquer tout ça également.
Matrice en Python
Une matrice c'est une suite de valeurs [numériques] qui se placent sous forme de tableau.
En réalité pour créer une matrice :
- On créé une liste, qui va contenir toutes la matrice
- Dans cette liste on ajoute autant de listes que de lignes voulues dans le tableau.
- Ces nouvelles listes ont toutes la même longueur, le même nombre de valeurs.
- Ce sont ces valeurs contenues dans les listes qui définissent les "colonnes" (par exemple la seconde valeur de la première ligne et la seconde valeur de la deuxième ligne sont sur la même "colonne")
En code
Pour créer une matrice il y a plusieurs méthodes mais je te propose une très condensée et efficace.
▌def cree_matrice (l, c):
▌ m = [[0 for i in range(c)] for i in range (l)]
▌ return m
On définit la fonction cree_matrice() qui admet 2 arguments, [tex]l[/tex] pour le nombre de ligne, [tex]c[/tex] pour le nombre de colonnes (= le nombre de valeur par ligne).
La seconde ligne peut-être décortiquée et traduite comme:
▌ m = [[0 for i in range(c)] for i in range (l)]
m sera la matrice, donc une [liste]
▌ m = [[0 for i in range(c)] for i in range (l)]
On créé un sous-tableau qui sera en fait une ligne, avec autant de zéro (donc de futurs emplacements de valeur) que nécessaire, en sachant que cela correspond donc au nombre de colonne.
▌ m = [[0 for i in range(c)] for i in range (l)]
Boucle for qui va créer les sous tableaux, les lignes, autant de fois que demandé (valeur de [tex]l[/tex])
Naviguer dans une matrice
Pour accéder à une valeur de la matrice on va, comme pour les tableaux à double entrée, naviguer avec 2 coordonnées: x et y, ligne et colonne.
/!\ Attention ! En Python quand on navigue dans des listes ou tableaux on compte à partir de 0, pas de 1.
Pour accéder à la valeur de la première ligne et de la 3ième colonne on fera: matrice[0][2]
Ainsi pour modifier une valeur il suffit de poser une égalité
▌matrice[0][2] = 2
La matrice (4x4) passera donc de:
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
à
[[0, 0, 2, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
Calculer somme par ligne
Maintenant qu'on a compris comment fonctionne une matrice ce doit te sembler plus simple.
Il va falloir passer d'abord sur chaque ligne, puis additionner chaque élément de la ligne traitée, ensuite passer à la suivante, etc.
Code ci-joint
Explication par ligne
▌ for i in range(len(matrice)):
Boucle for qui va répéter l'instruction, la fonction len() en Python renvoie la longueur d'une phrase ou d'un tableau, ici ca va renvoyer donc le nombre de ligne dans matrice
range() permet de définir la "portée", c'est à dire le nombre de passage (et optionnellement la cadence) que la boucle doit effectuer.
▌ total = 0
Valeur qui nous servira à calculer le total de chaque ligne
▌ for j in range(len(matrice[i])):
On passe sur chaque ligne et maintenant on doit passer sur chaque valeur de chaque ligne.
matrice[i] permet d'accéder à la liste traitée dans la boucle for du dessus.
▌ total += matrice[i][j]
On ajoute à la variable total le valeur de la cellule correspondant à la ligne i et à la colonne j (gérées par les deux boucles for)
▌ print('Ligne', i, matrice[i], '- Somme:', total)
On envoie dans la console le total de chaque ligne, structuré comme:
▌Ligne x [x, x, x] - Somme: x
Si ton exercice nécessite de stocker ses totaux
il faudra juste ne pas finir sur un print() mais plutôt entrer la valeur total dans une nouvelle variable liste créée en amont, dans laquelle tous les totaux seraient stockés.
Voilà,
J'espère que tout cela t'as aidé, si besoin les commentaires sont là pour demander plus d'explications.
Bonne journée ;)
Merci de votre visite. Nous nous engageons à fournir les meilleures informations disponibles. Revenez quand vous voulez pour plus. Merci de votre visite. Notre objectif est de fournir les réponses les plus précises pour tous vos besoins en information. À bientôt. Visitez Laurentvidal.fr pour obtenir de nouvelles et fiables réponses de nos experts.