Tutoriel de range ( )
DESCRIPTION.
Créer un objet séquence, ou collection, non modifiable, correspondant à une suite numérique.
SYNTAXE.
RNG_Suite = range ( debut , fin , pas )
RNG_Suite = ⇨ Variable qui recevra l'état de la suite [ optionnel ]
range ( ) ⇨ création d'une instance de range ( ) [ OBLIGATOIRE ]
debut ⇨ première valeur de la suite [ OBLIGATOIRE ]
fin ⇨ première valeur exclus de la suite [ OBLIGATOIRE ]
pas ⇨ espacement entre deux valeur [ optionnel ]
RNG_Suite = range ( fin )
RNG_Suite = ⇨ Variable qui recevra l'état de la suite [ optionnel ]
range ( ) ⇨ création d'une instance de range ( ) [ OBLIGATOIRE ]
fin ⇨ première valeur exclus de la suite [ OBLIGATOIRE ]
REMARQUES.
debut, fin et pas doivent être des int ( ).
Python gère de nombreux types d'objets_variables. Certains sont des collections de valeurs regroupées au sein d'un même objet_variable. L'un de ces objet_variable est le range ( ). On peut définir simplement un range ( ) comme un tuple ( ) contenant la première et la dernière valeur de la suite, l'espacement entre les valeurs. Leur utilisation permet une gain dans l'utilisation de la mémoire.
La méthode range ( ) retourne un objet de type range.
Les variables globales de type range ( ) sont identifiées dans le site par : RNG_.
Voir les conventions sur les variables utilisées dans ce site ...
CREER UNE SUITE NUMERIQUE.
Pour créer une suite numérique, il faut utiliser le constructeur de classe range ( ). Les valeurs debut, fin et pas doivent obligatoirement être des int ( ). Les valeurs retournées par une suite numérique seront donc toujours des int ( ). debut est toujours le premier élément de la suite numérique (index 0) alors que fin n'est jamais inclus dans la suite numérique.
RNG_Suite = range ( 7 , 48 , 4 )
print ( RNG_Suite ) retourne range(7, 48, 4)
print ( type ( RNG_Suite ) ) retourne <class 'range'>
print ( len ( RNG_Suite ) ) retourne 11
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne 7 11 15 19 23 27 31 35 39 43 47
RNG_Suite = range ( -12 , 8 , 3 )
print ( RNG_Suite ) retourne range(-12, 8, 3)
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne -12 -9 -6 -3 0 3 6
RNG_Suite = range ( -32 , -8 , 5 )
print ( RNG_Suite ) retourne range(-32, -8, 5)
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne -32 -27 -22 -17 -12
Si pas est absent sa valeur défaut vaut 1.
RNG_Suite = range ( 3 , 9 )
print ( RNG_Suite ) retourne range(3, 9)
print ( type ( RNG_Suite ) ) retourne <class 'range'>
print ( len ( RNG_Suite ) ) retourne 6
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne 3 4 5 6 7 8
Si debut est supérieur à fin, pour obtenir une suite à rebours, alors pas doit être une valeur négative, sinon la suite sera vide.
RNG_Suite = range ( 17 , 6 , 2 )
print ( RNG_Suite ) retourne range(17, 6, 2)
print ( len ( RNG_Suite ) ) retourne 0
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne ...
RNG_Suite = range ( 17 , 6 , -2 )
print ( RNG_Suite ) retourne range(17, 6, -2)
print ( len ( RNG_Suite ) ) retourne 6
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne 17 15 13 11 9 7
Utilisé avec un unique paramètre, Python considèrent qu'il s'agit de fin. debut vaudra 0 et pas vaudra 1.
RNG_Suite = range ( 7 )
print ( RNG_Suite ) retourne range(0, 7)
print ( type ( RNG_Suite ) ) retourne <class 'range'>
print ( len ( RNG_Suite ) ) retourne 7
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne 0 1 2 3 4 5 6
LECTURE D'UNE SUITE NUMERIQUE.
Les séquences numériques range ( ) accepte les tests d'appartenances pour les valeurs.
RNG_Suite = range ( 123 , 530 , 45 )
for kvaleur in RNG_Suite : print ( kvaleur , end = " " ) retourne 123 168 213 258 303 348 393 438 483 528
print ( 123 in RNG_Suite ) retourne True
print ( 212 in RNG_Suite ) retourne False
print ( 303 in RNG_Suite ) retourne True
print ( 401 in RNG_Suite ) retourne False
print ( 510 in RNG_Suite ) retourne False
La méthode .index ( ) permet de connaitre le rang (index) d'une valeur présente dans la suite numérique,
RNG_Suite = range ( 123 , 530 , 45 )
print ( RNG_Suite.index ( 348 ) ) retourne 5
print ( RNG_Suite.index ( 349 ) ) retourne ValueError: 349 is not in range
La méthode enumerate ( ) permet de connaitre l’associassions des valeurs avec leur index.
RNG_Suite = range ( 123 , 530 , 45 )
for kelement in enumerate ( RNG_Suite ) : print ( kelement )
retourne
(0, 123)
(1, 168)
(2, 213)
(3, 258)
(4, 303)
(5, 348)
(6, 393)
(7, 438)
(8, 483)
(9, 528)
Il est possible d'utiliser le slicing avec des objets range ( ), mais attention car ce sont des objets range ( ) qui seront retournés et non les valeurs présentes sur cette plage d'index.
RNG_Suite = range ( 123 , 530 , 45 )
print ( RNG_Suite [ 3 ] ) retourne 258
print ( RNG_Suite [ 1 : 4 ] ) retourne range(168, 303, 45)
print ( RNG_Suite [ : 2 ] ) retourne range(123, 213, 45)
print ( RNG_Suite [ 2 : ] ) retourne range(213, 573, 45)
print ( RNG_Suite [ : : -1 ] ) retourne range(528, 78, -45)
Les suites numériques range ( ) sont surtout utilisées dans la création d'autre objets-séquence de Python tel que les list ( ) et les tuple ( ), et dans le boucles for ... in ... .
MÉTHODES SPÉCIFIQUES AUX OBJETS RANGE ( ).
index ( ) : retourne l'index de l'item ayant une certaine valeur.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.