Contrôle conditionnel Python3
Les instructions conditionnelles Python déterminent quel bloc de code exécuter en fonction du résultat d'exécution (True ou False) d'une ou plusieurs instructions.
Le processus d'exécution des instructions conditionnelles peut être brièvement compris grâce au diagramme suivant :
Processus d'exécution du code :

Mots-clés de jugement conditionnel
| Mot-clé / Fonction | Description | Exemple |
|---|---|---|
if |
Instruction de jugement conditionnel, exécute le bloc de code lorsque la condition est True | if x > 0: |
elif |
Branche de jugement multi-conditions (else if) | elif x == 0: |
else |
Exécuté lorsque toutes les conditions ne sont pas satisfaites | else: |
pass |
Instruction vide, utilisée comme espace réservé pour garantir une syntaxe complète | if x > 0: pass |
match |
Correspondance de motifs structurée (Python 3.10+, similaire à switch) | match x: case 1: ... |
Instruction if
La forme générale d'une instruction if en Python est la suivante :
- Si "condition_1" est True, le bloc d'instructions "statement_block_1" sera exécuté.
- Si "condition_1" est False, "condition_2" sera évaluée.
- Si "condition_2" est True, le bloc d'instructions "statement_block_2" sera exécuté.
- Si "condition_2" est False, le bloc d'instructions "statement_block_3" sera exécuté.
En Python,elifest utilisé au lieu deelse if, donc les mots-clés de l'instruction if sont :if – elif – else。
Remarque :
- 1. Un deux-points doit être utilisé après chaque condition:, indiquant que ce qui suit est le bloc d'instructions à exécuter lorsque la condition est remplie.
- 2. Utilisez l'indentation pour diviser les blocs d'instructions. Les instructions ayant le même nombre d'indentations forment ensemble un bloc d'instructions.
- 3. Il n'existe pas d'switch...caseinstruction en Python, mais dans la version 3.10, l'instructionmatch...casea été ajoutée, avec des fonctionnalités similaires. Voir ci-dessous pour plus de détails.
Démo GIF :

Exemple
Voici un exemple simple d'instruction if :
Exemple
Après exécution du code ci-dessus, la sortie est :
1 - if 表达式条件为 true 100 Good bye!
D'après le résultat, on peut voir que, parce que la variable var2 vaut 0, l'instruction à l'intérieur du if correspondant n'a pas été exécutée.
L'exemple suivant montre le calcul et l'estimation de l'âge d'un chien :
Exemple
Enregistrez le script ci-dessus dans le fichier dog.py et exécutez le script :
$ python3 dog.py 请输入你家狗狗的年龄: 1 相当于 14 岁的人。 点击 enter 键退出
Voici les opérateurs couramment utilisés dans if :
| Operator | Description |
|---|---|
< |
Inférieur à |
<= |
Inférieur ou égal à |
> |
Supérieur à |
>= |
Supérieur ou égal à |
== |
Égal à, compare si deux valeurs sont égales |
!= |
Différent de |
Exemple
Le résultat de l'exemple ci-dessus :
False False
Le fichier high_low.py démontre les opérations de comparaison numérique :
Exemple
Après avoir exécuté le script ci-dessus, l'exemple de sortie est le suivant :
$ python3 high_low.py 数字猜谜游戏! 请输入你猜的数字:1 猜的数字小了... 请输入你猜的数字:9 猜的数字大了... 请输入你猜的数字:7 恭喜,你猜对了!
Imbrication de if
Dans les instructions if imbriquées, vous pouvez placer une structure if...elif...else à l'intérieur d'une autre structure if...elif...else.
if 表达式1:
语句
if 表达式2:
语句
elif 表达式3:
语句
else:
语句
elif 表达式4:
语句
else:
语句
Exemple
Enregistrez le programme ci-dessus dans le fichier test_if.py. Après exécution, la sortie est :
$ python3 test.py 输入一个数字:6 你输入的数字可以整除 2 和 3
match...case
Python 3.10 a ajouté match...casecomme jugement conditionnel, il n'est donc plus nécessaire d'utiliser une série deif-elsepour effectuer des tests.
L'objet après match sera mis en correspondance successivement avec le contenu après case. Si la correspondance réussit, l'expression correspondante est exécutée ; sinon, elle est directement ignorée._Il peut correspondre à n'importe quoi.
SVG : organigramme d'exécution de match...caseLe format de la syntaxe est le suivant :
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:
<action_wildcard>case _:Similaire àdefault:en C et Java, lorsque les autres cas ne peuvent pas correspondre, celui-ci correspond, ce qui garantit qu'une correspondance réussit toujours.
Exemple
match status:
case 400:
return "Mauvaise requête"
case 404:
return "Non trouvé"
case 418:
return "Je suis une théière"
case _:
return "Quelque chose ne va pas avec Internet"
print(http_error(400))
print(http_error(404))
print(http_error(418))
print(http_error(500))
Ce qui précède est un exemple qui affiche des codes d'état HTTP. Les résultats de sortie pour plusieurs codes d'état sont :
Bad request Not found I'm a teapot Something's wrong with the internet
Un cas peut également définir plusieurs conditions de correspondance, séparées par|, par exemple :
...
case 401|403|404:
return "Not allowed"
SVG : | diagramme de correspondance multi-conditions
Exemple
match status:
case 200:
return "OK - requête réussie"
case 301 | 302:
return "Redirection - redirection"
case 401 | 403 | 404:
return "Non autorisé - pas de permission ou introuvable"
case 500 | 502 | 503:
return "Erreur serveur - erreur serveur"
case _:
return "Statut inconnu - code d'état inconnu"
for code in [200, 301, 403, 500, 418]:
print(f"Code d'état {code} : {check_permission(code)}")
match...casePour plus de contenu, consultez :instruction match-case en Python
Autres extensions