Python: Tests conditionnels: Difference between revisions

From Wiki Cours
Jump to navigation Jump to search
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

<--Sommaire

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)