Python Fonction range() : Float, List, Exemples de boucles For

Qu'est-ce que le Python Varier?

Python range() est une fonction intรฉgrรฉe disponible avec Python ร  partir de Python(3.x), et il donne une sรฉquence de nombres basรฉe sur l'index de dรฉbut et d'arrรชt donnรฉ. Si l'index de dรฉbut n'est pas donnรฉ, l'index est considรฉrรฉ comme 0, et il incrรฉmentera la valeur de 1 jusqu'ร  l'index d'arrรชt.

Par exemple, range(5) vous affichera les valeurs 0,1,2,3,4. Python range() est une commande trรจs utile et principalement utilisรฉe lorsque vous devez itรฉrer en utilisant la boucle for.

Syntaxe

range(start, stop, step)

Paramรจtres

  • Dรฉmarrer: (facultatif) L'index de dรฉpart est un entier, et s'il n'est pas indiquรฉ, la valeur par dรฉfaut est 0.
  • arrรชter L'index d'arrรชt dรฉcide de la valeur ร  laquelle la fonction de plage doit s'arrรชter. C'est une entrรฉe obligatoire pour la fonction de plage. La derniรจre valeur sera toujours infรฉrieure de 1 ร  la valeur d'arrรชt.
  • รฉtape: (facultatif). La valeur de pas est le nombre par lequel le nombre suivant dans la plage doit รชtre incrรฉmentรฉ, par dรฉfaut, il est 1.

Valeur de retour

La valeur de retour est une sรฉquence de nombres allant de l'index de dรฉbut ร  l'index d'arrรชt donnรฉ.

Python range() Fonction et historique

Python range() a รฉtรฉ introduit ร  partir de la version 3 de Python, avant cela xrange() รฉtait la fonction.

range et xrange() sont utilisรฉs pour produire une sรฉquence de nombres.

Voici la diffรฉrence entre range et xrange() :

intervalle() plagex()
Le range() donne la sรฉquence de nombres et renvoie une liste de nombres. La fonction xrange() donne un objet gรฉnรฉrateur qui doit รชtre bouclรฉ dans une boucle for pour obtenir les valeurs.
Le range() renvoie une liste. xrange() renvoie un objet gรฉnรฉrateur.
La mรฉthode range() utilise plus de mรฉmoire car la liste renvoyรฉe doit รชtre stockรฉe par rapport ร  xrange(). Comme xrange() renvoie un objet gรฉnรฉrateur, il ne donne pas de valeurs instantanรฉment et doit รชtre utilisรฉ dans la boucle for pour obtenir les valeurs.
L'utilisation de la mรฉmoire est plus importante, d'oรน l'exรฉcution du code est lente lorsque l'on travaille sur un รฉnorme ensemble de donnรฉes. L'exรฉcution du code est plus rapide en utilisant xrange().

Utilisation de la plage()

Cet exemple montre comment imprimer les valeurs de 0 ร  9 en utilisant range().

La valeur utilisรฉe dans la plage est 10, donc la sortie est 0 1 2 3 4 5 6 7 8 9

Puisque le dรฉbut n'est pas donnรฉ, le dรฉbut est considรฉrรฉ comme 0 et la derniรจre valeur est donnรฉe jusqu'ร  9. La derniรจre valeur est toujours infรฉrieure de 1 ร  la valeur donnรฉe, c'est-ร -dire stop-1.

for i in range(10):
    print(i, end =" ")

Sortie :

0 1 2 3 4 5 6 7 8 9

Utilisation du dรฉmarrage et de l'arrรชt dans la plage()

Dans le code, la valeur de dรฉpart est 3 et la valeur d'arrรชt est 10. Ici, l'index de dรฉpart est 3, donc la sรฉquence de nombres commencera de 3 jusqu'ร  la valeur d'arrรชt. La derniรจre valeur de la sรฉquence sera infรฉrieure de 1 ร  la valeur d'arrรชt 10-1 = 9.

for i in range(3, 10):
    print(i, end =" ")

Sortie :

3 4 5 6 7 8 9

Utiliser start, stop et step

La valeur de dรฉpart est 3, donc la sรฉquence de nombres commencera ร  3. La valeur d'arrรชt est 10, donc la sรฉquence de nombres s'arrรชtera ร  (10-1), soit 9. Le pas est de 2, donc chaque valeur de la sรฉquence sera รชtre incrรฉmentรฉ de 2. Si la valeur du pas nโ€™est pas donnรฉe, la valeur du pas est par dรฉfaut de 1.

for i in range(3, 10, 2):
    print(i, end =" ")

Sortie :

3 5 7 9

Jusqu'ร  prรฉsent, nous avons vu comment la fonction range() donne la valeur incrรฉmentรฉe pour la valeur d'arrรชt donnรฉe. Essayons maintenant un exemple pour obtenir la valeur dรฉcrรฉmentรฉe dans la plage donnรฉe.

Incrรฉmentation des valeurs dans la plage en utilisant un pas positif.

Le paramรจtre step dans range() peut รชtre utilisรฉ pour incrรฉmenter/dรฉcrรฉmenter les valeurs. Par dรฉfaut, c'est une valeur positive 1. Cela donnera donc toujours des valeurs incrรฉmentรฉes.

La valeur du pas doit รชtre positive au cas oรน vous souhaiteriez des valeurs incrรฉmentรฉes en sortie.

for i in range(1, 30, 5):
    print(i, end =" ")

Sortie :

1 6 11 16 21 26

RevAutre plage : dรฉcrรฉmenter les valeurs en utilisant un pas nรฉgatif

Le paramรจtre step avec une valeur nรฉgative dans range() peut รชtre utilisรฉ pour obtenir des valeurs dรฉcrรฉmentรฉes. Dans l'exemple ci-dessous, la valeur du pas est nรฉgative, la sortie sera donc dรฉcrรฉmentรฉe par rapport ร  la valeur de plage donnรฉe.

for i in range(15, 5, -1):
    print(i, end =" ")

Sortie :

15 14 13 12 11 10 9 8 7 6

La valeur de dรฉpart est 15, la valeur d'arrรชt est 5 et la valeur de pas est un nombre nรฉgatif, c'est-ร -dire -1. Avec les entrรฉes ci-dessus, la fonction range() dรฉcrรฉmentera la valeur de 15 jusqu'ร  ce qu'elle atteigne la valeur d'arrรชt, mais ici la diffรฉrence est que la derniรจre valeur sera stop + 1.

Utilisation de nombres flottants dans Python intervalle()

Travaillons maintenant sur range() en utilisant des nombres ร  virgule flottante.

Exemple :

for i in range(10.5):
    print(i, end =" ")

Dans l'exemple ci-dessus, nous avons utilisรฉ la valeur d'arrรชt comme 10.5.

La sortie est:

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for i in range(10.5):
TypeError: 'float' object cannot be interpreted as an integer

Python donne une erreur car la fonction range() ne prend pas en charge les nombres ร  virgule flottante pour le dรฉmarrage, l'arrรชt et l'รฉtape.

Utiliser la boucle for avec Python intervalle()

Dans cet exemple, nous utiliserons un tableau de nombres et voyons comment utiliser l'itรฉration du tableau ร  l'intรฉrieur de la boucle for en utilisant range()

Exemple :

arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']

for i in range(len(arr_list)):
    print(arr_list[i], end =" ")

Sortie :

MysqlMongodb PostgreSQL Firebase

Dans l'exemple ci-dessus, nous avons utilisรฉ len(arr_list) comme valeur d'arrรชt. La boucle for itรฉrera jusqu'ร  la valeur d'arrรชt, c'est-ร -dire la longueur du tableau et ce sera 4, car nous avons quatre รฉlรฉments dans l'arr_list. La valeur de dรฉpart sera 0 et le pas sera 1. Les valeurs commenceront donc ร  0 et s'arrรชteront ร  3, c'est-ร -dire la longueur du tableau -1, ce qui signifie 4 -1 = 3.

L'utilisation de Python range() sous forme de liste

Dans cet exemple, nous verrons comment utiliser la sortie de la plage sous forme de liste.

Exemple :

print(list(range(10)))

Sortie :

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Vous pouvez voir que la sortie est un format de liste. Il n'รฉtait pas nรฉcessaire de boucler le range() et en utilisant la mรฉthode list(), nous pouvions directement convertir la sortie du format plage au format liste.

Utiliser des caractรจres dans la plage Python()

Jusqu'ร  prรฉsent, nous avons utilisรฉ des entiers dans python range(). Nous avons รฉgalement vu que les nombres ร  virgule flottante ne sont pas pris en charge dans la plage Python. Essayons de voir le rรฉsultat de ce qui se passe lorsque nous utilisons des caractรจres.

Exemple :

for c in range ('z'):
        print(c, end =" ")

Sortie :

Traceback (most recent call last):
  File "python_range.py", line 1, in <module>
    for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer

Il renvoie une erreur indiquant qu'une chaรฎne ne peut pas รชtre interprรฉtรฉe comme un entier.

Pour obtenir la liste des alphabets, vous pouvez personnaliser le code et obtenir le rรฉsultat souhaitรฉ, comme indiquรฉ ci-dessous :

Exemple :

def get_alphabets(startletter, stopletter, step):
    for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
        yield chr(c)

print(list(get_alphabets("a", "h", 1)))

Sortie :

['a', 'b', 'c', 'd', 'e', 'f', 'g']

Comment accรฉder aux รฉlรฉments de plage

Vous pouvez utiliser une boucle for pour obtenir les valeurs de la plage ou utiliser l'index pour accรฉder aux รฉlรฉments de range().

Utiliser la boucle for

Exemple :

for i in range(6):
    print(i)

Sortie :

0
1
2
3
4
5

Utilisation de l'index

L'index est utilisรฉ avec range pour obtenir la valeur disponible ร  cette position. Si la valeur de la plage est 5, pour obtenir la valeur de dรฉpart, vous pouvez utiliser range(5)[0] et la valeur suivante range(5)[1] et ainsi de suite.

Exemple :

startvalue = range(5)[0] 
print("The first element in range is = ", startvalue) 

secondvalue = range(5)[1] 
print("The second element in range is = ", secondvalue) 

lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)

Sortie :

The first element in range is =  0
The second element in range is =  1
The first element in range is =  4

Utiliser la liste()

Cette mรฉthode imprimera tous les รฉlรฉments de range(). En utilisant list(), les รฉlรฉments de range() seront renvoyรฉs au format liste.

Exemple :

print(list(range(10)))

Sortie :

 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Il donne la sortie de liste pour la plage donnรฉe.

Exemple : obtenez des nombres pairs en utilisant range()

Lโ€™utilisation de range() obtiendra la liste des nombres pairs dans la plage donnรฉe en entrรฉe. Les paramรจtres de range() sont, start est 2, stop est 20 et step est 2, donc les valeurs seront incrรฉmentรฉes de 2 et donneront des nombres pairs jusqu'ร  l'arrรชt-2.

Exemple :

for i in range(2, 20, 2):
    print(i, end =" ")

Sortie :

2 4 6 8 10 12 14 16 18

Fusionner les sorties two-range()

Dans cet exemple, nous concatรฉnerons 2 fonctions range() ร  lโ€™aide de la fonction chain() du module itertools.

Exemple :

from itertools import chain 

print("Merging two range into one") 
frange =chain(range(10), range(10, 20, 1))
for i in frange: 
    print(i, end=" ")

Sortie :

Merging two range into one
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Utiliser range() avec NumPy

Le module NumPy a la fonction arange() qui fonctionne et donne une sortie similaire ร  celle de range(). arrange() prend les mรชmes paramรจtres que range().

syntaxe:

arange(start, stop, step)

Pour travailler avec NumPy, suivez les รฉtapes ci-dessous.

ร‰tape 1: Importer le module NumPy

import numpy

Si lors de l'exรฉcution, une erreur indique que le module numpy est introuvable, vous devez installer le module comme indiquรฉ ร  l'รฉtape 2.

ร‰tape 2: Installer NumPy

pip install numpy

ร‰tape 3: Exemple fonctionnel d'arange() utilisant NumPy

import numpy as np 

for  i in np.arange(10):
   print(i, end =" ")        

Sortie :

0 1 2 3 4 5 6 7 8 9

Nombres ร  virgule flottante utilisant NumPy arange()

Il n'est pas possible d'obtenir la sรฉquence ร  virgule flottante en utilisant range(), mais c'est possible en utilisant NumPy arange().

Exemple :

La plage que nous souhaitons est de 0.5 ร  1.5. La valeur sera incrรฉmentรฉe de 0.2.

import numpy as np 

for  i in np.arange(0.5, 1.5, 0.2):
   print(i, end =" ")        

Sortie :

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

Le rรฉsultat que nous obtenons est un peu bizarre, certains nombres flottants sont affichรฉs avec 16 dรฉcimales. Cela se produit en raison de la complexitรฉ du stockage des nombres dรฉcimaux flottants au format binaire. Vous pouvez รฉgalement arrondir les valeurs si nรฉcessaire et les limiter aux dรฉcimales dont vous avez besoin.

Rรฉsumรฉ

  • Python range() est une fonction intรฉgrรฉe disponible avec Python ร  partir de Python(3.x), et il donne une sรฉquence de nombres basรฉe sur l'index de dรฉbut et d'arrรชt donnรฉ. Si l'index de dรฉbut n'est pas donnรฉ, l'index est considรฉrรฉ comme 0, et il incrรฉmentera la valeur jusqu'ร  l'index d'arrรชt.
  • Python range() a รฉtรฉ introduit ร  partir de Python version 3, avant cela, xrange() รฉtait la fonction.
  • Le range() donne la sรฉquence de nombres et renvoie une liste de nombres. La fonction xrange() donne un objet gรฉnรฉrateur qui doit รชtre bouclรฉ dans une boucle for pour obtenir les valeurs.
  • Le paramรจtre step dans range() peut รชtre utilisรฉ pour incrรฉmenter/dรฉcrรฉmenter les valeurs. Par dรฉfaut, c'est une valeur positive 1. Cela donnera donc toujours des valeurs incrรฉmentรฉes.
  • Python donne une erreur pour les nombres ร  virgule flottante car la fonction range() ne prend en charge que les valeurs entiรจres.
  • Les valeurs de range() sont accessibles en utilisant la boucle for, en utilisant index et list()
  • Le module NumPy a la fonction arange() qui fonctionne et donne une sortie similaire ร  celle de range(). arange() prend les mรชmes paramรจtres que range().
  • Il est possible d'obtenir la sรฉquence ร  virgule flottante NumPy arange() qui n'est pas prise en charge en utilisant range().

Rรฉsumez cet article avec :