17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

... for i in range(6):<br />

... yield i + 1<br />

...<br />

>>> for element in iterable():<br />

... print(element)<br />

...<br />

début de boucle<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

Structuration du code<br />

CHAPITRE 5<br />

L’interpréteur utilise la fonction à chaque itération en mémorisant son état, la directive<br />

yield constituant en quelque sorte un return avec point de sauvegarde de l’état<br />

des variables locales et de l’endroit où le code de la fonction a été quitté. Le prochain<br />

appel à la fonction reprendra à cet endroit.<br />

Generator expression (genexp)<br />

Il est possible d’utiliser une notation abrégée pour créer un generator, à l’aide d’une<br />

generator expression.<br />

Ces expressions sont d’une forme équivalente aux list comprehensions :(expression for<br />

expression in sequence [if test]), et renvoient un objet generator.<br />

Exemples de generator expression<br />

>>> genexp = (i for i in range(5) if i % 2 == 0)<br />

>>> genexp.next()<br />

0<br />

>>> genexp.next()<br />

2<br />

>>> genexp.next()<br />

4<br />

>>> genexp.next()<br />

Traceback (most recent call last):<br />

File "", line 1, in ?<br />

StopIteration<br />

>>> genexp = (i for i in range(5) if i % 2 == 0)<br />

>>> for element in genexp:<br />

... print(element)<br />

...<br />

0<br />

2<br />

4<br />

149

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!