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é')
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !