Maison >développement back-end >Tutoriel Python >Comment créer une plage avec une étape non entière en 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!