exercice python

poule renard vipere

a marqué ce sujet comme résolu.

Bonjour, j’ai un exercice python à faire sauf que je n’y arrive pas du tout : quelqu’un pourrait-il m’aider? Partie 1 énoncé : https://html.scribdassets.com/46hayiperk7fjqr3/images/208–76386a611f.jpg Partie 2 énoncé : https://html.scribdassets.com/46hayiperk7fjqr3/images/209–2ba978d2bc.jpg je vous joins ici des photos de l’énoncé : c’est la question 3 qui me bloque pour l’instant : je n’arrive pas à compter le nombre d’occurences de 0,1 et 2 dans une matrice n dimensionnelle puisque mon programme me met des erreurs ou n’aboutit jamais!!!

Bonjour,

Je t’invite à lire ce billet et de revenir vers nous en le suivant afin que l’on puisse vraiment t’aider.

Bonne semaine

+0 -0

Bonjour,

Est-ce que tu pourrais nous donner les erreurs en question et nous décrire ce que fait ton programme lorsqu’il n’aboutit jamais (ce qu’il a le temps de traiter avant de partir en boucle infinie).

Il nous faudrait aussi pourvoir étudier ton code pour t’aider dessus.

Salut,
Pour qu’on t’aide il faut que tu nous aides.
Pour cela tu peux, en plus des énoncés nous donner le cheminement de ta réflexion, ce que tu as déjà essayé, le code que tu as fait jusqu’à maintenant, les erreurs que tu as dans ta console, ou le comportement du code qui ne te conviens pas.

Je pense que @ache mentionne ce billet dans son message.

+0 -0

Bonjour,

Cet exercice semble être tourné vers l’utilisation de numpy, et la question la plus interessante pour moi est la question '0' :

Ecrire une fonction grille(n) qui renvoie un tableau numpy carré de n lignes et n colonnes contenant, dans chaque case, une liste vide.

J’utilise numpy de temps en temps mais toujours avec des valeurs numériques, j’ai du chercher un bon moment avant de parvenir au bon résultat, mais la façon de faire ne me semble pas très correcte, j’utlise une astuce qui consiste a créer un tableau numpy à partir de listes de taille différentes afin de forcer le type List, voyez vous une méthode plus propre ?

import numpy as np

def grille(n):
    l = np.array([["force la création d'objets Liste"]]+[[] for _ in range(n*n-1)],dtype=object)
    l[0].pop()
    return l.reshape(n, n)

Je ne connais pas bien numpy, je pensais que ce serait possible avec un np.full((3, 3), [], dtype=list) mais ça ne fonctionne pas parce qu’il essaie de récupérer des valeurs depuis la liste en question (et non de l’utiliser telle quelle).

Je pensais m’en tirer avec np.empty et fill mais au final la liste donnée à fill serait dupliquée dans chaque élément, et je n’avais pas envie d’itérer sur chaque case pour réinitialiser la valeur.

Mais j’ai trouvé une solution sur le net à l’aide de frompyfunc :

np.frompyfunc(list, 0, 1)(np.empty((3, 3), dtype=object))

Ça crée un objet Numpy qui se comporte comme une fonction vectorisée et qui permet donc de convertir un array vide en array de listes.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte