Archives Wild Code School
Python

Exécuter des étapes conditionnelles avec le flux de contrôle

Quête 30 sur 66 · 1 image archivée

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 :

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 :

python
# 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 :

  1. Objectif de revenu annuel : L'objectif pour l'année est de 1 000 000 €.
  2. 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 = True si le revenu annuel est de 1 200 000 € (au-dessus de l'objectif), sinon False.
  • retention_rate_target_met = True si le taux de rétention client est de 80% (au-dessus de l'objectif), sinon False.

É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 not pour 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
python
# 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 :

python
# 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.')

Info

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

  1. Définir la variable de température

    Définissez une variable nommée temperature et attribuez-lui une valeur représentant la température actuelle.

  2. Écrire les instructions if

    • Utilisez une instruction if pour 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 if pour 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 if pour vérifier si la température est supérieure à 15 degrés Celsius et inférieur à 25 degrés Celsius :
python
if temperature > 15 and temperature < 25:

Si vrai, affichez "It's a mild day. Feature the GreenThreads spring collection."

  1. Tester votre code

    Modifiez la valeur de temperature pour tester différents scénarios.

Solution

Voir la solution
python
# 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 :

python
# 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 :

True
False
Start IF
revenue >= 50_000
Revenue target achieved!
Allocate funds for sustainability projects.
Consider increasing the marketing budget for further growth.
Revenue target not achieved.
Analyze current marketing strategies.
Schedule a strategy meeting with the management team.
End IF

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

  1. Définir la variable météo

    Créez une variable nommée weather avec une chaîne représentant la météo ("sunny", "rainy", "cloudy").

  2. Écrire les instructions if et else

    • Utilisez une instruction if pour vérifier si le temps est "sunny" et suggérer une activité marketing en extérieur.
    • Utilisez une instruction else pour gérer les autres conditions météo et suggérer une campagne en ligne.
  3. Tester votre code

    Testez le programme avec différentes conditions météo.

Solution

Voir la solution
python
# 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 :

python
# 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 :

  1. Demandez à l'utilisateur d'entrer une note.
  2. Utilisez les instructions if, elif, et else pour 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 :

  1. Demandez l'âge à l'utilisateur.
  2. Utilisez les instructions if, elif, et else pour 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 :

  1. Demandez la température actuelle.
  2. 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

python
# 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

python
# 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

python
# 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.

False
True
Start WHILE
Condition
Execute Something
End WHILE

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 :

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

  1. Initialiser les variables :
    • Variable d'économies : Créez une variable nommée total_savings et initialisez-la à 0. Cette variable contiendra le total cumulé des économies d'énergie.
    • Variable compteur de jours : Créez une variable nommée day_counter et initialisez-la à 1. Cette variable sera utilisée pour itérer sur les jours de 1 à 100.
  2. Utiliser une boucle while pour calculer les économies d'énergie totales :
    • Utilisez une boucle while pour ajouter continuellement la valeur de day_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, augmentez day_counter de 1.
    • Continuez la boucle jusqu'à ce que day_counter dépasse 100.
  3. 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.

Solution

Voir la solution
python
# 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.

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

  1. Initialiser les variables :

    • Variable d'économies : Créez une variable nommée total_savings et 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_counter et initialisez-la à 1. Cette variable sera utilisée pour représenter chaque jour.
    • Variable Cible : Définissez une variable nommée target et fixez-la à 100. C'est le seuil auquel la boucle doit s'arrêter.
  2. Utiliser une boucle while pour calculer les économies cumulées :

    • Utilisez une boucle while qui s'exécute indéfiniment jusqu'à ce qu'une condition à l'intérieur de la boucle déclenche une instruction break.
    • À 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_counter de 1 pour passer au jour suivant.
    • Incluez une instruction if pour vérifier si total_savings a atteint ou dépassé la target.
    • Utilisez l'instruction break pour 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 utilisant break.

  3. 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
python
# 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 :

python
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 continue pour sauter l'affichage les jours de maintenance.

Scénario :

  1. Initialiser le compteur de jours :
    • Commencez avec une variable nommée day initialisée à 1. Celle-ci gardera la trace du jour en cours de traitement.
  2. Utiliser une boucle while :
    • Créez une boucle while qui s'exécute tant que day est inférieur ou égal à 50.
  3. Vérifier les jours de maintenance :
    • À l’intérieur de la boucle, utilisez une instruction if pour 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 : si hour % 24 == 0, cela signifie que le reste de la division de hour par 24 est égal à 0, donc hour est 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.
  4. Afficher le nombre d'arbres plantés :
    • Si day n'est pas un multiple de 7, affichez le message indiquant le nombre d'arbres plantés ce jour-là.
  5. Incrémenter le compteur de jours :
    • Augmentez day de 1 après chaque itération pour traiter le jour suivant.

Solution

Voir la solution
python
# 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.

python
# 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 :

  1. Définissez une variable de type chaîne de caractères avec un message écologique, comme "Reduce, Reuse, Recycle".
  2. Initialisez des compteurs pour chaque caractère que vous souhaitez rechercher.
  3. Utilisez une boucle for pour examiner chaque caractère dans la chaîne.
  4. Mettez à jour les compteurs en fonction des caractères que vous trouvez.
  5. 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 :

  1. Utilisez une boucle for avec range() pour créer un compte à rebours de 10 à 1.
  2. À l'intérieur de la boucle, vérifiez si le nombre actuel est divisible par 3.
  3. Si le nombre est divisible par 3, affichez "Plant a Tree!" au lieu du nombre.
  4. Si le nombre n'est pas divisible par 3, affichez le nombre lui-même.
  5. 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.

python
# 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

python
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

python
# 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

python
# 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.

python
# 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

python
# 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

python
# 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

python
# 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

python
# 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