Maison >développement back-end >Tutoriel Python >Pourquoi devrais-je éviter les étapes décimales dans « range() » de Python et comment puis-je obtenir des résultats similaires ?
Utilisation de valeurs de pas décimaux dans Range() avec prudence
La fonction range() en Python est couramment utilisée pour parcourir une séquence de Nombres. Cependant, lorsque vous essayez d'utiliser une valeur de pas décimal, telle que 0,1, vous pouvez rencontrer une erreur indiquant que l'argument de pas ne peut pas être nul.
Évitez d'utiliser directement les valeurs de pas décimales
Il est fortement déconseillé d'utiliser des valeurs décimales directement dans range(). Les erreurs d'arrondi en virgule flottante peuvent conduire à des résultats incorrects, en particulier lors de l'utilisation de petites valeurs de pas. Au lieu de cela, il est recommandé d'exprimer l'intervalle d'itération en termes du nombre de points souhaité.
Utilisation de la fonction linspace() de NumPy
La bibliothèque NumPy fournit le linspace( ), qui permet de spécifier un nombre de points et les extrémités de la plage. En utilisant linspace(), vous pouvez obtenir les résultats suivants :
import numpy as np # Get 11 equally spaced points between 0 and 1, including both endpoints np.linspace(0, 1, 11) # Get 10 equally spaced points between 0 and 1, excluding the right endpoint np.linspace(0, 1, 10, endpoint=False)
Utiliser la fonction arange() de NumPy (avec prudence)
Si vous avez réellement besoin d'un flottant- valeur de pas de point, la fonction arange() de NumPy peut être utilisée. Cependant, sachez que les erreurs d'arrondi en virgule flottante peuvent toujours causer des problèmes, comme le montre l'exemple suivant :
import numpy as np np.arange(0.0, 1.0, 0.1)
Dans ce cas, en raison d'erreurs d'arrondi, arange() produit à la place un tableau de longueur 4. du tableau de longueur 3 attendu. Par conséquent, il est important d'utiliser la fonction linspace() si la précision est cruciale.
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!