En programmation, un booléen est un type de donnée qui ne peut prendre que deux valeurs :
True(vrai)False(faux)
Les booléens sont souvent le résultat d’une comparaison, ou de la combinaison de plusieurs conditions en utilisant des opérateurs booléens.
Les opérateurs sur les booléens sont le not (inversion de valeur), le or
(l’un ou l’autre ou les deux - cf ’ou’ inclusif) et le and (l’un et l’autre).
a = True
b = not a #b: False
c = a or b #c: True or False -> True
d = a and b #d: True and False -> False
Le résultat de ces opérations booléennes est indiqué dans les tables de vérité.
Table de vérité du “and”
| a | b | a and b |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
Table de vérité du “or”
| a | b | a or b |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
Le or est un “ou inclusif" : le résultat est vrai même si ’a’ et ’b’ sont
tous les deux vrais, ce qui ne serait pas le cas avec un “ou exclusif” qui
s’obtient avec l’expression : (a or b) and not (a and b).
Simplifications
- Quelle que soit la valeur de
a: True or a = True - Quelle que soit la valeur de
a: False and a = False
L’application de ces règles permet au développeur de simplifier les expressions booléennes. De plus, lors de l’exécution d’un programme, cela donne lieu à l’évaluation paresseuse ; exemple : dans le cas d’un ’ou’, si la première partie de l’expression est vraie, la deuxième partie n’est même pas évaluée.
Les opérateurs de comparaison permettent de comparer deux valeurs entre elles :
a == b: renvoie vrai si a et b sont égauxa != b: renvoie vrai si a et b sont différentsa < b: renvoie vrai si a est strictement plus petit que ba <= b: renvoie vrai si a est plus petit ou égal à ba > b,a >= b
La comparaison des chaînes se fait de façon alphabétique, ainsi “Arika" < "Ati” (ce n’est pas la longueur du mot qui compte, et ici, “r” est avant “t”). Plus exactement c’est la valeur numérique associée au caractère (cf table American Standard Code for Information Interchange) qui est prise en compte ; exemples :
- ’ ’ (l’espace) vaut 32
- ’1’ vaut 49, ’2’ vaut 50, etc. - attention : 12 < 100 (les nombres), mais “12" > "100"…
- ’A’ vaut 65, ’B’ vaut 66, etc.
- ’a’ vaut 97, ’b’ vaut 98, etc.
La structure alternative permet d’exécuter du code selon des conditions. Plusieurs formes existent.
Programme exemple
TAUX = 1000/8.38 #constante
saisie = input("Entrer un prix (exemples : 15.35 € ou 1000 XPF) : ")
if "€" in saisie: #si la condition est vraie
valeur = float(saisie.replace("€", "")) #enlève le "€"
prix_converti = int(valeur * TAUX) #arrondi (pas de centimes)
monaie_conversion = " XPF"
else: #sinon (condition fausse)
valeur = int(saisie.replace("XPF", ""))
prix_converti = round(valeur / TAUX, 2) #arrondi a 2 décimales
monaie_conversion = " €"
print("Prix équivalent : " + str(prix_converti) + monaie_conversion)
Organigramme exemple
L’algorigramme du programme exemple montre les différents cheminements possibles :
Syntaxe :
instructions avant
if condition: #ne pas oublier ":"
instructions si vrai #indentation
…
instructions après #remarquer la fin de l’indentation
Organigramme
Exemple
temperature = 25
if temperature > 26:
print("Il fait chaud !")
print("A Tahiti, il fait toujours bon ou chaud !")
Syntaxe :
instructions avant
if condition:
instructions si vrai (alors)
…
else:
instructions si faux (sinon)
…
instructions après
Organigramme
Exemple
age = int(input("Saisis ton âge : "))
if age >= 18:
print("Tu es majeur.")
else:
print("Tu es mineur.")
print("A chaque âge ses plaisirs.")
Il peut y avoir une à plusieurs clauses elif.
Syntaxe
instructions avant
if condition A:
cas A
elif condition B: #elif : Sinon-Si
cas B
elif condition C:
cas C
else:
Autres cas
instructions après
Organigramme
Exemple
note = int(input("Saisis ta note : "))
if note >= 16:
print("Très bien !")
elif note >= 14:
print("Bien !")
elif note >= 12:
print("Assez bien.")
else:
print("Peut mieux faire.")
print("L’entraînement, c’est la clé")
Les structures alternatives peuvent être imbriquées les unes dans les autres.
syntaxe
Exemple avec un “Si, Alors” imbriqué dans le “Alors” d’un “Si, Alors, Sinon" :
if cond.1:
if cond.2:
…
else:
…
Organigramme
Il existe une autre forme de l’alternative, qui sert à obtenir une valeur
et qui s’écrit sur une seule ligne : valeur_si_vrai if condition else valeur_si_faux.
Par exemple le programme qui accorde une remise de 10% si le montant total des achats dépasse 10 000 XPF :
total = int(input("Saisir le montant des achats : "))
if total > 10000:
remise = int(total * 0.1)
else:
remise = 0
print("À payer (remise déduite) : " + str(total - remise))
peut s’écrire en utilisant la forme ternaire :
total = int(input("Saisir le montant des achats : "))
remise = int(total * 0.1) if total > 10000 else 0
print("À payer (remise déduite) : " + str(total - remise))