Python range () Fonction: Float, List, For loop Exemples

Table des matières:

Anonim

Qu'est-ce que la gamme Python?

Python range () est une fonction intégrée disponible avec Python à partir de Python (3.x), et elle donne une séquence de nombres basée sur l'index de démarrage et d'arrêt donné. Dans le cas où l'index de départ 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 donnera les valeurs 0,1,2,3,4. La plage Python () est une commande très utile et principalement utilisée lorsque vous devez itérer en utilisant la boucle for.

Dans ce tutoriel, vous apprendrez:

  • Qu'est-ce que la gamme Python?
  • Syntaxe
  • Python range () Fonction et historique
  • Utilisation de range ()
  • Utilisation de start et stop in range ()
  • Utilisation de start, stop et step
  • Incrémenter les valeurs dans la plage en utilisant un pas positif.
  • Reverse Range: Décrémentation des valeurs en utilisant un pas négatif.
  • Utilisation de nombres flottants dans la plage Python ()
  • Utilisation de la boucle for avec Python range ()
  • Utilisation de Python range () comme liste
  • Utilisation de caractères dans la plage python ()
  • Comment accéder aux éléments de la plage
  • Exemple: obtenir des nombres pairs en utilisant range ()
  • Fusion de sorties à deux plages ()
  • Utilisation de range () avec NumPy

Syntaxe

range(start, stop, step)

Paramètres

  • start: (facultatif) L'index de début est un entier, et s'il n'est pas donné, la valeur par défaut est 0.
  • stop: 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.
  • step: (facultatif) .La valeur de l'étape est le nombre par lequel le numéro suivant doit être incrémenté, par défaut, il est 1.

Valeur de retour:

La valeur de retour est une séquence de nombres à partir de l'index de début à fin donné.

Python range () Fonction et historique

Python range () a été introduit à partir de la version 3 de python, avant que xrange () ne soit la fonction.

Range et xrange () sont tous deux utilisés pour produire une séquence de nombres.

Voici la différence entre range et xrange ():

gamme() xrange ()
La plage () 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.
La plage () renvoie une liste. xrange () renvoie un objet générateur.
La méthode range () utilise plus de mémoire car la liste retourné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 d'autant plus lente que l'exécution du code est lente lorsque vous travaillez sur un vaste ensemble de données. L'exécution du code est plus rapide avec xrange ().

Utilisation de range ()

Cet exemple montre comment imprimer les valeurs de 0 à 9 à l'aide de 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 =" ")

Production:

0 1 2 3 4 5 6 7 8 9

Utilisation de start et stop in range ()

Dans le code, la valeur de départ est 3 et la valeur d'arrêt est 10. Ici, l'indice 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 =" ")

Production:

3 4 5 6 7 8 9

Utilisation de 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) c'est-à-dire 9. Le pas est 2, donc chaque valeur de la séquence sera être incrémenté de 2. Si la valeur du pas n'est pas indiquée, la valeur du pas par défaut est 1.

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

Production:

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émenter les valeurs dans la plage en utilisant un pas positif.

Le pas de paramètre dans range () peut être utilisé pour incrémenter / décrémenter les valeurs. Par défaut, c'est une valeur positive 1. Donc, il donnera toujours des valeurs incrémentées.

La valeur du pas doit être positive si vous voulez des valeurs incrémentées comme sortie.

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

Production:

1 6 11 16 21 26

Reverse Range: Décrémentation des valeurs en utilisant un pas négatif.

Le pas de paramètre 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, donc la sortie sera décrémentée par rapport à la valeur de plage donnée.

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

Production:

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 du 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 la plage Python ()

Travaillons maintenant sur la plage () 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 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.

Utilisation de la boucle for avec Python range ()

Dans cet exemple, nous allons utiliser 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 =" ")

Production:

MysqlMongodb PostgreSQL Firebase

Dans l'exemple ci-dessus, nous avons utilisé len (arr_list) comme valeur d'arrêt. La boucle for va itérer jusqu'à la valeur d'arrêt, c'est-à-dire la longueur du tableau et qui sera de 4, car nous avons quatre éléments dans arr_list. La valeur de départ sera 0 et le pas sera 1. Ainsi, les valeurs commenceront à partir de 0 et s'arrêteront à 3, c'est-à-dire la longueur du tableau -1 signifiant 4 -1 = 3.

Utilisation de Python range () comme liste

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

Exemple:

print(list(range(10)))

Production:

[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 la plage () et en utilisant la méthode list (), nous pouvions convertir directement la sortie de la plage au format de liste.

Utilisation de 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 la sortie de ce qui se passe lorsque nous utilisons des caractères.

Exemple:

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

Production:

Traceback (most recent call last):File "python_range.py", line 1, in 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 la sortie souhaitée 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)))

Production:

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

Comment accéder aux éléments de la 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 ().

Utilisation de la boucle for

Exemple:

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

Production:

012345

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 la plage (5) [0] et la plage de valeurs suivante (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)

Production:

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)

Utilisation de list ()

Cette méthode imprimera tous les éléments de la plage (). En utilisant list (), il retournera les éléments de range () au format liste.

Exemple:

print(list(range(10)))

Production:

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

Il donne la sortie de liste pour la plage donnée.

Exemple: obtenir 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'à stop-2.

Exemple:

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

Production:

2 4 6 8 10 12 14 16 18

Fusion de sorties à deux plages ()

Dans cet exemple, concaténera 2 fonctions range () à l'aide de la fonction itertools module chain ().

Exemple:

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

Production:

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

Utilisation de range () avec NumPy

Le module NumPy a une fonction arange () qui fonctionne et donne une sortie similaire comme 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 : Importez le module NumPy

import numpy

En cas d'exécution, cela donne une erreur indiquant que le module numpy n'est pas trouvé, vous devez installer le module comme indiqué à l'étape 2.

Étape 2 : Installez NumPy

pip install numpy

Étape 3 : Exemple de travail d'arange () en utilisant NumPy

import numpy as npfor i in np.arange(10):print(i, end =" ")

Production:

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 voulons est de 0,5 à 1,5. La valeur sera incrémentée de 0,2.

import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")

Production:

0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998

La sortie que nous obtenons est un peu bizarre, certains des nombres flottants sont affichés avec 16 décimales. Cela se produit en raison de la complexité du stockage des nombres flottants décimaux 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 elle donne une séquence de nombres basée sur l'index de démarrage et d'arrêt donné. Dans le cas où l'index de départ 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 la version 3 de python, avant que xrange () ne soit la fonction.
  • La plage () 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 pas de paramètre dans range () peut être utilisé pour incrémenter / décrémenter les valeurs. Par défaut, c'est une valeur positive 1. Donc, il donnera 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 for-loop, en utilisant index et list ()
  • Le module NumPy a une fonction arange () qui fonctionne et donne une sortie similaire comme range (). Le 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 ().