Plage à virgule flottante en Python
La fonction range() intégrée de Python vous permet de générer une séquence d'entiers. Cependant, lorsque vous travaillez avec des nombres à virgule flottante, une plage directe() ne suffira pas.
Problème : taille de pas non entière
Utilisation de la plage( ) avec une virgule flottante comme argument step entraîne une erreur :
<code class="python">>>> range(0.5, 5, 0.5) Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> range(0.5, 5, 0.5) ValueError: range() step argument must not be zero</code>
En effet, range() nécessite que la taille du pas soit un nombre entier.
Solution : Compréhensions de liste basées sur la division
Une façon de créer une plage à virgule flottante consiste à comprendre des listes combinées à une division :
<code class="python">[x / 10.0 for x in range(5, 50, 15)]</code>
Cette compréhension divise chaque élément de la plage(5 , 50, 15) par 10.0 pour produire une séquence à virgule flottante.
Alternative : Map et Lambda
Une autre méthode consiste à utiliser la fonction map() et un lambda expression :
<code class="python">map(lambda x: x / 10.0, range(5, 50, 15))</code>
Ici, l'expression lambda convertit chaque nombre de la plage en flottant en le divisant par 10,0. map() applique cette fonction à tous les éléments de la plage, ce qui donne une séquence à virgule flottante.
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!