Bonjour,
J'essaye de comprendre le comportement des générateurs notamment la possibilité de lui envoyer une nouvelle valeur.
Voici mon code (qui ne doit pas être très utile):
Le résultat est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 def generateur(inf, sup): """renvoyer une liste qui transforme les chiffres impairs d'une autre liste en zéros """ liste = [x * x for x in range(inf,sup)] print(liste) liste2 = list() for i,j in enumerate(liste): nvl_val = 0 if j%2==1 : j = (yield nvl_val) liste2.append(j) else : yield j liste2.append(j) print(liste2) a = generateur(5,9) for i in a: print(i)
Je ne comprends pas pourquoi j'obtiens des 'None' au lieu de '0'[25, 36, 49, 64]
0
36
0
64
[None, 36, None, 64]
Quelle est l'explication ?
Merci par avance
Partager