Python >> Tutoriel Python >  >> Python

Fonction Python range() — Un guide illustré utile

Le Python range() La fonction crée un itérable d'entiers suivants dans une plage de valeurs donnée. Vous pouvez passer soit seulement un stop argument auquel cas le range l'objet inclura tous les entiers de 0 à stop (exclu). Ou vous pouvez passer start , stop , et step arguments auquel cas l'objet range ira de start à step en utilisant le step donné Taille. Par exemple, range(3) résultats en 0, 1, 2 et range(2, 7, 2) résultats en 2, 4, 6 .


Voici quelques exemples d'utilisation du range() fonction intégrée :

>>> range(10)
range(0, 10)
>>> print(range(10))
range(0, 10)
>>> print(*range(10))
0 1 2 3 4 5 6 7 8 9
>>> range(1, 10, 3)
range(1, 10, 3)
>>> print(*range(1, 10, 3))
1 4 7

Notez que dans tous les cas, un objet range est renvoyé. L'objet range est un itérable de valeurs, mais les valeurs ne sont générées que lorsqu'elles sont réellement nécessaires. Vous pouvez utiliser l'opérateur astérisque pour décompresser toutes les valeurs dans la fonction d'impression avec print(*range(10)) . Python attend le plus longtemps possible pour générer les valeurs de l'itérable.

Fonction de plage de syntaxe

Vous pouvez utiliser le range() fonction avec trois listes d'arguments différentes :(i) avec le stop argument uniquement, (ii) avec le start et stop arguments, ou (iii) avec le start , stop , et step arguments.

Syntax: 
range(stop)
range(start, stop)
range(start, stop, step)
Arguments start Un entier définissant le premier élément du range itérable
stop Un entier définissant le dernier élément. Cependant, cet élément n'est pas inclus dans le range itérable.
step Un entier définissant la différence entre deux éléments consécutifs dans le range itérable.
Valeur de retour range Renvoie un objet de plage itérable qui vous permet d'itérer sur toutes les valeurs à partir de start à step en utilisant le step Taille.

Fait intéressant : le range() "fonction" n'est techniquement pas une fonction normale mais une méthode constructeur du range classer. Ainsi, il crée un nouvel objet de plage.

Comment Math Genius Gauss a piraté l'exercice de son professeur avec la fonction Range

Connaissez-vous l'histoire suivante du brillant mathématicien Carl Friedrich Gauss ? Lorsque Gauss, 8 ans, est allé à l'école, son professeur de mathématiques a demandé quelques minutes de pause respiratoire. Il a dit à sa classe de résoudre le problème de l'addition de tous les nombres suivants de 1 à 100 :1+2+3+...+100 .

Mais comme le petit Gauss a rapidement signalé la solution, la courte pause était terminée avant qu'elle ne commence.

Surpris (et un peu grincheux selon l'histoire), l'enseignant a demandé au garçon comment il avait trouvé une solution si rapidement. Gauss a expliqué sa solution simple. Il a organisé la séquence en paires de nombres totalisant chacun jusqu'à 101 :1+100,2+99,3+98,...,50+51 . Il y a 50 paires de ce type, donc le résultat total était 50*101=5050 .

Pourtant, le petit Gauss des temps modernes serait encore plus paresseux. Il taperait la ligne suivante dans son application mobile Python :sum(range(1,101)) .

Le range() La fonction renvoie une séquence commençant par la première valeur (inclusive) et se terminant par la deuxième valeur (exclusive). La fonction somme additionne les valeurs de cette séquence. La combinaison des deux fonctions résume la séquence de 1 à 100, plus rapide que le brillant Carl Friedrich Gauss.


Plage Python() avec un arrêt d'argument

Vous pouvez utiliser le range() fonction avec un argument stop . Dans ce cas, l'objet range va de start=0 au stop argument (exclu) en utilisant la taille de pas par défaut de un.

Voici l'exemple :

for i in range(5):
    print(i)

La sortie est :

0
1
2
3
4

Plage Python() avec deux arguments Start + Stop

Vous pouvez utiliser le range() fonction à deux arguments start et stop . Dans ce cas, l'objet range va de start au stop valeur entière (exclue) en utilisant la taille de pas par défaut de un.

Voici l'exemple :

for i in range(1, 5):
    print(i)

La sortie est :

1
2
3
4

Plage Python() avec trois arguments Start + Stop + Step

Vous pouvez utiliser le range() fonction à trois arguments start , stop , et step . Dans ce cas, le range l'objet passe de start au stop valeur entière (exclue) en utilisant la taille de pas par défaut de step .

Voici l'exemple :

for i in range(1, 5, 2):
    print(i)

La sortie est :

1
3

Exercice Shell interactif sur la fonction de portée

L'extrait de code suivant correspond aux hommes avec les femmes - l'idée est de faire correspondre le i-ème homme avec la i-ème femme, en supposant que les deux listes ont la même taille. Comment changer le code pour accomplir cette tâche?

Exercice :Remplacer le XXXX placeholder dans le code pour faire correspondre le i-ème homme avec la i-ème femme !

Vous trouverez la solution… après la publicité ! 🙂


Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).

Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !

Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).

Lien :https://nostarch.com/pythononeliners


Solution :Le code suivant résout l'exercice.

men = ['Bob', 'Carl', 'Frank']
women = ['Ann', 'Alice', 'Liz']

for i in range(len(men)):
    print(men[i] + ' dances with ' + women[i])

L'idée est d'utiliser le len() fonction pour déterminer le stop argument automatiquement avec range(len(men)) . Notez que range(len(women)) , range(3) , et range(0, 3) , et range(0, 3, 1) résoudraient tous le problème de la même manière.

Plage Python() avec une taille de pas négative

Vous pouvez également utiliser la fonction range() avec une taille de pas négative. La signification est "se déplacer de droite à gauche en utilisant la taille de pas négative comme différence entre deux valeurs consécutives. Dans ce cas, l'argument start doit être plus grand que l'argument stop.

Voici un exemple :

for i in range(4,0,-2):
    print(i)

La sortie est :

4
2

Notez que le stop l'argument n'est toujours pas inclus dans le range objet.

Puzzle de gamme

Les puzzles sont un excellent moyen efficace d'améliorer vos compétences en Python. Pouvez-vous résoudre ce casse-tête ?

# Python Puzzle
print(sum(range(0,7)))

Quel est le résultat de cet extrait de code ?

Vous pouvez vérifier si vous avez correctement résolu ce puzzle et déterminer si vous êtes un maître codeur sur notre application Puzzle Finxter.com :

Êtes-vous un codeur maître?
Testez vos compétences maintenant !

Résumé

Le Python range() La fonction crée un itérable d'entiers suivants dans une plage de valeurs donnée.

Vous pouvez passer soit seulement un stop argument auquel cas le range l'objet inclura tous les entiers de 0 à stop (exclu). Par exemple, range(3) résultats en 0, 1, 2 :

for i in range(3):
    print(i)
    
'''
OUTPUT:
0
1
2
'''

Comme alternative, vous pouvez passer start , stop , et step arguments auquel cas l'objet range ira de start à step en utilisant le step donné Taille. Par exemple, range(2, 7, 2) résultats en 2, 4, 6 :

for i in range(2, 7, 2):
    print(i)
    
'''
OUTPUT:
2
4
6
'''

J'espère que vous avez apprécié l'article! Pour améliorer votre formation Python, vous pouvez rejoindre la populaire et gratuite Finxter Email Academy :


Voulez-vous améliorer vos compétences Python d'une manière amusante et facile à consommer ? Considérez les ressources suivantes et devenez un maître codeur !


Post précédent
Prochain article