Résolue

Comportement de list(range()) en Python

# Python

Bonjour, pourquoi quand vous creer une liste par exemple la premiere,

>>> list(range(4, 10))
[4, 5, 6, 7, 8, 9]

ou bien celle ci
>>> list(range(2, 20, 3))
[2, 5, 8, 11, 14, 17]

>>> list(range(500, 1500, 250))
[500, 750, 1000, 1250]

Pourquoi le premier nombre de la liste est affiché mais pas le dernier ? Pourquoi il n'y a pas 10 pour la premiere , 20 pour la 2eme et 1500 la 3eme

Gabriel Trouvé

Mentor

Salut !

La particularité de la fonction range en Python, c'est qu'elle génère une séquence qui commence à la valeur de départ (incluse) et s'arrête avant la valeur de fin (exclue).

  • Pour list(range(4, 10)) : Python commence à 4 et ajoute 1 à chaque itération jusqu'à ce que le nombre obtenu atteigne 10. Le dernier nombre pris est donc 9, car la prochaine valeur serait 10, qui n'est pas incluse.

  • Pour list(range(2, 20, 3)) : Python produit 2, 5, 8, 11, 14, 17. La prochaine valeur serait 20 (17 + 3), mais comme 20 est la borne de fin (exclue), elle n'est pas incluse.

  • Pour list(range(500, 1500, 250)) : Python donne 500, 750, 1000, 1250. La prochaine valeur serait 1500 (1250 + 250), mais elle n'est pas incluse car 1500 est la borne de fin.

JE comprend de tout ca ou est quitter le 5 apres 2 list(range(2.20.33)) ca doit etre 3

Gabriel Trouvé

Mentor

En gros il faut bien comprendre que :

range(début, fin_exclue, pas)
range(2, 20, 3)
# [2, 5, 8, 11, 14, 17]

La fin est bien exclue, et on peut lui spécifier un pas.

Inscris-toi

(c'est gratuit !)

Inscris-toi

Tu dois créer un compte pour participer aux discussions.

Créer un compte

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.