Pourquoi les fonctions de plage excluent la limite supérieure
En Python, la fonction range(start, end) génère une séquence de nombres commençant par le début et se terminant avant la fin. Ce comportement peut être déroutant pour certains utilisateurs qui s'attendent à ce que la plage inclue la fin.
La raison de cette exclusion réside dans l'utilisation courante de range(0, 10). Lorsqu'elle est utilisée avec un début de 0, range renvoie [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], qui est la séquence souhaitée avec 10 éléments. Cela correspond à la longueur de la séquence générée, garantissant que le nombre d'itérations est correct dans les boucles et autres applications.
De plus, l'exclusion de la limite supérieure permet une syntaxe de boucle plus propre. Considérez l'extrait de code :
for i in range(len(li)): pass
Si la plage inclue la fin, le code ci-dessus générerait une erreur lorsque j'atteindrais len(li) car il tenterait d'accéder à un élément en dehors des limites de la liste. L'exclusion de la limite supérieure élimine cette erreur potentielle.
Les programmeurs préfèrent généralement utiliser des boucles for avec i allant de 0 à len(li) - 1 plutôt que de 1 à len(li). Cela est dû à la prévalence de l'indexation basée sur 0 dans la programmation.
Pour les utilisateurs qui préfèrent inclure la limite supérieure, une fonction personnalisée peut être créée :
def range1(start, end): return range(start, end + 1)
En utilisant range1(1 , 10) produira la séquence souhaitée de [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].
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!