Cours d'introduction au langage de programmation Python

N.B. Niveau : Terminale S, enseignement de spécialité ISN (Informatique et Sciences du Numérique)



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 ★ Vérification de la saisie d'un RIB

Ecrire un script qui contrôle la validité d'un RIB.

La clé se calcule grâce à la formule suivante :

97-((89 * Code banque + 15 * Code guichet + 3 * Numéro de compte) modulo 97)

On pourra utiliser la fonction int()pour convertir le type str en type int.

Algorithme :

    1. Demander le code de la banque et stocker l'entier dans une variable.

    2. Demander le code du guichet et stocker l'entier dans une variable.

    3. Demander le numéro de compte et stocker l'entier dans une variable.

    4. Demander la clé et stocker l'entier dans une variable.

    3. Stocker dans une variable de contrôle le calcul de la clé.

    4. Vérifier l'égalité entre la clé saisie et la clé calculée puis afficher à l'écran la validité ou non du RIB.

Exemple :

>>>
Entrez votre code banque : -------> 58496
Entrez votre code guichet : ------> 87451
Entrez votre numéro de compte : --> 00014500269
Entrez votre clé de contrôle : ---> 13

Votre RIB est valide. >>>
Entrez votre code banque : -------> 58496
Entrez votre code guichet : ------> 87451
Entrez votre numéro de compte : --> 00014500269
Entrez votre clé de contrôle : ---> 72

Votre RIB est INVALIDE ! >>>

Faire valider le script par le professeur

Exercice 2.2 ★ Ecrire un script qui demande la température et affiche le résultat selon le tableau ci-dessous :

Température :Affichage
Inférieur ou égal à 0°ça gèle aujourd'hui !
Entre 0 et 10°il fait froid aujourd'hui
Entre 10 et 18°il ne fais pas trop trop froid aujourd'hui
Entre 18 et 25°il fait chaud aujourd'hui
Entre 25 et 30°il fait trop chaud aujourd'hui
Supérieur à 30°c'est la canicule aujourd'hui !

Par exemple :

>>>
Quelle température fait-il : -10
ça gèle aujourd'hui !
>>> Quelle température fait-il : 30.5
c'est la canicule aujourd'hui !
>>>

Faire valider le script par le professeur

Exercice 2.3 ★ Ecrire un script qui calcule le discriminant d'une équation du second degré : y= ax²+bx+c.

Afficher la ou les solutions lorsque c'est possible

Par exemple :

>>>
Résolution d'équation du second degré y=ax²+bx+c
Entrez la valeur de a ?
4
Entrez la valeur de b ? 4
Entrez la valeur de c ? 1

il y a une solution : S = -0.5 >>>
Résolution d'équation du second degré y=ax²+bx+c
Entrez la valeur de a ?
2
Entrez la valeur de b ? 3
Entrez la valeur de c ? 4

il n'y a pas de solutions réelle
>>>
Résolution d'équation du second degré y=ax²+bx+c
Entrez la valeur de a ?
1
Entrez la valeur de b ? 2
Entrez la valeur de c ? -3

il y a deux solutions : S1 = 1.0 et S2 = -3.0
>>>
Faire valider le script par le professeur

QCM

QCM sur les structures conditionnelles