Laurentvidal.fr facilite la recherche de réponses à toutes vos questions avec l'aide de notre communauté active. Obtenez des réponses détaillées à vos questions de la part d'une communauté dédiée d'experts sur notre plateforme. Notre plateforme offre une expérience continue pour trouver des réponses fiables grâce à un réseau de professionnels expérimentés.
Sagot :
Bonjour
Avant de commencer je tiens à préciser que c'est un devoir qui peut être difficile à comprendre pour certains mais une fois compris il est relativement simple. Le principal problème ici c'est que ce ne sera pas forcément facile à expliquer, je vais essayer du mieux possible.
Question 4.6
Quand je cite une ligne de code, je commence toujours par ▌pour que la lecture soit un peu plus claire.
Explications matrice en Python
On va essayer d'expliquer chaque ligne avec des vrais mots.
▌ matrice = [3*[0] for i in range(3)]
Cette ligne définit simplement une variable nommée matrice, elle contient un tableau reprenant 3 fois [0] et ce sur une plage (i) s'étalant jusqu'à 3 (donc i = 0 puis i = 1 puis i = 2) [ Pourquoi pas i = 3 ? Je l'explique dans le "À Savoir' ]
▌ 3*[0]
Donnera donc [0, 0, 0], en y rajoutant for i in range(3) on demande de le faire dans une "portée" de 3, donc
▌ [[0, 0, 0], → i = 0
▌ [0, 0, 0], → i = 1
▌ [0, 0, 0]] → i = 2
Cela forme donc une matrice de 3x3, 3 lignes et 3 colonnes.
À savoir
Dans une matrice, un peu comme dans un repère orthonormé en géométrie, chaque "emplacement" à des coordonnées, par exemple:
▌ [[2, 0, 0],
▌ [0, 0, 0],
▌ [0, 0, 0]]
Le 2 est le point [0] [0], donc matrice [0] [0] = 2
C'est ce principe qui va être utilisé dans la boucle for
▌ for i in range(3):
▌ matrice [i] [i] = i + 1
▌ matrice [0] [i] = matrice [0] [i] + i + 1
▌ matrice [i] [2] = matrice [i] [2] + i + 1
Avant de traduire chaque ligne, il faut bien se rappeler qu'en Python (et dans une majorité des langages informatiques) on commence à compter à partir de 0 et les boucles s'arrêtent à n-1, donc ici la boucle
▌ for i in range(3):
Sera traduite comme: pour chaque valeur de i dans une portée de 3, à savoir pour i = 0, i = 1 et i = 2
Explications de chaque ligne de la boucle
On va reprendre chaque ligne de la boucle et identifier son fonctionnement et voir l'évolution que cela a sur la matrice.
▌ matrice [i] [i] = i + 1
Cette ligne va donc toucher, au total, à 3 emplacement de la matrice: [0] [0], [1] [1] et [2] [2] en y attribuant à chaque fois i + 1, donc respectivement : 0+1 (1), 1+1 (2) et 2+1 (3)
► La matrice à ce stade sera:
▌ [[1, 0, 0],
▌ [2, 2, 0],
▌ [0, 0, 3]]
▌ matrice [0] [i] = matrice [0] [i] + i + 1
Cette ligne va donc toucher, au total, à 3 emplacement de la matrice, tous sur la ligne (→) 0 : [0] [0], [0] [1] et [0] [2] en y ajoutant à chaque fois i + 1, donc respectivement : 1+0+1 (1), 0+1+1 (2) et 0+2+1 (3) [J'ai rajouté ici les valeurs initiales car celle de [0][0] a déjà été définie comme 1 à la ligne d'avant]
► La matrice à ce stade sera:
▌ [[2, 2, 3],
▌ [0, 2, 0],
▌ [0, 0, 3]]
▌ matrice [i] [2] = matrice [i] [2] + i + 1
Cette ligne va donc toucher, au total, à 3 emplacement de la matrice, tous sur la colonne (↓) 2 : [0] [2], [1] [2] et [2] [2] en ajoutant à chaque fois i + 1 à la valeur initiale, donc respectivement : 3+0+1 (4), 0+1+1 (2) et 3+2+1 (6)
► La matrice à ce stade sera:
▌ [[2, 2, 4],
▌ [0, 2, 2],
▌ [0, 0, 6]]
Réponse 4.6
Il nous suffit alors de remettre cette matrice sous forme littérale, horizontale, on obtient: [[2, 2, 4],
[0, 2, 2],
[0, 0, 6]]
Question supplémentaire
Tu as posé une question qui ne figure pas sur la feuille, donc je l'ai appellée "supplémentaire"
Comment on a fait pour trouver [3,9] dans ce code :
▌ L = [ 3*x for x in [1,2,3] if x%2 ]
La limite de caractères du site m'empêche de te poster toute l'explication ici, donc je laisse simplement la partie que j'avais écrite sur l'explication des modulo et je t'envois l'explications entières en message privé
Le modulo (%)
Le modulo en informatique est une opération mathématique qui renvoi le reste d'un division écrite, c'est ce qui reste si on chercher un résultat de division entier.
Par exemple:
- 10%3 donne 1, car 10%3 donne 3*3 (9) et 1 de reste
- 7%2 donne 1, car car 7%2 donne 2*3 (6) et 1 de reste
- 4%2 donne 0 car 4%2 donne 2*2 (4) et 0 de reste
Quand cette opération est mise en condition, elle peut être utilisée comme un Booléen, procédé qui n'admet comme réponse que des True ou False, Vrai ou Faux.
Si la valeur du modulo donne zéro (0) cela veut dire qu'il est considéré comme "nul", donc faux.
Au contraire, si la valeur du modulo donne une résultat, il est considéré comme "vérifié", donc vrai
J'espère que toutes ces explications t'aideront, j'ai essayé de faire le plus clair et détaillé possible.
Si tu as des questions sur quelque chose que tu as mal compris et/ou que j'ai mal expliqué tu peux le demander en commentaire !
Bonne journée ;)
Merci de nous avoir fait confiance pour vos questions. Nous sommes ici pour vous aider à trouver des réponses précises rapidement. Nous espérons que vous avez trouvé ce que vous cherchiez. Revenez nous voir pour obtenir plus de réponses et des informations à jour. Votre connaissance est précieuse. Revenez sur Laurentvidal.fr pour obtenir plus de réponses et d'informations.