Maison >développement back-end >Tutoriel Python >Comment créer une plage avec une étape non entière en Python ?

Comment créer une plage avec une étape non entière en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-11 15:35:11535parcourir

How to Create a Range with a Non-Integer Step in Python?

Comment parcourir une plage non entière

Lorsque vous essayez de créer une plage avec une valeur de pas décimal à l'aide de range(), vous peut rencontrer une erreur indiquant que l'argument step ne peut pas être nul. Cela se produit parce que range() attend des valeurs entières pour les paramètres de démarrage, d'arrêt et d'étape.

Solution utilisant le linspace de NumPy

Pour contourner ce problème et créer une plage avec une valeur de pas non entière, pensez à utiliser la fonction linspace de NumPy. linspace prend le nombre de points à renvoyer et vous permet de spécifier si vous souhaitez ou non inclure le bon point de terminaison. Par exemple :

import numpy as np

# Create a range from 0 to 1 with 11 equally spaced points (including 1)
points = np.linspace(0, 1, 11)

# Create a range from 0 to 1 with 10 equally spaced points (excluding 1)
points_excl = np.linspace(0, 1, 10, endpoint=False)

Solution utilisant la plage de NumPy

Bien que l'utilisation d'une valeur de pas à virgule flottante ne soit généralement pas recommandée en raison d'erreurs d'arrondi potentielles, NumPy fournit la plage fonction spécialement conçue à cet effet. Attention cependant, des erreurs d'arrondi peuvent quand même survenir :

import numpy as np

# Create a range from 0.0 to 1.0 with a step value of 0.1
points = np.arange(0.0, 1.0, 0.1)

# Example of a potential rounding error using arange
points = np.arange(1, 1.3, 0.1)  # Expected length: 3, Actual length: 4

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