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 ?

Pourquoi devrais-je éviter les étapes décimales dans « range() » de Python et comment puis-je obtenir des résultats similaires ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-12 20:56:10479parcourir

Why Should I Avoid Decimal Steps in Python's `range()` and How Can I Achieve Similar Results?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn