Les booléens

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

Les opérateurs de comparaison permettent de comparer deux valeurs entre elles :

  • a == b : renvoie vrai si a et b sont égaux
  • a != b : renvoie vrai si a et b sont différents
  • a < b : renvoie vrai si a est strictement plus petit que b
  • a <= b : renvoie vrai si a est plus petit ou égal à b
  • a > 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

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 :

Algorigramme

La forme “Si, Alors”

Syntaxe :

instructions avant
if condition:            #ne pas oublier ":"
    instructions si vrai #indentation
    …
instructions après       #remarquer la fin de l’indentation

Organigramme

Algorigramme

Exemple

temperature = 25
if temperature > 26:
    print("Il fait chaud !")
print("A Tahiti, il fait toujours bon ou chaud !")

La forme “Si, Alors, Sinon”

Syntaxe :

instructions avant
if condition:
    instructions si vrai (alors)else:
    instructions si faux (sinon)
    …
instructions après

Organigramme

Algorigramme

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.")

La forme “Si, Alors, Sinon-Si, …, Sinon”

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

Algorigramme

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é")

Imbrication de structures

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

Algorigramme

Forme ternaire

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))