all:bibles:langages:python:structure
Différences
Ci-dessous, les différences entre deux révisions de la page.
| all:bibles:langages:python:structure [2024/06/14 11:10] – créée - modification externe 127.0.0.1 | all:bibles:langages:python:structure [2025/08/20 10:10] (Version actuelle) – omeylhoc | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Structures de contrôle ====== | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Test ===== | ||
| + | |||
| + | ==== Instruction if ==== | ||
| + | |||
| + | <code python> | ||
| + | if condition: | ||
| + | bloc de lignes | ||
| + | else: | ||
| + | bloc de lignes | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Boucle ===== | ||
| + | |||
| + | ==== Instruction for..in==== | ||
| + | |||
| + | <code python> | ||
| + | for variable in sequence: | ||
| + | bloc de lignes | ||
| + | else: | ||
| + | bloc de lignes | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Instruction while ==== | ||
| + | |||
| + | * L’instruction while permet d’exécuter un bloc de lignes tant qu’une expression est vérifiée. | ||
| + | * Si l’expression n’est plus vraie l’instruction else est exécutée si celle-ci existe et la boucle s’arrête. | ||
| + | |||
| + | <code python> | ||
| + | while condition: | ||
| + | bloc de lignes | ||
| + | else: | ||
| + | bloc de lignes | ||
| + | </ | ||
| + | |||
| + | ==== Contrôle des itérations ==== | ||
| + | |||
| + | | continue | ||
| + | | break | interrompt l’execution de la boucle et n’exécute pas l’instruction else | | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Les list comprehensions ===== | ||
| + | |||
| + | Les lists comprehensions donnent un moyen concis d’appliquer une fonction sur chaque élément d’une liste afin d’en produire une nouvelle. | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | [1, 9, 64, 81, 49, 1024, 7921, 1764] | ||
| + | |||
| + | >>> | ||
| + | >>> | ||
| + | >>> | ||
| + | [8, 32, 42] | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Les dict comprehensions ===== | ||
| + | |||
| + | Les dict comprehensions donnent un moyen concis de créer un dictionnaire à partir d’une itération. | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | {2: 4, 4: 16, 6: 36} | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Exceptions ===== | ||
| + | |||
| + | ==== try..except..else ==== | ||
| + | |||
| + | Lorsqu’une exception est levée il est possible de la stopper en interceptant l’erreur. | ||
| + | |||
| + | <code python> | ||
| + | try: | ||
| + | bloc de code surveillé | ||
| + | except: | ||
| + | bloc de code exécuté si l' | ||
| + | </ | ||
| + | |||
| + | Il est fortement conseillé de spécifier l’exception afin de ne pas masquer silencieusement tous les types d’erreur qui pourrait intervenir. | ||
| + | |||
| + | <code python> | ||
| + | try: | ||
| + | bloc de code surveillé | ||
| + | except Exception: | ||
| + | bloc de code exécuté si l' | ||
| + | </ | ||
| + | |||
| + | === Exemples d' | ||
| + | |||
| + | * AttributeError | ||
| + | * ImportError | ||
| + | * IndentationError | ||
| + | * IndexError | ||
| + | * KeyError | ||
| + | * MemoryError | ||
| + | * SyntaxError | ||
| + | * TypeError | ||
| + | * ZeroDivisionError | ||
| + | |||
| + | ==== try..finally ==== | ||
| + | |||
| + | <code python> | ||
| + | try: | ||
| + | bloc de code surveillé | ||
| + | finally: | ||
| + | code toujours exécuté (y compris si raise ou return dans le bloc surveillé). | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== Fonctions ===== | ||
| + | |||
| + | |||
| + | * La définition d’une fonction se fait par le mot clé def suivi du nom de la fonction. | ||
| + | * Les éventuels paramètres sont déclarés entre parenthèses. | ||
| + | * Le caratère “:” délimite le début de la fonction. | ||
| + | * Le bloc de la fonction est délimité par les indentations. | ||
| + | |||
| + | ==== Définition ==== | ||
| + | |||
| + | <code python> | ||
| + | def say_hello(firstname, | ||
| + | print (" | ||
| + | </ | ||
| + | |||
| + | ==== Utilisation ==== | ||
| + | |||
| + | <code python> | ||
| + | say_hello(' | ||
| + | </ | ||
| + | |||
| + | ==== Paramètres ==== | ||
| + | |||
| + | === Paramètres explicites === | ||
| + | |||
| + | * Les paramètres explicites sont séparés par une virgule et peuvent être enrichis d’une valeur par défaut, ils sont dans ce cas optionnels. | ||
| + | * Il est nécessaire de regrouper les paramètres optionnels à la fin de la liste des paramètres. | ||
| + | * Les paramètres peuvent être nommés sans respecter un ordre précis. | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | ... | ||
| + | ... | ||
| + | |||
| + | >>> | ||
| + | Hello Mr Terry | ||
| + | >>> | ||
| + | Hello Mme Yolande | ||
| + | >>> | ||
| + | Hello Mme Yolande Moreau | ||
| + | </ | ||
| + | |||
| + | === Paramètres non explicites === | ||
| + | |||
| + | * Les paramètres non explicites permettent de spécifier autant de valeurs que l’on souhaite sans qu’il soit nécessaire de les spécifier dans la signature de la fonction. | ||
| + | * Ils sont fournis sous la forme nom=valeur, et sont accessibles à l’intérieur de la fonction sous forme de dictionnaire. | ||
| + | * Les paramètres non explicites sont préfixés d’une double étoile. | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | ... for actor, name in actors.items(): | ||
| + | ... | ||
| + | |||
| + | >>> | ||
| + | actor2:John Cleese | ||
| + | actor1: | ||
| + | |||
| + | === Paramètres arbitraires === | ||
| + | |||
| + | * Les paramètres arbitraires fonctionnent de la même manière que les paramètres non explicites mais ne sont pas nommés. | ||
| + | * Il sont accessibles à l’intérieur de la fonction sous forme d’un tuple. | ||
| + | * Les paramètres arbitraires sont préfixés d’une étoile | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | ... liste = [] | ||
| + | ... for actor in actors(): | ||
| + | ... | ||
| + | ... | ||
| + | |||
| + | >>> | ||
| + | ['John Cleese', | ||
| + | </ | ||
| + | |||
| + | <note important> | ||
| + | \\ | ||
| + | def fonction(param1, | ||
| + | |||
| + | ==== Docstrings ==== | ||
| + | |||
| + | Les docstrings sont des chaines de caractères placées au début du corps des fonctions. Ils sont associés à la variable __doc__ de la fonction. | ||
| + | |||
| + | <code python> | ||
| + | >>> | ||
| + | ... """ | ||
| + | ... | ||
| + | |||
| + | >>> | ||
| + | ' | ||
| + | </ | ||
| + | |||
| + | ---- | ||
