Exécuter des étapes conditionnelles avec le flux de contrôle
Prérequis
Avant de plonger dans cette leçon, vous devez être familier avec :
- L'utilisation des variables
Objectifs pédagogiques
À la fin de cette leçon, vous serez capable de :
- Prendre des décisions dans votre code en utilisant les instructions
if-else - Répéter des actions avec les boucles
while - Traiter des séquences en utilisant les boucles
for
Le flux de contrôle est un concept fondamental en programmation qui détermine l'ordre dans lequel les instructions d'un programme sont exécutées. Il permet à un programme de prendre des décisions, de répéter des actions et d'effectuer différentes tâches basées sur des conditions spécifiques.
Dans cette leçon, nous explorerons comment le flux de contrôle est géré en Python en utilisant des instructions conditionnelles et des boucles. Vous apprendrez à écrire des programmes dynamiques et réactifs en prenant des décisions, en gérant différents scénarios et en répétant efficacement des tâches.
En Excel, vous êtes habitué à comparer des valeurs en utilisant des opérateurs comme =, <>, >, <, >=, <= pour déterminer les relations entre les valeurs. De même, Python utilise un ensemble d'opérateurs de comparaison qui renvoient Vrai ou Faux, comme Excel qui indique si une condition est remplie ou non.
Voici un tableau résumant les opérateurs de comparaison principaux en Python :
| Opérateur | Description | Exemple | Résultat |
|---|---|---|---|
== |
Égal à | 10 == 10 |
True |
!= |
Différent de | 10 != 5 |
True |
> |
Supérieur à | 10 > 5 |
True |
< |
Inférieur à | 5 < 10 |
True |
>= |
Supérieur ou égal à | 10 >= 10 |
True |
<= |
Inférieur ou égal à | 5 <= 10 |
True |
En Excel, vous pouvez également utiliser des fonctions logiques comme ET, OU, NON pour combiner ou nier des conditions. C'est également possible en Python avec les opérateurs booléens. Voici une comparaison entre les opérateurs booléens de Python et ceux d'Excel :

Combinons les opérateurs de comparaison avec les opérations booléennes pour créer des conditions significatives en Python :
# Define business metrics
revenue_growth_percentage = 20
return_customer_rate = 70
# Evaluate business metrics
both_metrics_meeting_targets = (revenue_growth_percentage > 15) and (return_customer_rate > 60)
print("Are both business metrics meeting the targets?", both_metrics_meeting_targets)
# Output:
# Are both business metrics meeting the targets? True
Voici un autre exemple utilisant l'opérateur not :
# Define a boolean variable indicating whether the sustainability goals were achieved
sustainability_goals_achieved = True
# Use the not operator to check if sustainability goals were not achieved
action_plan_needed = not sustainability_goals_achieved
print("Is an action plan needed to achieve sustainability goals?", action_plan_needed)
# Output:
# Is an action plan needed to achieve sustainability goals? False
Exercice
Créez un nouveau notebook Jupyter dans le dossier exercise du dossier Control_Flow. Nommez-le Comparison_and_Boolean_Operations.ipynb. Après avoir terminé les exercices, assurez-vous de sauvegarder le notebook.
1. Évaluation de la performance commerciale
Vous êtes analyste de données pour "GreenThreads", une entreprise de mode durable. Votre tâche est d'évaluer si l'entreprise a atteint ses objectifs de performance clés pour l'année. Deux métriques clés sont suivies :
- Objectif de revenu annuel : L'objectif pour l'année est de 1 000 000 €.
- Objectif de taux de rétention client : L'objectif de rétention est de 75%.
En utilisant Python, déterminez si les deux objectifs ont été atteints et si des actions ou analyses supplémentaires sont nécessaires.
Étape 1 : Définir les variables
Définissez deux variables booléennes :
revenue_target_met=Truesi le revenu annuel est de 1 200 000 € (au-dessus de l'objectif), sinonFalse.retention_rate_target_met=Truesi le taux de rétention client est de 80% (au-dessus de l'objectif), sinonFalse.
Étape 2 : Appliquer les opérations de comparaison et booléennes
- Utilisez les opérateurs logiques pour évaluer si les deux objectifs ont été atteints.
- Utilisez l'opérateur
notpour déterminer si des actions ou analyses supplémentaires sont nécessaires.
Étape 3 : Afficher le résultat
- Affichez des messages pour indiquer :
- Si les deux objectifs ont été atteints.
- Si des actions ou analyses supplémentaires sont nécessaires.
Solution
Voir la solution
# Step 1: Define the boolean variables based on the given metrics
revenue_target_met = True # Annual revenue of €1,200,000 meets the €1,000,000 target
retention_rate_target_met = True # Retention rate of 80% meets the 75% target
# Step 2: Use logical operators to evaluate if both targets are met
both_targets_met = revenue_target_met and retention_rate_target_met
# Step 3: Determine if further action or analysis is needed
action_or_analysis_required = not both_targets_met
# Step 4: Print the results
print("Are both performance targets met?", both_targets_met)
print("Is further action or analysis required?", action_or_analysis_required)
# Expected Output:
# Are both performance targets met? True
# Is further action or analysis required? False
Les instructions conditionnelles contrôlent le flux d'exécution basé sur des conditions.
L'instruction if vérifie une condition et exécute un bloc de code si la condition est évaluée à True. Considérons un scénario où vous devez vérifier si un objectif de ventes a été atteint :
# Prompt the user to enter the revenue generated for GreenThreads
revenue = int(input('Enter the revenue generated: '))
# Check if the revenue generated is 50,000 or more
if revenue >= 50_000:
# Code to execute if condition is True
print('Revenue target achieved!')
print('Allocate funds for the sustainability projects.')
Note : L'instruction if se termine par deux points : après la condition. Cela indique le début d'un bloc d'indentation en Python.
L'indentation, créée avec la touche TAB ou quatre espaces, est cruciale en Python. Elle regroupe les instructions dans un bloc de code, définissant la portée des boucles, fonctions et conditions. Pour notre instruction if, elle marque une section de code qui s'exécute lorsque la condition est True.
Exercice
Créez un nouveau notebook Jupyter dans le dossier exercise à l'intérieur de Control_Flow. Nommez-le Conditional_Statements.ipynb. Après avoir terminé les exercices, assurez-vous de sauvegarder le notebook.
Vous travaillez pour GreenThreads, une marque de mode durable qui propose différentes collections pour diverses saisons. Votre objectif est de créer un programme dynamique qui recommande quelle collection de vêtements promouvoir en fonction des conditions météorologiques actuelles. Cela aidera votre équipe marketing à ajuster rapidement leurs promotions selon les changements de température quotidiens.
Utilisez uniquement des instructions if pour déterminer la recommandation appropriée.
Étapes
-
Définir la variable de température
Définissez une variable nommée
temperatureet attribuez-lui une valeur représentant la température actuelle. -
Écrire les instructions
if- Utilisez une instruction
ifpour vérifier si la température est supérieure à 25 degrés Celsius. Si la condition est vraie, affichez "It's hot outside. Promote the GreenThreads summer collection." - Utilisez une autre instruction
ifpour vérifier si la température est inférieure ou égale à 15 degrés Celsius. Si vrai, affichez "It's cool outside. Highlight the GreenThreads autumn collection." - Utilisez une autre instruction
ifpour vérifier si la température est supérieure à 15 degrés Celsius et inférieur à 25 degrés Celsius :
- Utilisez une instruction
if temperature > 15 and temperature < 25:
Si vrai, affichez "It's a mild day. Feature the GreenThreads spring collection."
-
Tester votre code
Modifiez la valeur de
temperaturepour tester différents scénarios.
Solution
Voir la solution
# Step 1: Define the Temperature Variable
temperature = 30 # Change this value to test different scenarios
# Step 2: Write the if Statement
if temperature > 25:
print("It's hot outside. Promote the GreenThreads summer collection.")
# Test Cases for different scenarios
print("\\nTest Case 1:")
temperature = 40 # Setting temperature to 40
if temperature > 25: # condition met
print("It's hot outside. Promote the GreenThreads summer collection.")
print("\\nTest Case 2:")
temperature = 20 # Setting temperature to 20
if temperature > 25: # condition not met
print("It's hot outside. Promote the GreenThreads summer collection.")
print("\\nTest Case 3:")
temperature = 25 # Setting temperature to 25
if temperature > 25: # condition not met
print("It's hot outside. Promote the GreenThreads summer collection.")
L'instruction else fournit un bloc de code alternatif à exécuter si la condition if est False. L'instruction else suit l'instruction if et ne nécessite pas de condition :
# Prompt the user to enter the revenue generated for GreenThreads
revenue = int(input('Enter the revenue generated: '))
# Check if the revenue generated is 50,000 or more
if revenue >= 50_000:
# Code to execute if condition is True
print('Revenue target achieved!')
print('Allocate funds for sustainability projects.')
print('Consider increasing the marketing budget for further growth.')
else:
# Code to execute if condition is False
print('Revenue target not achieved.')
print('Analyze current marketing strategies.')
print('Schedule a strategy meeting with the management team.')
Le flowchart suivant représente visuellement le code ci-dessus :
Exercice
Ouvrez le notebook Jupyter Conditional_Statements.ipynb.
Dans cet exercice, vous suggérerez une activité marketing pour le week-end basée sur les prévisions météo. Utilisez les instructions if et else pour déterminer la meilleure stratégie marketing selon les conditions météorologiques.
Étapes
-
Définir la variable météo
Créez une variable nommée
weatheravec une chaîne représentant la météo ("sunny", "rainy", "cloudy"). -
Écrire les instructions
ifetelse- Utilisez une instruction
ifpour vérifier si le temps est "sunny" et suggérer une activité marketing en extérieur. - Utilisez une instruction
elsepour gérer les autres conditions météo et suggérer une campagne en ligne.
- Utilisez une instruction
-
Tester votre code
Testez le programme avec différentes conditions météo.
Solution
Voir la solution
# Step 1: Define the weather variable
weather = "rainy" # Change this value to test different scenarios
# Step 2: Write if and else statements to suggest marketing activities
if weather == "sunny":
print("It's sunny! Plan an outdoor pop-up event to promote the GreenThreads summer collection.")
else:
print("The weather is not suitable for outdoor events. Launch an online marketing campaign for the weekend.")
# Step 3: Test your code with different weather conditions
print("\nTest Case 1:")
weather = "sunny"
if weather == "sunny":
print("It's sunny! Plan an outdoor pop-up event to promote the GreenThreads summer collection.")
else:
print("The weather is not suitable for outdoor events. Launch an online marketing campaign for the weekend.")
print("\nTest Case 2:")
weather = "cloudy"
if weather == "sunny":
print("It's sunny! Plan an outdoor pop-up event to promote the GreenThreads summer collection.")
else:
print("The weather is not suitable for outdoor events. Launch an online marketing campaign for the weekend.")
print("\nTest Case 3:")
weather = "rainy"
if weather == "sunny":
print("It's sunny! Plan an outdoor pop-up event to promote the GreenThreads summer collection.")
else:
print("The weather is not suitable for outdoor events. Launch an online marketing campaign for the weekend.")
L'instruction elif, abréviation de "else if", permet de vérifier plusieurs conditions en séquence :
# Prompt the user to enter the revenue generated for GreenThreads
revenue = int(input('Enter the revenue generated: '))
# Check the revenue figure and provide feedback
if revenue >= 100_000: # condition1
# Code to execute if condition1 is True
print('Congratulations! Outstanding performance for GreenThreads!')
print('Allocate funds for expanding the sustainable product line and offer team bonuses.')
elif 70_000 <= revenue < 100_000: # condition2
# Code to execute if condition1 is False and condition2 is True
print('Great job! You have performed well.')
print('Plan targeted marketing efforts to achieve even higher sales next quarter.')
elif 40_000 <= revenue < 70_000: # condition3
# Code to execute if condition1 and condition2 are False, condition3 is True
print('Revenue target achieved.')
print('Analyze sales data to identify areas for growth and improvement.')
else:
# Code to execute if neither condition1, nor condition2, nor condition3 is True
print('Revenue target not achieved.')
print('Review sales strategies and consider revising the pricing model.')
print('Schedule a strategy meeting with the management team to discuss next steps.')
Exercice
1. Système de notation
Implémentez un système de notation qui fournit un retour basé sur la note saisie par l'utilisateur.
Instructions :
- Demandez à l'utilisateur d'entrer une note.
- Utilisez les instructions
if,elif, etelsepour catégoriser la note :- A pour les notes de 90 et plus
- B pour les notes entre 80 et 89
- C pour les notes entre 70 et 79
- D pour les notes entre 60 et 69
- F pour les notes inférieures à 60
2. Prix des billets
Déterminez le prix du billet selon l'âge du client.
Instructions :
- Demandez l'âge à l'utilisateur.
- Utilisez les instructions
if,elif, etelsepour déterminer le prix :- Enfant (0-12 ans) : 10€
- Ado (13-17 ans) : 15€
- Adulte (18-64 ans) : 20€
- Senior (65 ans et plus) : 12€
3. Recommandation de tenue
Suggérez une tenue selon la température en degrés Celsius.
Instructions :
- Demandez la température actuelle.
- Recommandez une tenue selon ces critères :
- Froid (moins de 10°C) : manteau
- Frais (10°C à 19°C) : veste
- Doux (20°C à 29°C) : chemise
- Chaud (30°C et plus) : short
Solution
Voir la solution
Système de notation
# Step 1: Prompt the user to enter a test score
score = int(input("Enter the test score: "))
# Step 2: Use if, elif, and else statements to categorize the score
if score >= 90:
grade = "A"
print("Grade: A")
elif score >= 80:
grade = "B"
print("Grade: B")
elif score >= 70:
grade = "C"
print("Grade: C")
elif score >= 60:
grade = "D"
print("Grade: D")
else:
grade = "F"
print("Grade: F")
# Step 3: Print the grade (already printed above)
Voir la solution
Prix des billets
# Step 1: Prompt the user to enter their age
age = int(input("Enter your age: "))
# Step 2: Use if, elif, and else statements to determine the ticket price
if 0 <= age <= 12:
ticket_price = 10
print("Ticket Price: €10 (Child)")
elif 13 <= age <= 17:
ticket_price = 15
print("Ticket Price: €15 (Teen)")
elif 18 <= age <= 64:
ticket_price = 20
print("Ticket Price: €20 (Adult)")
elif age >= 65:
ticket_price = 12
print("Ticket Price: €12 (Senior)")
else:
print("Invalid age entered.")
# Step 3: Print the ticket price (already printed above)
Voir la solution
Recommandation de tenue
# Step 1: Prompt the user to enter the current temperature in degrees Celsius
temperature = float(input("Enter the current temperature in degrees Celsius: "))
# Step 2: Use if, elif, and else statements to recommend an outfit
if temperature < 10:
outfit = "coat"
print("It's cold outside. You should wear a coat.")
elif 10 <= temperature <= 19:
outfit = "jacket"
print("It's cool outside. You should wear a jacket.")
elif 20 <= temperature <= 29:
outfit = "shirt"
print("It's mild outside. You should wear a shirt.")
elif temperature >= 30:
outfit = "shorts"
print("It's hot outside. You should wear shorts.")
else:
print("Invalid temperature entered.")
# Step 3: Print the outfit recommendation (already printed above)
Les boucles sont utilisées pour exécuter un bloc de code de manière répétée selon certaines conditions. En Python, il existe deux types principaux de boucles : les boucles while et les boucles for.
Une boucle while continue d'exécuter un bloc de code tant qu'une condition spécifiée reste True. La condition while est vérifiée à chaque fois avant l'exécution du bloc while.
Cette idée est illustrée dans le diagramme de flux.
Ce type de boucle est utile lorsque le nombre d'itérations n'est pas connu à l'avance et est déterminé par une condition vérifiée avant chaque itération.
Imaginez que vous ayez une file d'attente de clients à servir :
customers_in_queue = 5
while customers_in_queue > 0:
print(f"Serving customer. Remaining customers: {customers_in_queue}")
customers_in_queue = customers_in_queue - 1
print("All customers served!")
Dans cet exemple, la boucle while s'exécute tant que customers_in_queue est supérieur à 0. Elle affiche le nombre de customers_in_queue puis décrémente customers_in_queue de 1. Une fois que customers_in_queue atteint 0, la boucle se termine et "Tous les clients ont été servis !" est affiché.
Exercice
Créez un nouveau notebook Jupyter dans le dossier exercise à l'intérieur de Control_Flow. Nommez-le Loops.ipynb. Après avoir terminé les exercices, assurez-vous de sauvegarder le notebook pour conserver votre progression.
Calculer les économies d'énergie totales
GreenTech souhaite calculer les économies d'énergie cumulées réalisées au cours des 100 premiers jours de mise en œuvre d'une nouvelle initiative de développement durable. Chaque jour contribue progressivement aux économies d'énergie totales, et l'objectif est de calculer la somme des économies pour ces 100 jours.
Dans cet exercice, vous allez créer un programme qui utilise une boucle while pour calculer les économies d'énergie totales accumulées sur les 100 premiers jours.
Suivez ces étapes :
- Initialiser les variables :
- Variable d'économies : Créez une variable nommée
total_savingset initialisez-la à0. Cette variable contiendra le total cumulé des économies d'énergie. - Variable compteur de jours : Créez une variable nommée
day_counteret initialisez-la à1. Cette variable sera utilisée pour itérer sur les jours de1à100.
- Variable d'économies : Créez une variable nommée
- Utiliser une boucle
whilepour calculer les économies d'énergie totales :- Utilisez une boucle
whilepour ajouter continuellement la valeur deday_counteràtotal_savings, représentant les économies d'énergie réalisées chaque jour. - Après avoir ajouté les économies du jour en cours à
total_savings, augmentezday_counterde1. - Continuez la boucle jusqu'à ce que
day_counterdépasse100.
- Utilisez une boucle
- Afficher les économies totales finales :
- Une fois la boucle terminée, affichez les économies totales, qui devraient être la somme des économies journalières de
1à100.
- Une fois la boucle terminée, affichez les économies totales, qui devraient être la somme des économies journalières de
Solution
Voir la solution
# Step 1: Initialize the Variables
total_savings = 0 # This variable will hold the cumulative total of energy savings
day_counter = 1 # This variable will be used to iterate through the days from 1 to 100
# Step 2: Use a while Loop to Calculate Total Energy Savings
while day_counter <= 100:
total_savings = total_savings + day_counter # Add the savings for the current day to total savings
day_counter = day_counter + 1 # Increment the day counter by 1
# Step 3: Print the Final Total Savings
print(f"Total energy savings over the first 100 days: {total_savings} units")
# Output
# Total energy savings over the first 100 days: 5050 units
Vous pouvez utiliser l'instruction break pour quitter la boucle prématurément, indépendamment du fait que la condition de la boucle soit toujours True. Cela peut être utile si vous devez terminer la boucle en fonction d'une autre condition à l'intérieur de celle-ci.
customers_in_queue = 5
while True:
# Code to execute
print(f"Serving customer. Remaining customers: {customers_in_queue}")
if customers_in_queue == 3:
print("Oops! We need to take a quick break.")
break
# Update condition to eventually break the loop
customers_in_queue = customers_in_queue - 1
print("All customers served!")
Ici, la boucle s'arrêtera lorsque customers_in_queue atteindra 3, et l'instruction break quittera la boucle.
Exercice
Pour continuer la pratique, ouvrez le Notebook Jupyter Loops.ipynb. Après avoir terminé les exercices, assurez-vous de sauvegarder le notebook pour conserver votre progression.
GreenTech suit les économies quotidiennes d'émissions de carbone réalisées grâce à une nouvelle initiative de développement durable. L'objectif est de calculer les économies cumulées jusqu'à ce qu'un seuil cible de 100 unités soit atteint.
Dans cet exercice, vous allez créer un programme qui utilise une boucle while pour calculer les émissions de carbone cumulées économisées grâce à la mise en œuvre d'une initiative de développement durable. La boucle doit continuer à ajouter les économies quotidiennes jusqu'à ce que les économies totales atteignent ou dépassent une cible spécifiée (par exemple, 100 unités). Utilisez l'instruction break pour sortir de la boucle lorsque la cible est atteinte.
Scénario :
-
Initialiser les variables :
- Variable d'économies : Créez une variable nommée
total_savingset initialisez-la à0. Cette variable contiendra le total cumulé des émissions de carbone économisées. - Variable compteur de jours : Créez une variable nommée
day_counteret initialisez-la à1. Cette variable sera utilisée pour représenter chaque jour. - Variable Cible : Définissez une variable nommée
targetet fixez-la à100. C'est le seuil auquel la boucle doit s'arrêter.
- Variable d'économies : Créez une variable nommée
-
Utiliser une boucle
whilepour calculer les économies cumulées :- Utilisez une boucle
whilequi s'exécute indéfiniment jusqu'à ce qu'une condition à l'intérieur de la boucle déclenche une instructionbreak. - À l'intérieur de la boucle, ajoutez la valeur de
day_counteràtotal_savings, représentant les émissions de carbone économisées quotidiennement. - Après avoir ajouté les économies quotidiennes, augmentez
day_counterde1pour passer au jour suivant. - Incluez une instruction
ifpour vérifier sitotal_savingsa atteint ou dépassé latarget. - Utilisez l'instruction
breakpour sortir de la boucle lorsque la cible est atteinte.
Conseil : Vous pouvez utiliser
while True:pour créer une boucle qui continuera à s'exécuter jusqu'à ce que vous en sortiez explicitement en utilisantbreak. - Utilisez une boucle
-
Afficher les économies totales finales :
- Après la sortie de la boucle (soit parce que la somme a atteint la limite, soit parce que la boucle s'est terminée), affichez le total cumulé des émissions de carbone économisées.
Solution
Voir la solution
# Step 1: Initialize the Variables
total_savings = 0 # This variable will hold the cumulative total of carbon emissions saved
day_counter = 1 # This variable will be used to represent each day
target = 100 # This is the threshold for total savings
# Step 2: Use a while Loop to Calculate Cumulative Savings
while True:
total_savings = total_savings + day_counter # Add the daily savings to the total savings
if total_savings >= target: # Check if the total savings have reached or exceeded the target
break # Exit the loop when the target is reached
day_counter = day_counter + 1 # Increment the day counter by 1
# Step 3: Print the Final Total Savings
print(f"Total cumulative carbon emissions saved: {total_savings} units after {day_counter} days.")
# Output
# Total cumulative carbon emissions saved: 105 units after 14 days.
Vous pouvez utiliser l’instruction continue pour ignorer le reste de l’itération en cours et passer directement à l’itération suivante d’une boucle. Cela est utile lorsque vous souhaitez sauter certaines conditions tout en poursuivant l’exécution globale de la boucle.
Voyons un exemple concret pour mieux comprendre son fonctionnement :
customers_in_queue = 5
while customers_in_queue > 0:
customers_in_queue = customers - 1
if customers_in_queue == 3:
print("Oops! We need to skip you.")
continue
print(f"Serving customer. Remaining customers: {customers_in_queue}")
print("All customers served!")
Dans cet exemple, la variable customers_in_queue représente le nombre de clients en attente. La boucle while réduit ce nombre à chaque itération. Lorsqu’il reste 3 clients, la condition if est satisfaite : le message "Oops! We need to skip you." est affiché, et l’instruction continue force Python à ignorer le reste de l’itération en cours, sautant ainsi l’affichage de ce client.
La boucle se poursuit jusqu’à ce que tous les clients soient traités, et le message final "All customers served!" s’affiche. Cet exemple montre comment continue permet de gérer des cas particuliers tout en poursuivant l’exécution normale de la boucle.
Exercice
Pour continuer la pratique, ouvrez le Notebook Jupyter Loops.ipynb. Après avoir terminé les exercices, assurez-vous de sauvegarder le notebook pour conserver votre progression.
Dans cet exercice, vous allez écrire un programme qui affiche le nombre d'arbres plantés chaque jour pendant 50 jours, mais qui saute l'affichage des jours où aucun arbre n'a été planté en raison de la maintenance. Plus précisément, le programme doit :
- Afficher le nombre d'arbres plantés pour chaque jour de 1 à 50, sauf pour les jours qui sont des multiples de 7 (jours de maintenance où aucun arbre n'est planté).
- Utiliser l'instruction
continuepour sauter l'affichage les jours de maintenance.
Scénario :
- Initialiser le compteur de jours :
- Commencez avec une variable nommée
dayinitialisée à1. Celle-ci gardera la trace du jour en cours de traitement.
- Commencez avec une variable nommée
- Utiliser une boucle
while:- Créez une boucle
whilequi s'exécute tant quedayest inférieur ou égal à50.
- Créez une boucle
- Vérifier les jours de maintenance :
- À l’intérieur de la boucle, utilisez une instruction
ifpour vérifier si le jour actuel (day) est un multiple de 7. Pour cela, utilisez l’opérateur modulo (%), qui permet de calculer le reste d’une division. Par exemple : sihour % 24 == 0, cela signifie que le reste de la division dehourpar 24 est égal à 0, donchourest un multiple de 24. Si cette condition est vraie, utilisez l’instruction continue pour sauter l’itération en cours et passer directement au jour suivant.
- À l’intérieur de la boucle, utilisez une instruction
- Afficher le nombre d'arbres plantés :
- Si
dayn'est pas un multiple de 7, affichez le message indiquant le nombre d'arbres plantés ce jour-là.
- Si
- Incrémenter le compteur de jours :
- Augmentez
dayde1après chaque itération pour traiter le jour suivant.
- Augmentez
Solution
Voir la solution
# Step 1: Initialize the Day Counter
day = 1 # This will keep track of the current day being processed
total_trees_planted = 0 # To keep track of the total trees planted
# Step 2: Use a while Loop
while day <= 50:
# Step 3: Check for Maintenance Days
if day % 7 == 0:
# Maintenance day, skip to the next iteration
day = day + 1
continue
# Step 4: Print Tree Planting Count
total_trees_planted += 1 # Increment the total trees planted
print(f"Day {day}: Trees planted")
# Step 5: Increment the Day Counter
day = day + 1
print(f"Total trees planted: {total_trees_planted}")
Une boucle for parcourt une séquence d'éléments (comme une liste, un dictionnaire, ou une chaîne de caractères) et exécute un bloc de code pour chaque élément de la séquence. Ce type de boucle est utilisé lorsque le nombre d'itérations est connu à l'avance ou lors de l'itération sur une collection d'éléments.
# Example 1
for i in range(stop=5):
print(i)
# Output:
# 0
# 1
# 2
# 3
# 4
# Example 2
for i in range(start=2, stop=11, step=2):
print(i)
# Output:
# 2
# 4
# 6
# 8
# 10
# Example 3: Iterating through a string
for char in "Hello":
print(char)
# Output:
# H
# e
# l
# l
# o
Dans l'exemple 1, la boucle affiche les nombres de 0 à 4. Dans l'exemple 2, la boucle affiche tous les deuxièmes nombres de 2 à 10. La fonction range() génère une séquence de nombres, et la boucle itère sur cette séquence.
Comme une chaîne est une séquence de caractères, l'itération sur celle-ci avec une boucle for permet d'extraire les caractères un par un.
Exercice
Détective de caractères
Dans cet exercice, vous allez écrire un programme qui recherche et compte combien de fois des lettres spécifiques liées à l’écologie ('r', 'e', 'c') apparaissent dans un message. Ces lettres sont inspirées des termes courants liés au recyclage (comme "Reduce, Reuse, Recycle").
À vous de jouer les détectives et de découvrir combien de fois ces lettres apparaissent dans un message écologique !
Suivez ces étapes :
- Définissez une variable de type chaîne de caractères avec un message écologique, comme
"Reduce, Reuse, Recycle". - Initialisez des compteurs pour chaque caractère que vous souhaitez rechercher.
- Utilisez une boucle
forpour examiner chaque caractère dans la chaîne. - Mettez à jour les compteurs en fonction des caractères que vous trouvez.
- Affichez le décompte pour chaque caractère, résolvant ainsi l'affaire des lettres manquantes !
Le compte à rebours avec une surprise
Créez un compte à rebours de 10 à 1, mais avec une surprise écologique ! Si le compte à rebours atteint un nombre divisible par 3, il affiche "Plant a Tree!" au lieu du nombre. Lorsque le compte à rebours se termine, affichez "Earth Saved!".
Suivez ces étapes :
- Utilisez une boucle
foravecrange()pour créer un compte à rebours de 10 à 1. - À l'intérieur de la boucle, vérifiez si le nombre actuel est divisible par 3.
- Si le nombre est divisible par 3, affichez
"Plant a Tree!"au lieu du nombre. - Si le nombre n'est pas divisible par 3, affichez le nombre lui-même.
- Une fois la boucle terminée, affichez
"Earth Saved!".
La quête GreenTech
Vous êtes un explorateur en mission pour trouver une innovation durable cachée en 3 mouvements dans la forêt écologique de GreenTech. À chaque étape, vous devez décider d'aller à "gauche" ou à "droite". Les bons choix vous mèneront à l'innovation durable, mais faites les mauvais mouvements, et vous pourriez la manquer !
Le ... dans l'extrait de code est un espace réservé. Remplacez-le par votre code.
Utilisez ce que vous avez appris sur les boucles et les conditions pour résoudre cet exercice.
Combinez des boucles for pour représenter chaque étape et des conditions if/elif pour décider si le chemin est correct. Le but est d’afficher un message à la fin, indiquant si vous avez trouvé l’innovation durable ou si vous êtes perdu.
# Step 1: Start the Game
print("Welcome to GreenTech Quest! You have ... moves to find the hidden sustainable innovation!")
# Step 2: Game Flow and Input
for move in range(1, ...): # Replace with the correct number of moves
choice = input(f"Move {move}: Choose your direction ('left' or 'right'): ").lower()
# Check if the player chose 'left'
if choice == ...: # Replace with the correct string to check
print("You found nothing. Keep searching!")
# Check if the player chose 'right'
elif choice == ...: # Replace with the correct string to check
print("Congratulations! You discovered the hidden sustainable innovation!")
... # Exit the loop and end the game
# Handle invalid input
else:
print("Invalid choice! That counts as one move.")
# Step 3: End of the Game
else:
print("You've used all your moves. Better luck next time in finding the innovation!")
Solution
Voir la solution
Détective de caractères
message ="Reduce, Reuse, Recycle" # Define the message
# Step 2: Initialize counters for each character
count_r = 0 # Counter for 'r'
count_e = 0 # Counter for 'e'
count_c = 0 # Counter for 'c'
# Iterate through each character in the message
for char in message:
if char.lower() == 'r':
count_r = count_r + 1 # Increment the counter for 'r'
elif char.lower() == 'e':
count_e = count_e + 1 # Increment the counter for 'e'
elif char.lower() == 'c':
count_c = count_c + 1 # Increment the counter for 'c'
# Step 5: Print the count for each character
print(f"Count of 'r': {count_r}")
print(f"Count of 'e': {count_e}")
print(f"Count of 'c': {count_c}")
Voir la solution
Le compte à rebours avec une surprise
# Step 1: Use a for loop with range() to create a countdown from 10 to 1
for number in range(10, 0, -1): # Countdown from 10 to 1
# Step 2: Check if the current number is divisible by 3
if number % 3 == 0:
# Step 3: Print "Plant a Tree!" if the number is divisible by 3
print("Plant a Tree!")
else:
# Step 4: Print the number itself if it is not divisible by 3
print(number)
# Step 5: After the loop ends, print "Earth Saved!"
print("Earth Saved!")
Voir la solution
La Quête GreenTech
# Step 1: Start the Game
print("Welcome to GreenTech Quest! You have ... moves to find the hidden sustainable innovation!")
# Step 2: Game Flow and Input
for move in range(1, 5): # Replace with the correct number of moves
choice = input(f"Move {move}: Choose your direction ('left' or 'right'): ").lower()
# Check if the player chose 'left'
if choice == 'left': # Replace with the correct string to check
print("You found nothing. Keep searching!")
# Check if the player chose 'right'
elif choice == 'right': # Replace with the correct string to check
print("Congratulations! You discovered the hidden sustainable innovation!")
break # Exit the loop and end the game
# Handle invalid input
else:
print("Invalid choice! That counts as one move.")
# Step 3: End of the Game
else:
print("You've used all your moves. Better luck next time in finding the innovation!")
Excellent travail ! Vous avez exploré les opérateurs de comparaison utilisés pour comparer des valeurs et déterminer leurs relations. Ces opérateurs produisent des valeurs booléennes (True ou False) et incluent == pour l'égalité, != pour l'inégalité, > et < pour supérieur à et inférieur à, et >= et <= pour supérieur ou égal à et inférieur ou égal à.
Les opérations booléennes ont également été abordées, qui combinent plusieurs valeurs booléennes pour former des conditions plus complexes. Les opérateurs comme and, or, et not évaluent les expressions et contrôlent le flux en fonction de conditions multiples.
Les instructions conditionnelles telles que if, else, et elif permettent l'exécution de code selon que certaines conditions sont remplies ou non. Ces instructions facilitent la prise de décision dans les programmes, permettant à différents blocs de code de s'exécuter en fonction des conditions évaluées.
Les boucles, incluant les boucles while et for, ont été discutées pour répéter des actions jusqu'à ce qu'une condition change ou pour itérer sur une séquence. La boucle while continue de s'exécuter tant qu'une condition spécifiée reste True, tandis que la boucle for itère sur les éléments d'une séquence. Le chapitre a également couvert les instructions break et continue, qui aident à contrôler l'exécution des boucles en permettant des sorties prématurées ou en sautant des itérations.
Messages aux employés
Écrivez un programme qui envoie un message aux employés de "GreenTech" concernant leurs activités quotidiennes pour les 30 prochains jours. Le programme doit :
- Sauter tout jour qui est un multiple de 7, représentant un "Jour de Maintenance", en utilisant l'instruction
continue. - Afficher
"Focus on Recycling Initiatives"pour les jours qui sont des multiples de 4. - Afficher
"Tree Planting Day"pour les jours qui sont des multiples de 5. - Afficher
"Focus on Recycling and Tree Planting"pour les jours qui sont des multiples de 4 et de 5. - Pour tous les autres jours, afficher un message standard :
"Regular Work Day".
Demande de retour d'expérience
Créez un programme qui continue de demander des retours sur la nouvelle initiative de développement durable de GreenTech. Si l'utilisateur tape une réponse qui inclut la phrase "This is innovative!" (insensible à la casse), affichez un message de remerciement et arrêtez de demander plus de retours. Sinon, affichez une réponse qui encourage l'utilisateur à fournir des retours qui mettent en valeur l'innovation et continuez à demander des retours.
GreenTechBot
Simulez un GreenTechBot amical qui continue de demander à l'utilisateur sa pratique écologique préférée. Si l'utilisateur saisit "composting" (insensible à la casse), affichez "Composting is an excellent way to reduce waste!" et arrêtez. Sinon, affichez "That's a great practice, but let's think of another one!" et continuez à demander.
Développement durable
Créez un programme où l'utilisateur doit deviner un numéro d'objectif de durabilité secret fixé par GreenTech, représentant une cible pour les économies d'énergie, la réduction de carbone, ou toute autre métrique environnementale. Le programme doit continuer à demander des devinettes jusqu'à ce que l'utilisateur devine le bon numéro.
Le ... dans l'extrait de code est un espace réservé. Remplacez-le par votre code.
# Secret sustainability goal number to guess
secret_goal_number = ... # Replace with the secret goal number, e.g., 37
# Use a while loop to keep asking for guesses
while ...: # Replace with a condition to keep the loop running
# Ask the user for their guess
guess = int(input("Guess the secret sustainability goal number (between 1 and 50): "))
# Check if the guess is correct
if guess == ...: # Replace with the secret goal number
print("Congratulations! You've guessed our sustainability goal!")
... # Exit the loop, e.g., use break
# Check if the guess is out of range
if guess < ... or guess > 50: # Replace with the appropriate range limit
print("Your guess is out of the valid range. Please try again!")
... # Continue asking for another guess, e.g., use continue
# Provide a hint if the guess is incorrect
if guess < ...: # Replace with the secret goal number
print("Think bigger! Aim for a higher sustainability target!")
else:
print("A bit too ambitious! Try a lower sustainability target!")
... # Continue asking for another guess
Messages aux employés
# Step 1: Initialize the Day Counter
day = 1 # Start counting from day 1
# Step 2: Create a while loop that runs until day is less than or equal to 30
while day <= 30:
# Step 3: Check for Maintenance Days and skip them
if day % 7 == 0:
print(f"Day {day}: Maintenance Day - No scheduled activities.")
day = day + 1 # Increment day to move to the next day
continue # Skip the rest of the loop and go to the next iteration
# Step 4: Check for specific activity days
if day % 4 == 0 and day % 5 == 0:
print(f"Day {day}: Focus on Recycling and Tree Planting")
elif day % 4 == 0:
print(f"Day {day}: Focus on Recycling Initiatives")
elif day % 5 == 0:
print(f"Day {day}: Tree Planting Day")
else:
print(f"Day {day}: Regular Work Day") # Print standard message for other days
# Step 5: Increment the Day Counter
day = day + 1 # Increase day by 1 for the next iteration
Demande de retour d'expérience
# Use a while loop to keep asking for feedback
while True:
# Ask the user for feedback
feedback = input("Please provide feedback on our new sustainability initiative: ")
# Check if the feedback contains the word "innovative"
if "innovative" in feedback.lower():
print("Thank you! We appreciate your positive feedback!")
break # Exit the loop
# If the feedback does not contain "innovative"
print("We value your input, but we're looking for feedback that highlights innovation!")
continue # Continue asking for more feedback
GreenTechBot
# Use a while loop to keep the GreenTechBot conversation going
while True:
# Ask the user for their favorite eco-friendly practice
practice = input("Hello! I'm GreenTechBot. What's your favorite eco-friendly practice? ")
# Check if the practice is "composting" (case-insensitive)
if practice.lower() == "composting":
print("Composting is an excellent way to reduce waste!")
break # Exit the loop
# If the practice is not "composting"
print("That's a great practice, but let's think of another one!")
continue # Continue asking for another eco-friendly practice
Développement durable
# Secret sustainability goal number to guess
secret_goal_number = 37
# Use a while loop to keep asking for guesses
while True: # Replace with a condition to keep the loop running
# Ask the user for their guess
guess = int(input("Guess the secret sustainability goal number (between 1 and 50): "))
# Check if the guess is correct
if guess == secret_goal_number: # Replace with the secret goal number
print("Congratulations! You've guessed our sustainability goal!")
break # Exit the loop, e.g., use break
# Check if the guess is out of range
if guess < 1 or guess > 50: # Replace with the appropriate range limit
print("Your guess is out of the valid range. Please try again!")
... # Continue asking for another guess, e.g., use continue
# Provide a hint if the guess is incorrect
if guess < secret_goal_number: # Replace with the secret goal number
print("Think bigger! Aim for a higher sustainability target!")
else:
print("A bit too ambitious! Try a lower sustainability target!")
continue # Continue asking for another guess