Matrice python

- - Dernière réponse : quent217
Messages postés
330
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
10 novembre 2019
- 10 nov. 2019 à 16:37
Bonjour,

je vais par la présente vous demandez de l'aide sur cet exercice que je ne comprends pas tres bien.

Écrire une fonction en python modifierMat(matrice) qui permet de modifier seulement les nombres paires par leurs racine carrée. Cette fonction prend en paramètre une matrice. Une matrice est une liste à deux dimensions. Tester la fonction modifierMat.

Exemple :

>>> matrice = [[5, 3, 8], [7, 4, 6], [1, 9, 2], [8, 7, 1], [3, 2, 9], [4, 6, 5]] >>> modifierMat(matrice) >>> matrice [[5, 3, 2.8284271247461903], [7, 2.0, 2.449489742783178], [1, 9, 1.4142135623730951], [2.8284271247461903, 7, 1], [3, 1.4142135623730951, 9], [2.0, 2.449489742783178, 5]]

Voici ce que j'ai pu faire mais je bloque depuis:

from math import sqrt

def modifierMat(matrice):
    
    matrice=[]
    for i in range(len(matrice)):
        for j in range(len(matrice[i])):
                       if (j%2==0):
                           matrice=sqrt.matrice[j]
                       return matrice
mat = [[5, 3, 8], [7, 4, 6], [1, 9, 2], [8, 7, 1], [3, 2, 9], [4, 6, 5]]
print(modifierMat(mat))
                       
                       




Configuration: Windows / Edge 18.17763
Afficher la suite 

2 réponses

Messages postés
8889
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 novembre 2019
449
0
Merci
bonjour, tu n'as pas expliqué ce qui te bloquais.
ton programme ne fait pas ce que tu souhaites?
Commenter la réponse de yg_be
Messages postés
330
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
10 novembre 2019
112
0
Merci
Bonjour,
pour lire le contenu d'une matrice ou la modifier, il faut utiliser la notation avec des crochets. Dans ton cas
matrice[i][j]
.
La fonction sqrt doit être utilisée avec des parenthèses à la place du point.
if (matrice[i][j]%2==0):
    matrice[i][j]=sqrt(matrice[i][j])

Tu devrais peut-être relire ton cours en ce qui concerne la syntaxe de python.

De plus, il ne faut pas affecter une liste vide à la matrice au début de la fonction sinon tu supprimes ce qui a été donné en paramètre.
Et pour finir le return doit être placer après les boucles et non pas à l'intérieur sinon la fonction va se terminer après avoir modifier la premier élément.

Bonne journée.
yg_be
Messages postés
8889
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 novembre 2019
449 -
dommage, c'étaient de belles opportunités d'apprendre comment découvrir des erreurs de programmation.
quent217
Messages postés
330
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
10 novembre 2019
112 > yg_be
Messages postés
8889
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 novembre 2019
-
Ce n'est pas évident de donner des conseils sans donner la solution.
Commenter la réponse de quent217