N.B. Niveau : Terminale S, enseignement de spécialité ISN (Informatique et Sciences du Numérique)
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.
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
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
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
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+cFaire valider le script par le professeur
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
>>>
Contenu sous licence CC BY-NC-SA 3.0
Fabrice Sincère ; version 1.3.5.29
Modifié et adapté par Pascal Hassenforder 8/09/2017