On est souvent amené à répéter plusieurs fois un bloc d’instructions en fonction des valeurs successives d’un compteur. Une façon simple (mais c’est loin d’être la seule) d’indiquer la plage des valeurs possibles de ce compteur est d’utiliser un intervalle (ou encore range dans le langage Python) :
-
la syntaxe est
range(a,b,h)où a, b, h sont des valeurs entières. -
la valeur a (le
débutde l’intervalle) est facultative, et par défaut elle vaut 0.
si a est présent, la valeur h (lepasde l’intervalle) est facultative, et vaut 1 par défaut.
L’intervalle range(a,b,h) est formé des valeurs {x=a+kh}, avec {k} entier tel que {\left\{\begin{array}{ll}a\le x\lt b&\text{si }a\lt b\\[4pt]b\lt x\le a&\text{si }b\lt a\end{array}\right.}.
-
retenons que la valeur b est toujours exclue de l’intervalle
range(a,b,h)
L’intervalle range(a,b,h) doit être vu comme une succession de valeurs, en partant de a, et en progressant vers b (sans jamais l’atteindre !), dans le sens croissant ou décroissant selon que le pas est positif ou négatif. Ainsi :
-
l’intervalle
range(7)représente la succession des valeurs 0, 1, 2, 3, 4, 5, 6 -
l’intervalle
range(1,7)représente la succession des valeurs 1, 2, 3, 4, 5, 6 -
l’intervalle
range(1,7,2)représente la succession des valeurs 1, 3, 5 -
l’intervalle
range(7,2)est vide (ici le pas a sa valeur par défaut, c’est-à-dire 1) -
l’intervalle
range(7,2,-1)représente la succession des valeurs 7, 6, 5, 4, 3 -
si a ≤ b, l’intervalle
range(a,b)est formé de b − a valeurs (il est notamment vide si a = b)
Pour tester l’appartenance d’une valeur à un intervalle, on utilise le mot réservé in (résultat True ou False).
Attention : les intervalles dont il est question ici sont des échantillons de valeurs entières, ce ne sont donc pas des intervalles au sens mathématique du terme. Voici quelques exemples :
|
1 2 3 4 5 6 7 |
>>> r = range(100,1000,2) # intervalle des entiers pairs, de 100 inclus à 1000 exclu. >>> 100 in r # 100 fait-il partie de l'intervalle, réponse oui. True >>> 1000 in r # 1000 fait-il partie de l'intervalle, réponse non. False >>> 513 in r # 513 fait-il partie de l'intervalle, réponse non. False |
Retour à l’accueil du cours Python/Numpy
Sommaire du chapitre 3
- Entrée au clavier (input) et affichage à l’écran (print)
- Nécessité de délimiter des blocs d’instructions
- L’importance fondamentale de l’indentation en Python
- Branchements conditionnels if…elif…else…
- Expressions conditionnelles
- Répétitions conditionnelles (while)
- Notion d’intervalle
- Répétitions inconditionnelles (boucles for)
- L’instruction pass