Télécharger

publicité
II INSTRUCTIONS CONDITIONNELLES (ou TESTS)
A) TEST SIMPLE : si CONDITION alors faire INSTRUCTIONS.
La condition est une proposition (de valeur vrai ou faux) qui peut se traduire en python par une
expression booléenne qui sera notée COND. Les instructions peuvent être une instruction simple, ou un
bloc d'instructions (les deux cas sont désignés ici par BLOC).
Syntaxe:
if COND:
BLOC
Attention : ":" et passage à la ligne obligatoires après COND, ce qui crée automatiquement une
INDENTATION (équivalente à 4 espaces) au début de la ligne suivante, afin de délimiter le bloc. Tout le
bloc devra être indenté de cette manière (4 espaces ou utilisation de la touche de tabulation). L'instruction
suivant éventuellement le bloc n'est plus indentée.
En Python l'indentation est signifiante. Une indentation incorrecte entraîne une erreur.
Dans un éditeur de texte pour Python, le fait d'appuyer sur la touche enter après ":" provoque
automatiquement, en plus du passage à la ligne, une indentation équivalente à 4 espaces.
Tout le bloc d'instructions à réaliser si COND vaut True doit être indenté de cette manière.
La fin du bloc est matérialisée uniquement par un retour en début de ligne (Maj + Tab).
Si l'indentation ne se fait pas, c'est en général parce qu'on a oublié les ":"; pour corriger un script déjà
écrit où il manquerait une indentation, taper 4 espaces au début de chaque ligne du bloc ou appuyer sur la
touche de tabulation (Tab); pour supprimer une indentation : Maj + Tab.
Pour indenter (ou dédenter) plusieurs lignes en même temps, on peut aussi les sélectionner avec la souris
et utiliser les commandes Indenter et Dédenter du menu Edition
En principe il vaut mieux utiliser 4 espaces : c'est préférable pour la portabilité des scripts d'une
distribution Python à une autre. (Mais si on ne travaille qu'avec Pyzo cela n'a pas d'importance)
Si une variable apparaît dans l'expression booléenne COND, elle doit bien sûr être déclarée avant
l'instruction conditionnelle.
Exemple :
n=int(input('donnez un entier n: '))
if n>=10:
print(n,'est supérieur ou égal à 10')
print(n,'-10=',n-10)
print('terminé!')
Fonctionnement : L'expression booléenne COND est évaluée, si sa valeur est True, le bloc d'instructions
BLOC est réalisé, sinon il est ignoré.
Remarque : on peut imbriquer des tests simples :
n=int(input('entier n : '))
if n>=10:
print(n,'est supérieur ou égal à 10')
if n<100:
print('10<=',n,'<100')
print('terminé!')
B) TESTS AVEC ALTERNATIVE(S)
1) Tests à une alternative : si CONDITION faire INSTRUCTIONS1 sinon faire INSTRUCTIONS 2
Syntaxe:
if COND:
BLOC1
else:
BLOC2
Remarquer les indentations délimitant les blocs, et l'alignement du mot-clé else avec le mot clé if
Exemple:
n=int(input('donnnez un entier n: '))
if n>=10:
print(n,'est supérieur ou égal à 10')
else:
print(n,'est inférieur ou égal à 9')
print('terminé!')
Fonctionnement :L'expression booléenne COND est évaluée, si sa valeur est True, le bloc BLOC1 est
exécuté, sinon c'est le bloc BLOC2 qui l'est.
2) Tests à plusieurs alternatives
On peut imbriquer des tests à une alternative :
Si COND1, faire BLOC1, sinon, si COND2, faire BLOC2, sinon, faire BLOC3.
Syntaxe:
if COND1:
BLOC1
else:
if COND2:
BLOC2
else:
BLOC3
Python permet d'utiliser une formulation plus compacte avec le mot-clé elif (contraction de "else if"):
if COND1:
BLOC1
elif COND2:
BLOC2
else:
BLOC3
Remarquer l'alignement des mots-clés if, elif,
else et l'indentation des blocs.
Fonctionnement :
COND1 est évaluée;
- si elle est vraie, BLOC1 est exécuté (COND2 n'est pas évaluée) ,
- sinon, COND2 est évaluée, et si elle est vraie, BLOC2 est éxécuté, sinon (càd si COND1 et COND2 sont
toutes deux fausses), BLOC3 est éxécuté.
Il peut y avoir plusieurs alternatives commençant par elif
Exemple:
n=int(input('donnnez un entier naturel n: '))
if n == 0 :
print('n est nul')
elif n <= 10:
print('0 < n <=10')
elif n<30 :
print('10 < n < 30')
else:
print('n >= 30')
print('terminé')
Téléchargement