Maison > développement back-end > Tutoriel Python > Pourquoi la « plage (début, fin) » de Python exclut-elle la valeur « fin » ?

Pourquoi la « plage (début, fin) » de Python exclut-elle la valeur « fin » ?

Mary-Kate Olsen
Libérer: 2024-12-02 22:00:17
original
344 Les gens l'ont consulté

Why Does Python's `range(start, end)` Exclude the `end` Value?

Range(start, end) : Pourquoi l'exclusion de la valeur de fin ?

La fonction range(start, end) de Python est une fonction couramment utilitaire utilisé qui génère une séquence de nombres. Cependant, un aspect particulier de range() est qu'il exclut la valeur finale. Par exemple, range(1, 11) renvoie [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], s'arrêtant court à 11.

Pourquoi est-ce le cas ? La réponse réside dans l'utilisation large de range() et les pratiques courantes en programmation.

1. Uniformité dans l'indexation :

Les programmeurs préfèrent souvent l'indexation de base zéro, où le premier élément d'une séquence est référencé comme index 0. L'utilisation de range(0, 10) renverrait [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], contenant exactement 10 éléments, alignés sur sa longueur (len(range(0, 10))).

2. Boucle et itération :

Considérez une structure de boucle commune :

for i in range(len(li)):
    pass
Copier après la connexion

Si range() incluait la valeur finale, cette boucle parcourrait un au-delà des indices valides de la liste li . Les programmeurs peuvent oublier de soustraire 1 de len(li) lors de la spécification de la plage, ce qui entraîne une boucle invalide.

3. Cohérence avec les itérateurs :

En Python, la fonction range() sert d'itérateur, produisant des valeurs une à la fois. S'il incluait la valeur finale, cela nécessiterait une vérification ou une logique supplémentaire pour terminer l'itération, ce qui ajouterait de la complexité et un potentiel d'erreurs.

Répondre au besoin d'inclusion :

Si vous avez fréquemment besoin d'inclure la valeur finale, vous pouvez créer une fonction personnalisée qui étend les fonctionnalités de range() :

def range1(start, end):
    return range(start, end + 1)

print(range1(1, 10))  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Copier après la connexion

En comprenant les raisons derrière l'exclusion de la valeur finale par range() et en utilisant des fonctions personnalisées lorsque cela est nécessaire, les programmeurs peuvent exploiter efficacement cet outil polyvalent dans leur code Python.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal