Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Fonction Range | Boucles
Introduction à Python

book
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 :

python
range(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 de 1 à 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.

# 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}.")
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}.")
copy

Remarque

La séquence commence à 0 et se termine à 6. Cela s'explique par le fait que Python commence souvent à compter à partir de 0, 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).

# Planning seasonal sale days in the last week of December
for day in range(25, 32):
print(f"Seasonal sale on December {day}.")
123
# Planning seasonal sale days in the last week of December for day in range(25, 32): print(f"Seasonal sale on December {day}.")
copy

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’argument stop. 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.

# 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}.")
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}.")
copy

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.

# 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}")
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}")
copy
Tâche

Swipe to start coding

Utilisez deux listesweekdays et daily_promotions — pour afficher la promotion attribuée à chaque jour de la semaine.

  • Utilisez une boucle for avec la fonction range() pour parcourir les indices des listes.
  • À chaque itération :
    • Récupérez le weekday actuel depuis la liste weekdays.
    • Récupérez la promotion correspondante depuis daily_promotions en utilisant le même indice.
  • 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

# List of products on promotion for each weekday
daily_promotions = ["Milk", "Eggs", "Bread", "Apples", "Oranges"]

# List of weekdays corresponding to the promotions
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]

# Initialize the `for` loop to iterate over the range of indices using `range()` function
for day in range(5):
weekday = weekdays[day] # Get the current weekday
promotion = daily_promotions[day] # Get the promotion for the current day
print(f"{weekday}: Promotion on {promotion}")
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 3
# List of products on promotion for each weekday
daily_promotions = ["Milk", "Eggs", "Bread", "Apples", "Oranges"]

# List of weekdays corresponding to the promotions
weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]

Demandez à l'IA

expand
ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt