Python: Tests conditionnels: Difference between revisions
Wiki-cours (talk | contribs) No edit summary |
|||
(13 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
== Opérateurs de comparaison == | == Opérateurs de comparaison == | ||
Ils prennent deux arguments (opérateurs binaires) et les comparent, retournant un booléen | Ils prennent deux arguments (ce sont des opérateurs binaires) et les comparent, retournant un booléen. | ||
{| class="wikitable" border="1" | |||
! symbole | |||
! signification | |||
|----- | |||
| == | |||
| égal | |||
|-{{ligne grise}} | |||
| != | |||
| différent (non égal) | |||
|-{{ligne grise}} | |||
| < | |||
| strictement inférieur | |||
|-{{ligne grise}} | |||
| <= | |||
| inférieur ou égal | |||
|----- | |||
| > | |||
| strictement supérieur | |||
|-{{ligne grise}} | |||
| >= | |||
| supérieur ou égal | |||
|} | |||
Vous pouvez essayer quelques exemples qui renvoient un booléen : | |||
<source lang=python> | |||
1 < 2 | |||
1 > 2 | |||
6 == 2*3 | |||
</source> | |||
Il existe des mots-clé qui retournent des booléens et fonctionnent un peu comme ces opérateurs de comparaison: '''is''', '''not''', '''and''', '''or''', '''in'''. Les résultats sont intuitifs et permettent une lecture aisée du code | |||
<source lang=python> | |||
not False | |||
a = 1 | |||
a is 1 | |||
a is 2 | |||
a is not 1 | |||
a and False | |||
a or False | |||
a in [0,2,4] | |||
a in [0,1,2] | |||
False and False or True | |||
</source> | |||
Il est possible d'utiliser des comparaisons multiples en Python | |||
<source lang=python> | |||
if a < x and x < b: | |||
</source> | |||
peut se simplier en | |||
<source lang=python> | |||
if a < x < b: | |||
</source> | |||
Exemple : | |||
<source lang=python> | |||
1 <= 2 <= 10 | |||
</source> | |||
== Structure de tests == | == Structure de tests == | ||
Pour tester un booléen: | |||
<source lang=python> | <source lang=python> | ||
if test: | if test: | ||
Line 14: | Line 67: | ||
.... | .... | ||
</source> | </source> | ||
Structure avec plusieurs tests pris successivement | |||
<source lang=python> | |||
if test1: | |||
.... | |||
elif test2: # si test1 a retourné False | |||
.... | |||
elif test3: # si test1 et test2 ont retourné False | |||
.... | |||
else: # si aucun test n'a donné True avant | |||
.... | |||
</source> | |||
== Opérateur ternaire == | == Opérateur ternaire == |
Latest revision as of 17:38, 26 September 2018
Opérateurs de comparaison
Ils prennent deux arguments (ce sont des opérateurs binaires) et les comparent, retournant un booléen.
symbole | signification |
---|---|
== | égal |
!= | différent (non égal) |
< | strictement inférieur |
<= | inférieur ou égal |
> | strictement supérieur |
>= | supérieur ou égal |
Vous pouvez essayer quelques exemples qui renvoient un booléen :
1 < 2
1 > 2
6 == 2*3
Il existe des mots-clé qui retournent des booléens et fonctionnent un peu comme ces opérateurs de comparaison: is, not, and, or, in. Les résultats sont intuitifs et permettent une lecture aisée du code
not False
a = 1
a is 1
a is 2
a is not 1
a and False
a or False
a in [0,2,4]
a in [0,1,2]
False and False or True
Il est possible d'utiliser des comparaisons multiples en Python
if a < x and x < b:
peut se simplier en
if a < x < b:
Exemple :
1 <= 2 <= 10
Structure de tests
Pour tester un booléen:
if test:
....
else:
....
Structure avec plusieurs tests pris successivement
if test1:
....
elif test2: # si test1 a retourné False
....
elif test3: # si test1 et test2 ont retourné False
....
else: # si aucun test n'a donné True avant
....
Opérateur ternaire
Il arrive souvent qu'il y ait deux résultats simples possibles après le test d'une condition. Il est dans ce cas un peu lourd d'utiliser la structure if ...: else: .... Cela peut être écrit en une ligne selon
res = restrue if test_condition else resfalse
# exemple: minimum entre x et y
minimum = x if x<y else y
# ou même définition de la fonction Min avec lambda
Min = lambda x,y: x if x<y else y
Min(10,2)