La fonction range() est une fonction très populaire et largement utilisée en Python, en particulier lorsque vous travaillez avec des boucles for et parfois également avec des boucles while. Il est important de connaître et de maîtriser la fonction range(), car cela vous ouvrira de nombreuses possibilités : range() est utilisée dans divers contextes, du contrôle du déroulement d'un programme à la boucle sur des ensembles de données que vous utilisez pour l'analyse de données.
La fonction range() renvoie une séquence de nombres et est immuable, ce qui signifie que sa valeur est fixe. La fonction range() accepte un ou trois arguments au maximum, à savoir start, une valeur stop et une taille step.
range() a été introduit dans Python3. Dans Python2, une fonction similaire, xrange(), était utilisée, mais son comportement était quelque peu différent. Entre autres, xrange() renvoie un objet générateur et consomme moins de mémoire, tandis que range() renvoie une liste ou une séquence de nombres.
L'utilité de la fonction range() réside en partie dans le fait qu'elle ne stocke que les valeurs start, stop et step, ce qui lui permet de consommer moins de mémoire qu'une liste ou un tuple.
Syntaxe de la fonction range() en Python
La fonction range() peut être représentée de trois manières différentes, ou vous pouvez les considérer comme trois paramètres range():
range(stop_value): Par défaut, le point de départ est ici zéro.
range(start_value, stop_value): Ceci génère la séquence en fonction des valeurs de début et de fin.
range(start_value, stop_value, step_size): Il génère la séquence en augmentant la valeur de départ à l'aide de la taille du pas jusqu'à ce qu'elle atteigne la valeur d'arrêt.
Fonction range() en Python. Image par l'auteur.
Nous pouvons également vérifier le type de la fonction range() en encapsulant range() dans type().
my_range =range(100)print(type(my_range))# Expected output: <class 'range'>Propulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Exemples d'utilisation de la fonction range() en Python
Examinons maintenant quelques exemples afin que vous puissiez vous exercer et maîtriser l'utilisation de range().
Utilisation de la fonction range() de Python pour afficher une séquence de nombres
Commençons par un exemple simple consistant à imprimer une séquence de dix nombres, qui couvrira votre premier paramètre range(). Pour ce faire, il vous suffira de transmettre la valeur stop. Étant donné que Python fonctionne avec un indexage basé sur zéro, la séquence commencera par zéro et s'arrêtera au nombre spécifié, c'est-à-dire n-1, où n est le nombre spécifié dans la fonction range().
my_range =range(10)for num in my_range:print(num)# Expected output:# 0# 1# 2# 3# 4# 5# 6# 7# 8# 9Propulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Comme prévu, la cellule ci-dessus renvoie une séquence de nombres commençant par 0 et se terminant par 9.
Utilisation de range() avec list() de Python
Vous pouvez également utiliser la fonction range comme argument d'une liste, ce qui donnerait une liste de nombres dont la longueur est égale à la valeur d'arrêt, comme illustré ci-dessous :
Ajoutons maintenant le troisième paramètre, c'est-à-dire la taille step, à la fonction range(), et observons comment cela affecte le résultat. Veuillez définir le point start à 50, la valeur stop à 1000 et la taille step à 100. La fonction range ci-dessous devrait générer une séquence commençant à 50 et augmentant par incréments de 100.
my_range =range(50,1000,100)print(my_range)# Expected output: range(50, 1000, 100)Propulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Remarque sur la fonction range() et les valeurs flottantes en Python
Il est important de noter que la fonction range() ne peut fonctionner que lorsque la valeur spécifiée est un nombre entier ou un nombre entier. Il ne prend pas en charge les types de données flottants et les types de données chaînes. Cependant, vous pouvez lui transmettre à la fois des valeurs entières positives et négatives. Observons ce qui se produit lorsque vous essayez de transmettre des valeurs flottantes.
for num inrange(0.2,2.4):print(num)# Expected output:# TypeError: 'float' object cannot be interpreted as an integerPropulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Vous vous êtes certainement posé la question au moins une fois en essayant d'inverser une liste chaînée de valeurs entières en langage C. Cependant, en Python, cela peut être réalisé à l'aide de la fonction range() en échangeant simplement les paramètres start et stop et en ajoutant une valeur négative à la taille du pas. N'est-ce pas simple ? Découvrons-le.
for num inrange(100,10,-10):print(num)# Expected output:# 100# 90# 80# 70# 60# 50# 40# 30# 20Propulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Utilisation de range() pour calculer la somme d'une liste
Supposons que vous disposiez d'une liste de valeurs entières et que vous souhaitiez calculer la somme de cette liste en utilisant la fonction range(). Vérifions si cela est réalisable.
Tout d'abord, vous définirez la liste composée de valeurs entières. Veuillez initialiser un compteur dans lequel vous enregistrerez la valeur à chaque itération de la liste et ajouterez également la valeur actuelle de la liste à l'ancienne valeur du compteur.
Pour accéder aux éléments de la liste, veuillez appliquer la fonction range() ion à length de la liste, puis accéder aux éléments de la liste en utilisant l'i d'indexation, qui commence à zéro et s'arrête à la longueur de la liste.
list1 =[2,4,6,8,10,12,14,16,18,20]
count =0for i inrange(len(list1)):
count = count + list1[i]print(count)print('sum of the list:', count)# Expected output:# 2# 6# 12# 20# 30# 42# 56# 72# 90# 110# sum of the list: 110Propulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Utilisation de range() avec itertools pour concaténer une liste
Vous pouvez également concaténer deux ou plusieurs fonctions range() s à l'aide de la classe du package itertools appelée chain. Et pas seulement la fonction range, vous pouvez également concaténer des listes, des tuples, etc. Veuillez noter que la méthode chain renvoie un objet générateur. Pour accéder aux éléments de cet objet générateur, vous pouvez soit utiliser une boucle for, soit utiliser list et lui passer l'objet générateur en argument.
from itertools import chain
a1 =range(10,0,-2)
a2 =range(30,20,-2)
a3 =range(50,40,-2)
final = chain(a1,a2,a3)print(final)#generator object# Expected output: <itertools.chain object at 0xae6330>Propulsé par
Éditeur d’apprentissage par l’exemple, appuyez sur Tab pour entrer. Appuyez sur Echap, puis sur Tab ou Maj+Tab pour sortir.
Vous pouvez appliquer des comparaisons d'égalité entre les fonctions range(). Si deux fonctions range() représentent la même séquence de valeurs, elles sont alors considérées comme égales. Cela dit, deux fonctions range() équivalentes n'ont pas besoin d'avoir les mêmes attributs start, stop et step. Comprenons cela à l'aide d'un exemple.
Comme vous pouvez le constater à partir des résultats ci-dessus, même si les paramètres de la fonction range() ion sont différents, ils sont toujours considérés comme égaux, car la séquence des deux fonctions est identique. Dans le deuxième exemple, la modification de la taille step rend la comparaison False.
Conclusion
Félicitations pour avoir terminé le tutoriel. Il serait peut-être utile d'explorer la fonction range() et de trouver un moyen de la personnaliser afin qu'elle accepte d'autres types de données que les entiers.
Si, après avoir lu cet article, vous estimez qu'il pourrait être utile de vous exercer à utiliser les fonctions Python, nous vous invitons à consulter nos tutoriels Python Fonctions et Guide Python pour débutants : boucles. Pour un parcours d'apprentissage structuré, nous vous invitons à consulter notre cours DataCamp intitulé Writing Efficient Python Code (Écrire du code Python efficace), qui non seulement traite en détail de la fonction range(), mais aborde également des concepts de codage plus généraux afin de vous aider à écrire du code vraiment efficace sans trop de surcharge.
Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Découvrez les fonctions lambda Python, leur utilité et quand les utiliser. Comprend des exemples pratiques et des bonnes pratiques pour une mise en œuvre efficace.
Tutoriel complet d'introduction aux boucles Python. Apprenez et pratiquez les boucles while et for, les boucles imbriquées, les mots-clés break et continue, la fonction range et bien plus encore.
La fonction
range()est une fonction très populaire et largement utilisée en Python, en particulier lorsque vous travaillez avec des bouclesforet parfois également avec des boucleswhile. Il est important de connaître et de maîtriser la fonctionrange(), car cela vous ouvrira de nombreuses possibilités :range()est utilisée dans divers contextes, du contrôle du déroulement d'un programme à la boucle sur des ensembles de données que vous utilisez pour l'analyse de données.Si vous débutez avec Python et souhaitez approfondir vos connaissances, nous vous recommandons de suivre le cours Introduction à la science des données avec Python proposé par DataCamp.
Quelle est la fonction range() en Python ?
La fonction
range()renvoie une séquence de nombres et est immuable, ce qui signifie que sa valeur est fixe. La fonctionrange()accepte un ou trois arguments au maximum, à savoirstart, une valeurstopet une taillestep.range()a été introduit dans Python3. Dans Python2, une fonction similaire,xrange(), était utilisée, mais son comportement était quelque peu différent. Entre autres,xrange()renvoie un objet générateur et consomme moins de mémoire, tandis querange()renvoie une liste ou une séquence de nombres.L'utilité de la fonction
range()réside en partie dans le fait qu'elle ne stocke que les valeursstart,stopetstep, ce qui lui permet de consommer moins de mémoire qu'une liste ou un tuple.Syntaxe de la fonction range() en Python
La fonction
range()peut être représentée de trois manières différentes, ou vous pouvez les considérer comme trois paramètresrange():range(stop_value): Par défaut, le point de départ est ici zéro.range(start_value, stop_value): Ceci génère la séquence en fonction des valeurs de début et de fin.range(start_value, stop_value, step_size): Il génère la séquence en augmentant la valeur de départ à l'aide de la taille du pas jusqu'à ce qu'elle atteigne la valeur d'arrêt.Nous pouvons également vérifier le type de la fonction
range()en encapsulantrange()danstype().Exemples d'utilisation de la fonction range() en Python
Examinons maintenant quelques exemples afin que vous puissiez vous exercer et maîtriser l'utilisation de
range().Utilisation de la fonction range() de Python pour afficher une séquence de nombres
Commençons par un exemple simple consistant à imprimer une séquence de dix nombres, qui couvrira votre premier paramètre
range(). Pour ce faire, il vous suffira de transmettre la valeurstop. Étant donné que Python fonctionne avec un indexage basé sur zéro, la séquence commencera par zéro et s'arrêtera au nombre spécifié, c'est-à-diren-1, oùnest le nombre spécifié dans la fonctionrange().Comme prévu, la cellule ci-dessus renvoie une séquence de nombres commençant par
0et se terminant par9.Utilisation de range() avec list() de Python
Vous pouvez également utiliser la fonction range comme argument d'une liste, ce qui donnerait une liste de nombres dont la longueur est égale à la valeur d'arrêt, comme illustré ci-dessous :
Utilisation des fonctions start, stop et step dans Python range()
Ensuite, examinons une autre méthode pour utiliser la fonction
range(). Veuillez indiquer ici les valeursstartetstop.De même, vous pouvez utiliser la fonction
range()pour imprimer également les valeurs entières négatives.Ajoutons maintenant le troisième paramètre, c'est-à-dire la taille
step, à la fonctionrange(), et observons comment cela affecte le résultat. Veuillez définir le pointstartà 50, la valeurstopà 1000 et la taillestepà 100. La fonction range ci-dessous devrait générer une séquence commençant à 50 et augmentant par incréments de 100.Vous remarquerez qu'il affichera tous les nombres pairs.
Remarque sur la fonction range() et les valeurs flottantes en Python
Il est important de noter que la fonction
range()ne peut fonctionner que lorsque la valeur spécifiée est un nombre entier ou un nombre entier. Il ne prend pas en charge les types de données flottants et les types de données chaînes. Cependant, vous pouvez lui transmettre à la fois des valeurs entières positives et négatives. Observons ce qui se produit lorsque vous essayez de transmettre des valeurs flottantes.Vous vous êtes certainement posé la question au moins une fois en essayant d'inverser une liste chaînée de valeurs entières en langage C. Cependant, en Python, cela peut être réalisé à l'aide de la fonction
range()en échangeant simplement les paramètresstartetstopet en ajoutant une valeur négative à la taille du pas. N'est-ce pas simple ? Découvrons-le.Utilisation de range() pour calculer la somme d'une liste
Supposons que vous disposiez d'une liste de valeurs entières et que vous souhaitiez calculer la somme de cette liste en utilisant la fonction
range(). Vérifions si cela est réalisable.Tout d'abord, vous définirez la liste composée de valeurs entières. Veuillez initialiser un compteur dans lequel vous enregistrerez la valeur à chaque itération de la liste et ajouterez également la valeur actuelle de la liste à l'ancienne valeur du compteur.
Pour accéder aux éléments de la liste, veuillez appliquer la fonction
range()ion àlengthde la liste, puis accéder aux éléments de la liste en utilisant l'id'indexation, qui commence à zéro et s'arrête à la longueur de la liste.Utilisation de range() avec itertools pour concaténer une liste
Vous pouvez également concaténer deux ou plusieurs fonctions
range()s à l'aide de la classe du packageitertoolsappeléechain. Et pas seulement la fonctionrange, vous pouvez également concaténer des listes, des tuples, etc. Veuillez noter que la méthodechainrenvoie un objet générateur. Pour accéder aux éléments de cet objet générateur, vous pouvez soit utiliser une bouclefor, soit utiliserlistet lui passer l'objet générateur en argument.Python range() et comparaisons d'égalité
Vous pouvez appliquer des comparaisons d'égalité entre les fonctions
range(). Si deux fonctionsrange()représentent la même séquence de valeurs, elles sont alors considérées comme égales. Cela dit, deux fonctionsrange()équivalentes n'ont pas besoin d'avoir les mêmes attributsstart,stopetstep. Comprenons cela à l'aide d'un exemple.Comme vous pouvez le constater à partir des résultats ci-dessus, même si les paramètres de la fonction
range()ion sont différents, ils sont toujours considérés comme égaux, car la séquence des deux fonctions est identique. Dans le deuxième exemple, la modification de la taillesteprend la comparaisonFalse.Conclusion
Félicitations pour avoir terminé le tutoriel. Il serait peut-être utile d'explorer la fonction
range()et de trouver un moyen de la personnaliser afin qu'elle accepte d'autres types de données que les entiers.Si, après avoir lu cet article, vous estimez qu'il pourrait être utile de vous exercer à utiliser les fonctions Python, nous vous invitons à consulter nos tutoriels Python Fonctions et Guide Python pour débutants : boucles. Pour un parcours d'apprentissage structuré, nous vous invitons à consulter notre cours DataCamp intitulé Writing Efficient Python Code (Écrire du code Python efficace), qui non seulement traite en détail de la fonction
range(), mais aborde également des concepts de codage plus généraux afin de vous aider à écrire du code vraiment efficace sans trop de surcharge.