Fonction Range
La fonction range()
en Python est une fonction intégrée qui génère une séquence de nombres.
Elle est souvent utilisée pour itérer sur une séquence à l'aide de boucles, en particulier lorsque vous devez exécuter une boucle un nombre précis de fois.
Ceci est idéal pour gérer des tâches impliquant un schéma de répétition prévisible, comme le réapprovisionnement des rayons ou la planification des promotions dans un supermarché.
Voyons comment Alex utilise la fonction range()
pour gérer efficacement les tâches de routine dans notre scénario de supermarché :
Syntaxe et arguments
La fonction range()
peut prendre jusqu'à trois arguments, ce qui la rend polyvalente pour divers scénarios de bouclage.
Voici la syntaxe générale de la fonction range
:
pythonrange(start, stop, step)
start
: il s'agit du premier nombre de la séquence. Il est optionnel et, si vous ne l'indiquez pas, la séquence commencera à0
.stop
: il s'agit du dernier nombre de la séquence, mais la séquence s'arrête juste avant ce nombre. Cet argument est obligatoire.step
: il s'agit de la valeur ajoutée (ou soustraite) entre chaque nombre de la séquence. Il est optionnel et, si vous ne l'indiquez pas, la séquence augmentera de1
à chaque fois.
Maintenant que vous comprenez la syntaxe de la fonction range()
, explorons quelques exemples pour voir comment chaque argument — start
, stop
et step
— influence le comportement des boucles.
Un seul argument
Lorsque la fonction range()
reçoit un seul argument, celui-ci est interprété comme le paramètre stop
.
Dans notre exemple, elle génère une séquence de 7 éléments commençant à 0
et se terminant à 6
. La boucle itère sur ces éléments, représentant les 7 premiers jours d'ouverture du magasin.
123# Announce store opening every day for 7 days for day in range(7): print(f"Good morning! The store is now open on day {day}.")
Remarque
La séquence commence à
0
et se termine à6
. Cela s'explique par le fait que Python commence souvent à compter à partir de0
, ce qui réduit la nécessité d'ajuster l'indexation dans de nombreuses situations.
Deux arguments
Lorsque deux arguments sont fournis, comme 25
(start
) et 32
(stop
), range()
génère une séquence de 25
à 31
(car la valeur stop
est exclue de la séquence).
123# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
Remarque
Avec cette méthode d’indexation, où l’élément de fin est exclu, il est facile de calculer le nombre d’éléments dans la séquence en soustrayant l’argument
start
de l’argumentstop
. Par exemple,32 - 25 = 7
, ce qui signifie qu’il y a 7 éléments dans la séquence.
Trois arguments
En ajoutant un troisième argument à range()
, vous introduisez une valeur de step
, qui définit l’incrément entre chaque nombre de la séquence.
Dans cet exemple, range()
prend 1
(start
), 13
(stop
) et 3
(step
), produisant les nombres 1, 4, 7, 10
. Ceux-ci peuvent représenter les heures de début des postes du personnel pendant une journée de travail de 12 heures.
123# Schedule staff shifts every three hours throughout a 12-hour day for hour in range(1, 13, 3): print(f"Staff shift starts at hour {hour}.")
Exemple d’application
Avec la fonction range()
, il est possible de planifier des tâches pour chaque jour de la semaine afin de s’assurer que toutes les sections du magasin sont couvertes.
Cette boucle s’exécute 7 fois car range(7)
crée des nombres de 0
à 6
(soit un total de 7 éléments). À chaque itération, la variable day
prend une valeur de 0
à 6
, utilisée ensuite pour accéder aux éléments des listes weekly_tasks
et weekdays
.
123456789101112131415161718192021# List of daily tasks for a week weekly_tasks = [ "Restock Fruits", "Clean Dairy Section", "Review Meat Inventory", "Restock Vegetables", "Check Bakery Expiry Dates", "Organize Front Displays", "Prepare Weekly Sales Report" ] # List of weekdays corresponding to each task weekdays = [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] # Loop through each day using the range function for day in range(7): task = weekly_tasks[day] # Access the task corresponding to the current day weekday = weekdays[day] # Access the corresponding weekday print(f"{weekday} Task: {task}")
Swipe to start coding
Utilisez deux listes — weekdays
et daily_promotions
— pour afficher la promotion attribuée à chaque jour de la semaine.
- Utilisez une boucle
for
avec la fonctionrange()
pour parcourir les indices des listes. - À chaque itération :
- Récupérez le
weekday
actuel depuis la listeweekdays
. - Récupérez la promotion correspondante depuis
daily_promotions
en utilisant le même indice.
- Récupérez le
- Affichez les deux valeurs dans le format spécifié.
Exigences de sortie
- Pour chaque jour, affichez :
<weekday>: Promotion sur <promotion>
Remarque
Assurez-vous que les deux listes contiennent le même nombre d'éléments afin d'éviter les erreurs d'index.
Solution
Merci pour vos commentaires !
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion