ITER |
Itération |
---|---|
Python |
Syntaxe
iter(o) |
iter(o,sentinel) |
Paramètres
Nom | Description |
---|---|
o | Ce paramètre permet d'indiquer l'objet dont l'itérateur doit être créer. |
sentinel | Ce paramètre optionnel permet d'indiquer la fin d'une séquence. |
Description
Cette fonction permet de demander l'itération d'un objet.
Algorithme
MODULE ITER(obj, sentinel=None) SI sentinel est None ALORS * Cas d'un seul paramètre SI obj est itérable (exemple: liste, chaîne,..) ALORS RETOURNE un itérateur sur obj SINON Lancer une erreur TypeError indiquant que l'objet n'est pas itérable FIN SI SINON * Cas avec deux paramètres SI obj est un callable (fonction ou objet appelable) ALORS RETOURNE un itérateur personnalisé : À chaque appel de next() sur cet itérateur, appeler obj. Si la valeur retournée par obj est égale à sentinel, lever StopIteration pour arrêter l'itération. Sinon, retourner la valeur obtenue. SINON Lancer une erreur TypeError indiquant que le premier paramètre doit être callable FIN SI FIN SI |
Remarques
- En générale, ces objets sont utiles lorsqu'ils sont combinés avec des boucles comme pour la for ou while.
- Le premier paramètre est interprété très différemment selon la présence du second paramètre. Sans deuxième paramètre, l'objet doit être un objet de collection prenant en charge le protocole d'itération (la méthode __iter__()), ou il doit prendre en charge le protocole de séquence (la méthode __getitem__() avec des paramètres entiers commençant à 0). S'il ne prend en charge aucun de ces protocoles, l'exception TypeError est déclenchée. Si le deuxième paramètre, sentinelle, est donné, alors le paramètre o doit être un objet appelable. L'itérateur créé dans ce cas appellera le o sans paramètre pour chaque appel à sa méthode next(); si la valeur retournée est égale à sentinelle, StopIteration sera augmentée, sinon la valeur sera retournée.
Dernière mise à jour : Mercredi, le 14 septembre 2016