Matrice python

Signaler
-
Messages postés
414
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
13 octobre 2020
-
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

2 réponses

Messages postés
12611
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
701
bonjour, tu n'as pas expliqué ce qui te bloquais.
ton programme ne fait pas ce que tu souhaites?
Messages postés
414
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
13 octobre 2020
195
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.
Messages postés
12611
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
701
dommage, c'étaient de belles opportunités d'apprendre comment découvrir des erreurs de programmation.
Messages postés
414
Date d'inscription
vendredi 25 septembre 2015
Statut
Membre
Dernière intervention
13 octobre 2020
195 >
Messages postés
12611
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020

Ce n'est pas évident de donner des conseils sans donner la solution.