Maison >développement back-end >Tutoriel Python >Comment créer des plages à virgule flottante avec range() en Python ?
Itération à virgule flottante avec range()
En Python, la fonction range() génère commodément une séquence d'entiers. Cependant, il ne prend pas en charge directement les nombres à virgule flottante. Cet article aborde la question de savoir comment créer une séquence de type plage pour les flottants en Python.
La fonction standard range() accepte des valeurs entières comme arguments de début, d'arrêt et d'étape. Toute tentative d'utilisation d'arguments à virgule flottante pour le paramètre step génère une ValueError. En effet, le paramètre step représente l'incrément entre les éléments de la séquence et il ne doit pas être nul.
Approches équivalentes pour les plages à virgule flottante
Pour obtenir un flottement -itération de points à l'aide de range(), une approche consiste à mettre à l'échelle les arguments par un facteur de 10. Par exemple :
<code class="python">>>> range(0.5, 5, 1.5) # Invalid: range() step argument must not be zero [0, 1, 2, 3, 4]</code>
<code class="python">>>> [x / 10.0 for x in range(5, 50, 15)] [0.5, 1.5, 2.5, 3.5, 4.5]</code>
En multipliant la valeur du pas par 10, nous créons essentiellement une séquence de entiers puis divisez chaque élément par 10 pour obtenir la séquence à virgule flottante.
Une autre approche consiste à utiliser les fonctions lambda et la fonction map() :
<code class="python">>>> map(lambda x: x / 10.0, range(5, 50, 15)) <map object at 0x10440b0e8></code>
La fonction lambda transforme chaque entier dans la plage dans sa valeur à virgule flottante correspondante, et map() applique cette fonction à chaque élément de la séquence. Le résultat est un objet cartographique qui peut être itéré pour produire la plage à virgule flottante souhaitée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!