Python - Les conditions
La valeur booléenne
Convertir une valeur booléenne et non-booléenne
Les opérateurs d'égalité
Les opérateurs logiques booléens
Les opérateurs de comparaison
Quiz - Les opérations booléennes
Structure "if"
Structure if ... else
Structure if ... elif ... else
L'importance de l'indentation en Python
Structures conditonnelles imbriquées
Opérateur ternaire
Quiz - Les structures conditionnelles
Expressions booléennes
Analyse des résultats de capteurs et tests logiques
Calcul maximum de 4 chiffres aléatoires
Un mot de passe sécuritaire
FizzBuzz d'un nombre
Calculateur de chance de réussite
Code Snippets
Python - Les conditions
# On demande à l'utilisateur d'entrer la température actuelle
temperature = int(input("Quelle est la température actuelle (en degrés Celsius) ? "))
# Structure conditionnelle pour décider s'il faut porter un manteau
if temperature < 10:
print("Il fait froid ! Vous devriez porter un manteau.")
elif 10 <= temperature <= 20:
print("Il fait un peu frais, une veste légère suffira.")
else:
print("Il fait chaud ! Pas besoin de manteau aujourd'hui.")
La valeur booléenne
print(True)
print(False)
Convertir une valeur booléenne et non-booléenne
print(True + True) # 2
print(15 * False) # 0
print(15 * True) # 15
print(bool("Bonjour")) # True, car la chaine n'est pas vide
print(bool("False")) # True, car la chaine n'est pas vide
print(bool("")) # False, car la chaine est vide
print(bool(0)) # False, car 0 vaut False
print(bool(-1)) # True, car le nombre n'est pas 0
s = str(True)
print(type(s))
print("La valeur est " + s)
b = bool("Bonjour, monde!")
print(type(b))
print(b)
# Cause une erreur, car l'opération `+` n'est pas définie
# pour les chaînes et les booléens
# Défi: modifiez ce code pour le rendre valide
print("La valeur est " + False)
Les opérateurs d'égalité
print("--- ENTIERS ---")
print(4 == 2)
print(2 == 3)
print("--- DÉCIMAUX ---")
print(3.2300 == 3.23)
print(3.230 == 3.232)
print("--- BOOLÉENS ---")
print(True == True)
print(True == False)
print("--- CHAÎNES ---")
print("hello" == "hello")
print("hello" == "HELLO")
print("--- MÉLANGE ---")
print("12" == 12)
print("True" == True)
# Rappel: True vaut 1 et False vaut 0
print(True == 1)
print(False == 0)
print("--- ENTIERS ---")
print(2 != 2)
print(2 != 3)
print("--- DÉCIMAUX ---")
print(3.2300 != 3.23)
print(3.230 != 3.232)
print("--- BOOLÉENS ---")
print(True != True)
print(True != False)
print("--- CHAÎNES ---")
print("hello" != "hello")
print("hello" != "HELLO")
Code Snippets
print("--- Valeurs litérales ---")
x = 2
y = 2
print(x is y)
print(x is not y)
print("--- Listes différentes ---")
x = [1, 2, 3]
y = [1, 2, 3]
print(x is y) # Pas le même objet liste (emplacement mémoire différent), donc False
print(x is not y)
print("--- Listes identiques ---")
x = [1, 2, 3]
y = x
print(x is y) # Même objet liste (même emplacement mémoire), donc True
print(x is not y)
Les opérateurs logiques booléens
print(not False)
print(not True)
print(False and False)
print(False and True )
print(True and False)
print(True and True )
print(False or False)
print(False or True )
print(True or False)
print(True or True )
Les opérateurs de comparaison
print("--------- > ---------")
print(10 > 5) # True
print(5 > 10) # False
print(10 > -10) # True
print(-10 > 10) # False
print(101 > 100) # True
print(100 > 100) # False
print("--------- >= ---------")
print(10 >= 5) # True
print(5 >= 10) # False
print(10 >= -10) # True
print(-10 >= 10) # False
print(101 >= 100) # True
print(100 >= 100) # True
print("--------- < ---------")
print(10 < 5) # False
print(5 < 10) # True
print(10 < -10) # False
print(-10 < 10) # True
print(101 < 100) # False
print(100 < 100) # False
print("--------- <= ---------")
print(10 <= 5) # False
print(5 <= 10) # True
print(10 <= -10) # False
print(-10 <= 10) # True
print(101 <= 100) # False
print(100 <= 100) # True
print(2 < 21 and 21 < 32) # Vérifie que 21 est entre 2 et 32 exclu
print(2 < 21 < 32) # Cette expression donne le même résultat
print(2 < 21 > 4) # Vérifie que 21 est plus grand que 2 et 4
print(2 < 21 and 21> 4) # Cette expression donne le même résultat
Code Snippets
a_minuscule = "a" # Position 97
a_majuscule = "A" # Position 65
print(ord(a_minuscule)) # Affiche la position dans la table d'encodage
print(ord(a_majuscule)) # Affiche la position dans la table d'encodage
print("a" > "A")
print("A" > "a")
print("*" * 50)
print("7apple" >"a")
print("a" < "b")
print("7banane" < "b")
print("*" * 50)
# Avec plus que 1 caractère
print("bye" > "bonjour") # ord('b') == ord('b') -> ord('y') > ord('o') -> donc "bye" est plus grand
# Avec unicode
print("\U0001F601", "\U0001F600")
print("\U0001F601" > "\U0001F600")
nom1 = "Mégane"
nom2 = "Mélissa"
# True, car nom1 est avant nom2 en ordre alphabétique
print(nom1 < nom2)
Structure "if"
operation0
if <condition>:
operation1
operation2
operation3
age = int(input("Quel est ton âge"))
if age < 18:
print("Tu es mineur")
print("--- Fin du programme ---")
Structure if ... else
operation0
if <condition>:
operation1
else:
operation2
operation3
age = int(input("Quel est ton âge"))
if age < 18:
print("Tu es mineur")
else:
print("Tu es majeur")
print("--- Fin du programme ---")
age = int(input("Quel est ton âge"))
if age < 20:
print("Tu a moins de 20 ans")
else:
if age < 30:
print("Tu es dans la vingtaine!")
else:
if age < 40:
print("Tu es dans la trentaine!")
else:
print("Tu as 40 ans ou plus!")
print("--- Fin du programme ---")
Code Snippets
Structure if ... elif ... else
operation0
if <condition1>:
operation1
elif <condition2>:
operation2
elif <condition3>:
operation3
else:
operation4
operation5
age = int(input("Quel est ton âge"))
if age < 20:
print("Tu a moins de 20 ans")
else:
if age < 30:
print("Tu es dans la vingtaine!")
else:
if age < 40:
print("Tu es dans la trentaine!")
else:
print("Tu as 40 ans ou plus!")
print("--- Fin du programme ---")
age = int(input("Quel est ton âge"))
if age < 20:
print("Tu a moins de 20 ans")
elif age < 30:
print("Tu es dans la vingtaine!")
elif age < 40:
print("Tu es dans la trentaine!")
else:
print("Tu as 40 ans ou plus!")
print("--- Fin du programme ---")
L'importance de l'indentation en Python
if 2 == 2:
print("Opération à l'intérieur du if")
print("Opération encore à l'intérieur du if")
print("Opération à l'extérieur du if")
if 2 > 10:
print("2 > 10")
print("Ne s'exécute jamais")
elif 2 > 5:
print("2 > 5")
print("Ne s'exécute jamais")
else:
print("2 <= 5")
print("S'exécute toujours")
if 2 == 2:# Erreur manque une indentation
print("Opération à l'extérieur du if. Le if est donc vide, erreur de syntaxe")
if 2 == 2:
print("Ici")
print("Ici 2") # Erreur indentation en trop
Structures conditonnelles imbriquées
if <condition #1>
if <condition #11>:
if <condition #111>:
<bloc instructions #111>
Code Snippets
# Variables d'exemple
type_de_vehicule = "voiture"
couleur = "rouge"
marque = "Ferrari"
# Bloc conditionnel
if type_de_vehicule == "voiture":
if couleur == "rouge":
if marque == "Ferrari":
print("C'est une Ferrari rouge.")
else:
print("C'est une voiture rouge, mais pas une Ferrari.")
else:
print("C'est une voiture d'une autre couleur.")
elif type_de_vehicule == "moto":
if marque == "Harley-Davidson":
print("C'est une Harley-Davidson.")
else:
print("C'est une autre moto.")
print("Identification du véhicule terminée.")
Opérateur ternaire
a = int(input("Entrez le premier chiffre"))
b = int(input("Entrez le deuxième chiffre"))
if a > b:
minimum = b
else:
minimum = a
print("Le minimum est :", minimum)
a = int(input("Entrez le premier chiffre"))
b = int(input("Entrez le deuxième chiffre"))
minimum = b if a > b else a
print("Le minimum est :", minimum)
x = int(input("Entre un chiffre")) # On veut que x soit de max 100
x_borne = 100 if x > 100 else x # x borné à 100
print(x_borne)
Code Snippets
Analyse des résultats de capteurs et tests logiques
import math
# ------- 1. Données brutes de capteurs ------- #
# Évaluez les expressions booléennes suivantes pour différentes
# combinaisons des valeurs des capteurs. Quelle sera la sortie booléenne ?
# Expliquez vos résultats.
# a.
True and False or True and True or False
# Votre réponse ici:
# b.
False or (True and (False or True)) and True
# Votre réponse ici:
# c.
(True and False) == ((False or True) and False)
# Votre réponse ici:
# d. Pourquoi les deux côtés sont-ils équivalents ? Observez-vous un motif particulier (« pattern ») ?
# i.
(True or False) == (not (True and False))
# Votre réponse ici:
# ii.
(False or True and True) == (not (False and (True or False)))
# Votre réponse ici:
# iii.
(False and True) == (not (True or True))
# Votre réponse ici:
# ------- 2. Analyse des valeurs mesurées des capteurs ------- #
#Vous avez trois capteurs dans votre serre qui mesurent différents paramètres
# environnementaux : température, humidité, et intensité lumineuse.
# Soit la variable valeur qui représente la sortie d'un capteur donné.
# a. valeur = 18 (température en degrés Celsius)
# b. valeur = 78 (humidité en pourcentage)
# c. valeur = 1000 (intensité lumineuse en lux)
valeur = 18
(valeur % 2 == 0 and valeur > 0) or (valeur > 50 and valeur // 10 == 7) and ((valeur * 10) // 100 == valeur // 10)
# Quel est le résultat de l'expression suivante selon la valeur de 'valeur' ?
# a :
# b :
# c :
# ------- 3. Comparaison des capteurs ------- #
# Trois capteurs mesurent les variables suivantes : température, pression,
# et CO ‚. Comparez les résultats renvoyés par ces capteurs en utilisant
# des opérateurs booléens complexes.
# a.
capteur1 = "Température"
capteur2 = "Humidité"
capteur3 = "Lumière"
capteur2 < capteur1 > capteur3 # équivalent à capteur2 < capteur1 and capteur1 > capteur3
# Votre réponse ici:
# b.
i = 1
ii = 2
iii = 3
iv = 4
v = 5
((v != ii) <= (iii < iv) == i)
# Votre réponse ici:
# ------- 4. Vérification des formats des données mesurées ------- #
# Lors de l'analyse des données, vous remarquez que certains formats
# ne sont pas standards. Vous devez vérifier si les formats respectent
# certaines conditions.
# a.
capteur1 = "lum"
capteur2 = "humid"
capteur3 = "Temp"
capteur1[:3] == capteur3[1:4] and [Link]("u") == [Link]("T") and capteur3[:].replace("Temp", "Hum") == capteur2
# Votre réponse ici:
Analyse des résultats de capteurs et tests logiques
# b.
valeur1 = "5"
valeur2 = "23"
valeur3 = "23e-5"
(valeur1 == 5 or ((str(5) == valeur1) and (int(valeur1) == 5))) and (int(float(valeur3)) == 0) and ((float(valeur3) * 1e5) == int(valeur2))
# Votre réponse ici:
Calcul maximum de 4 chiffres aléatoires
# Écrivez votre code ci-dessous:
import random
# Générer 4 chiffres aléatoires entre 0 et 100
num1 = [Link](0, 100)
num2 = [Link](0, 100)
num3 = [Link](0, 100)
num4 = [Link](0, 100)
# Afficher les 4 chiffres
print(f"Les 4 chiffres générés sont : {num1}, {num2}, {num3}, {num4}")
# Complétez le reste du code pour trouver le maximum des 4 chiffres avec if-elif-elifelse
# Complétez le reste du code pour trouver le maximum des 4 chiffres avec Math
Un mot de passe sécuritaire
# Écrivez votre code ci-dessous:
FizzBuzz d'un nombre
# Écrivez votre code ci-dessous:
Calculateur de chance de réussite
Entrez votre nom : Sarah
Chance de réussite : 45%
Entrez votre nom : Christophe
Chance de réussite : 78%
import random
import math
# Demander à l'utilisateur d'entrer son nom
nom = input("Entrez votre nom : ")
# Calculer une chance de réussite aléatoire entre 0 et 100
chance_initiale = [Link](0, 100)
# Complétez le reste du code pour ajouter un bonus et afficher la chance de réussite