| @@ -19,7 +19,7 @@ Appel:: | |||||
| * avec le nom de la fonction et des parenthèses | * avec le nom de la fonction et des parenthèses | ||||
| Example complet:: | |||||
| Exemple complet:: | |||||
| def dire_bonjour(): | def dire_bonjour(): | ||||
| print("Bonjour") | print("Bonjour") | ||||
| @@ -27,6 +27,11 @@ Example complet:: | |||||
| dire_bonjour() | dire_bonjour() | ||||
| # Affiche: bonjour' | # Affiche: bonjour' | ||||
| * Le *nom* de la fonction est le mot utilisé pour la définir et l'appeler | |||||
| * Le *corps* de la fonction est le bloc après le `def()` | |||||
| * Quand on *définit* une fonction, on associe un nom avec un corps. | |||||
| * Quand on *appelle* une fonction, on exécute le corps. | |||||
| Le pouvoir des fonctions | Le pouvoir des fonctions | ||||
| ------------------------ | ------------------------ | ||||
| @@ -48,7 +53,7 @@ Fonction avec un argument | |||||
| Définition: avec l'argument à l'intérieur des parenthèses:: | Définition: avec l'argument à l'intérieur des parenthèses:: | ||||
| def dire_bonjour(prénom): | def dire_bonjour(prénom): | ||||
| print("Bonjour " + prénom) | |||||
| print("Bonjour " + prénom) | |||||
| Appel: en passant une variable ou une valeur dans les parenthèses:: | Appel: en passant une variable ou une valeur dans les parenthèses:: | ||||
| @@ -75,7 +80,7 @@ Exemple complet:: | |||||
| def dire_bonjour(prénom): | def dire_bonjour(prénom): | ||||
| print("Bonjour " + prénom) | |||||
| print("Bonjour " + prénom) | |||||
| dire_bonjour("Germaine") | dire_bonjour("Germaine") | ||||
| # affiche: Bonjour Germaine | # affiche: Bonjour Germaine | ||||
| @@ -6,7 +6,7 @@ Portée des variables | |||||
| Les arguments d'une fonction n'existent que dans le corps de celle-ci:: | Les arguments d'une fonction n'existent que dans le corps de celle-ci:: | ||||
| def dire_bonjour(prénom): | def dire_bonjour(prénom): | ||||
| print("Bonjour " + prénom) | |||||
| print("Bonjour " + prénom) | |||||
| dire_bonjour("Dimitri") # Ok | dire_bonjour("Dimitri") # Ok | ||||
| print(prénom) # Erreur | print(prénom) # Erreur | ||||
| @@ -17,15 +17,21 @@ Les variables en dehors des fonctions sont disponibles partout:: | |||||
| salutation = "Bonjour " | salutation = "Bonjour " | ||||
| def dire_bonjour(prénom): | def dire_bonjour(prénom): | ||||
| print(salutation + prénom) | |||||
| print(salutation + prénom) | |||||
| dire_bonjour("Dimitri") | dire_bonjour("Dimitri") | ||||
| Une variable peut avoir en "cacher" une autre si elle a une portée différente:: | Une variable peut avoir en "cacher" une autre si elle a une portée différente:: | ||||
| def dire_bonjour(prénom): | |||||
| print("Bonjour " + prénom) # portée: uniquement dans | |||||
| # le corps dire_bonjour | |||||
| prénom = "Dimitri" # portée: dans tout le programme | prénom = "Dimitri" # portée: dans tout le programme | ||||
| dire_bonjour(prénom) # Ok | |||||
| def dire_bonjour(): | |||||
| prénom = Max # portée: uniquement dans | |||||
| # le corps dire_bonjour | |||||
| print("Bonjour " + prénom) | |||||
| # affiche: Bonjour Max | |||||
| print("Bonjour " + prénom) j | |||||
| # affiche: Bonjour Dimitri | |||||
| @@ -0,0 +1,18 @@ | |||||
| Valeur de retour d'une fonction | |||||
| ================================= | |||||
| On peut également appeler une fonction dans une expression | |||||
| à droite d'une assignation de variable. | |||||
| Dans ce cas, la valeur de l'expression est obtenue en | |||||
| éxécutant le corps de la fonction jusqu'à rencontrer l'instruction | |||||
| `return` et en évaluant l'expression à droite du return. | |||||
| Par exemple:: | |||||
| def retourne_42(): | |||||
| return 42 | |||||
| x = retourne_42() | |||||
| print(x) | |||||
| # Affiche: 42 | |||||
| @@ -1,13 +1,11 @@ | |||||
| Fonctions à plusieurs arguments | Fonctions à plusieurs arguments | ||||
| =============================== | =============================== | ||||
| # TODO: Insérer la section sur return plus tôt | |||||
| On peut mettre autant d'arguments qu'on veut, séparés | On peut mettre autant d'arguments qu'on veut, séparés | ||||
| par des virgules:: | par des virgules:: | ||||
| def soustraction(x, y): | def soustraction(x, y): | ||||
| résultat = x - y | |||||
| résultat = x - y | |||||
| return résultat | return résultat | ||||
| résultat = soustraction(5, 4) | résultat = soustraction(5, 4) | ||||
| @@ -21,7 +19,7 @@ En Python, on peut aussi utiliser le *nom* des arguments au lieu de | |||||
| leur position:: | leur position:: | ||||
| def dire_bonjour(prénom): | def dire_bonjour(prénom): | ||||
| print("Bonjour " + prénom) | |||||
| print("Bonjour " + prénom) | |||||
| dire_bonjour(prénom="Gertrude") | dire_bonjour(prénom="Gertrude") | ||||
| # Affiche: Bonjour Gertrude | # Affiche: Bonjour Gertrude | ||||
| @@ -4,10 +4,10 @@ Arguments par défaut | |||||
| On peut aussi mettre des valeurs par défaut:: | On peut aussi mettre des valeurs par défaut:: | ||||
| def dire_bonjour(prénom, enthousiaste=False): | def dire_bonjour(prénom, enthousiaste=False): | ||||
| message = "Bonjour " + prénom | |||||
| if enthousiaste: | |||||
| message += "!" | |||||
| print(message) | |||||
| message = "Bonjour " + prénom | |||||
| if enthousiaste: | |||||
| message += "!" | |||||
| print(message) | |||||
| Appel:: | Appel:: | ||||
| @@ -1,42 +0,0 @@ | |||||
| Valeur de retour d'une fonction | |||||
| ================================= | |||||
| Définition avec le mot ``return``:: | |||||
| def additionner(x, y): | |||||
| return x + y | |||||
| Récupérer la valeur de retour:: | |||||
| a = 3 | |||||
| b = 4 | |||||
| c = additionner(a, b) # encore une assignation | |||||
| print(c) | |||||
| # Affche: 7 | |||||
| Sortir d'une fonction avec return | |||||
| --------------------------------- | |||||
| ``return`` interrompt également l'éxécution du | |||||
| corps de la fonction:: | |||||
| def dire_bonjour(prénom, première_fois=False): | |||||
| print("Bonjour", prénom) | |||||
| if not première_fois: | |||||
| return | |||||
| print("Heureux de faire votre connaissance") | |||||
| dire_bonjour("Dimitri", première_fois=True) | |||||
| .. code-block:: text | |||||
| Bonjour Dimitri | |||||
| Heureux de faire votre connaissance | |||||
| .. code-block:: python | |||||
| dire_bonjour("Dimitri", première_fois=False) | |||||
| .. code-block:: text | |||||
| Bonjour Dimitri | |||||
| @@ -6,8 +6,8 @@ Chapitre 5 - Introduction aux fonctions | |||||
| 01-functions.rst | 01-functions.rst | ||||
| 02-portée-des-variables.rst | 02-portée-des-variables.rst | ||||
| 03-plusieurs-arguments.rst | |||||
| 04-par-défaut.rst | |||||
| 05-fonctions-natives.rst | |||||
| 06-return.rst | |||||
| 03-return.rst | |||||
| 04-plusieurs-arguments.rst | |||||
| 05-par-défaut.rst | |||||
| 06-fonctions-natives.rst | |||||
| 07-exercice.rst | 07-exercice.rst | ||||