sur le fonctionnement des générateurs
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):
Code:
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) |
Le résultat est le suivant :
Citation:
[25, 36, 49, 64]
0
36
0
64
[None, 36, None, 64]
Je ne comprends pas pourquoi j'obtiens des 'None' au lieu de '0'
Quelle est l'explication ?
Merci par avance