Cours d'introduction au langage de programmation Python

N.B. Niveau : Première Générale, enseignement de spécialité NSI (Numérique et Sciences Informatiques)

Chapitre 2 - Les conditions

L'instruction if

Syntaxe :

if (expression): # ne pas oublier le signe de ponctuation ':'
bloc d'instructions # attention à l'indentation
# suite du programme

Si l'expression est vraie (True) alors le bloc d'instructions est exécuté.
Si l'expression est fausse (False) on passe directement à la suite du programme.

Premier script

Nous allons commencer par créer le script Condition1.py :

Ouvrir IDLE :
Démarrer → Programmes → Python → Edupyton

Fichier → Sauvegarder sous
Répertoire : z:\ISN
Nom du fichier : Condition1.py

# script Condition1.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>=10.0:
# ce bloc est exécuté si l'expression (note>=10.0) est vrai
print ('J\'ai la moyenne')
print ('Fin du programme')

Pour exécuter le script :
Exécuter → Exécuter (ou touche crtl+F9)

>>>
Note sur 20 : 16
J'ai la moyenne
Fin du programme

>>>
Note sur 20 : 5
Fin du programme

L'instruction else

Une instruction else est toujours associée à une instruction if

Syntaxe :

if (expression):
bloc d'instructions 1 # attention à l'indentation
else: # else est au même niveau que if
bloc d'instructions 2 # attention à l'indentation
# suite du programme

Si l'expression est vraie (True) alors le bloc d'instructions 1 est exécuté.
Si l'expression est fausse (False) alors c'est le bloc d'instructions 2 qui est exécuté.

# script Condition2.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>=10.0:
# ce bloc est exécuté si l'expression (note>=10.0) est vrai
print ('J\'ai la moyenne')
else:
# ce bloc est exécuté si l'expression (note>=10.0) est fausse
print ('C\'est en-dessous de la moyenne')
print ('Fin du programme')
>>>
Note sur 20 : 15
J'ai la moyenne
Fin du programme

>>>
Note sur 20 : 8.5
C'est en-dessous de la moyenne
Fin du programme

>>>
Note sur 20 : 56
J'ai la moyenne
Fin du programme

Pour traiter le cas des notes invalides (<0 ou >20), on peut imbriquer des instructions conditionnelles :

# script Condition3.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>20.0 or note<0.0:
# ce bloc est exécuté si l'expression (note>20.0 or note<0.0) est vrai
print ('Note invalide !')
else:
# ce bloc est exécuté si l'expression (note>20.0 or note<0.0) est fausse
if note>=10.0:
# ce bloc est exécuté si l'expression (note>=10.0) est vrai
print ('J\'ai la moyenne')
else:
# ce bloc est exécuté si l'expression (note>=10.0) est fausse
print ('C\'est en-dessous de la moyenne')
print ('Fin du programme')
>>>
Note sur 20 : 56
Note invalide !
Fin du programme

>>>
Note sur 20 : 14.6
J'ai la moyenne
Fin du programme

On ajoute encore un niveau d'imbrication pour traiter les cas particuliers 0 et 20 :

# script Condition4.py
chaine = input("Note sur 20 : ")
note = float(chaine)
if note>20.0 or note<0.0:
print ('Note invalide !')
else:
if note>=10.0:
print ('J\'ai la moyenne')
if note==20.0:
# ce bloc est exécuté si l'expression (note==20.0) est vrai
print ('C\'est même excellent !')
else:
print ('C\'est en-dessous de la moyenne')
if note==0.0:
# ce bloc est exécuté si l'expression (note==0.0) est vrai
print ('... pitoyable !')
print ('Fin du programme')
>>>
Note sur 20 : 20
J'ai la moyenne
C'est même excellent !
Fin du programme

>>>
Note sur 20 : 3
C'est en-dessous de la moyenne
Fin du programme

L'instruction elif

Une instruction elif (contraction de else if) est toujours associée à une instruction if

Syntaxe :

if (expression 1):
bloc d'instructions 1
elif (expression 2):
bloc d'instructions 2
elif (expression 3):
bloc d'instructions 3 # ici deux instructions elif, mais il n'y a pas de limitation
else:
bloc d'instructions 4
# suite du programme

Si l'expression 1 est vraie alors le bloc d'instructions 1 est exécuté, et on passe à la suite du programme.
Si l'expression 1 est fausse alors on teste l'expression 2 :

Le bloc d'instructions 4 est donc exécuté si toutes les expressions sont fausses (c'est le bloc "par défaut").

Parfois il n'y a rien à faire.
Dans ce cas, on peut omettre l'instruction else :

if (expression 1):
bloc d'instructions 1
elif (expression 2):
bloc d'instructions 2
elif (expression 3):
bloc d'instructions 3
# suite du programme

L'instruction elif évite souvent l'utilisation de conditions imbriquées (et souvent compliquées).

Exemple :

# script Condition5.py
# ce script fait la même chose que Condition4.py
note = float(input("Note sur 20 : "))
if note==0.0:
print ('C\'est en-dessous de la moyenne')
print ('... pitoyable !')
elif note==20.0:
print ('J\'ai la moyenne')
print ('C\'est même excellent !')
elif note<10.0 and note>0.0: # ou bien : elif 0.0 < note < 10.0:
print ('C\'est en-dessous de la moyenne')
elif note>=10.0 and note<20.0: # ou bien : elif 10.0 <= note < 20.0:
print ('J\'ai la moyenne')
else:
print ('Note invalide !')
print ('Fin du programme')
>>>
Note sur 20 : 20
J'ai la moyenne
C'est même excellent !
Fin du programme

>>>
Note sur 20 : 3
C'est en-dessous de la moyenne
Fin du programme

>>>
Note sur 20 : 77
Note invalide !
Fin du programme

Exercices

Exercice 2.1 ★ Le numéro de sécurité sociale est constitué de 13 chiffres auquel s'ajoute la clé de contrôle (2 chiffres).
On rappelle que la clé de contrôle est calculée par la formule : 97 - (numéro de sécurité sociale % 97)

Ecrire un script qui contrôle la validité d'un numéro de sécurité sociale.
On pourra utiliser la fonction int()pour convertir le type str en type int lors de l'instruction input.
Exemple d'exécution :

>>>
Entrer votre numéro de sécurité sociale (13 chiffres) --> 1891126108268
Entrer votre clé de contrôle (2 chiffres) --------------> 91
Votre numéro de sécurité sociale est valide.
>>>
Entrer votre numéro de sécurité sociale (13 chiffres) --> 2891126108268
Entrer votre clé de contrôle (2 chiffres) --------------> 91
Votre numéro de sécurité sociale est INVALIDE !
>>>

Faire valider le script par le professeur

Exercice 2.2 ★ Ecrire un script qui demande la note au bac et qui affiche la mention correspondante.
Si la note est inférieure à 8 : recalé
Si la note est supérieure ou égale à 8 et inféreur à 10 : second tour
Si la note est spérieure ou égale à 10 et inférieur à 12 : sans mention
Si la note est spérieure ou égale à 12 et inférieur à 14 : assez bien
Si la note est spérieure ou égale à 14 et inférieur à 16 : bien
Si la note est spérieure ou égale à 16  : très bien

Par exemple :

>>>
Note au bac (sur 20) : 13.5
Bac avec mention Assez Bien
>>>
Note au bac (sur 20) : 10.9
Bac sans mention mention
>>>
Note au bac (sur 20) : 4
Recalé
>>>

Faire valider le script par le professeur

Exercice 2.3 ★ Ecrire un script qui calcule la distance à laquelle il faut se trouver des hauts parleurs.

A partir de 85 dB, le son est nocif. Et plus il y a de décibels, plus le danger augmente. Dans les discothèques, le son avoisine les 100 dB.
Les risques ? Une fatigue auditive passagère, des acouphènes, un traumatisme auditif irréversible, voire la rupture du tympan.
source https://www.quies.fr

Connaissant le niveau sonore à 1m des hauts parleurs, on peut calculer la distance de sécurité : ds=10(db-85)/20

Utilisez la condition elif pour réduire les tests

Par exemple :

>>>
Entrer le nombre de décibels à 1m du HP ? 95
Vous vous situez dans le seuil de risque
Il faudrait vous positionner au moins à 3.1 m des HP

>>>
Les seuils sont les suivants :


Faire valider le script par le professeur

QCM

QCM sur les structures conditionnelles