From 31103d94fd5782b38b762a15d3f0ba8a0ce6ce72 Mon Sep 17 00:00:00 2001 From: Dimitri Merejkowsky Date: Sat, 10 Oct 2020 15:46:34 +0200 Subject: [PATCH] Move 'return' function before 'several arguments' --- cours/source/05-fonctions-01/01-functions.rst | 11 +++-- .../02-portée-des-variables.rst | 18 +++++--- cours/source/05-fonctions-01/03-return.rst | 18 ++++++++ ...guments.rst => 04-plusieurs-arguments.rst} | 6 +-- ...{04-par-défaut.rst => 05-par-défaut.rst} | 8 ++-- ...s-natives.rst => 06-fonctions-natives.rst} | 0 cours/source/05-fonctions-01/06-return.rst | 42 ------------------- cours/source/05-fonctions-01/index.rst | 8 ++-- 8 files changed, 48 insertions(+), 63 deletions(-) create mode 100644 cours/source/05-fonctions-01/03-return.rst rename cours/source/05-fonctions-01/{03-plusieurs-arguments.rst => 04-plusieurs-arguments.rst} (84%) rename cours/source/05-fonctions-01/{04-par-défaut.rst => 05-par-défaut.rst} (76%) rename cours/source/05-fonctions-01/{05-fonctions-natives.rst => 06-fonctions-natives.rst} (100%) delete mode 100644 cours/source/05-fonctions-01/06-return.rst diff --git a/cours/source/05-fonctions-01/01-functions.rst b/cours/source/05-fonctions-01/01-functions.rst index ae6bba5..3e204c0 100644 --- a/cours/source/05-fonctions-01/01-functions.rst +++ b/cours/source/05-fonctions-01/01-functions.rst @@ -19,7 +19,7 @@ Appel:: * avec le nom de la fonction et des parenthèses -Example complet:: +Exemple complet:: def dire_bonjour(): print("Bonjour") @@ -27,6 +27,11 @@ Example complet:: dire_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 ------------------------ @@ -48,7 +53,7 @@ Fonction avec un argument Définition: avec l'argument à l'intérieur des parenthèses:: 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:: @@ -75,7 +80,7 @@ Exemple complet:: def dire_bonjour(prénom): - print("Bonjour " + prénom) + print("Bonjour " + prénom) dire_bonjour("Germaine") # affiche: Bonjour Germaine diff --git a/cours/source/05-fonctions-01/02-portée-des-variables.rst b/cours/source/05-fonctions-01/02-portée-des-variables.rst index b037894..f07239a 100644 --- a/cours/source/05-fonctions-01/02-portée-des-variables.rst +++ b/cours/source/05-fonctions-01/02-portée-des-variables.rst @@ -6,7 +6,7 @@ Portée des variables Les arguments d'une fonction n'existent que dans le corps de celle-ci:: def dire_bonjour(prénom): - print("Bonjour " + prénom) + print("Bonjour " + prénom) dire_bonjour("Dimitri") # Ok print(prénom) # Erreur @@ -17,15 +17,21 @@ Les variables en dehors des fonctions sont disponibles partout:: salutation = "Bonjour " def dire_bonjour(prénom): - print(salutation + prénom) + print(salutation + prénom) dire_bonjour("Dimitri") 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 - 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 diff --git a/cours/source/05-fonctions-01/03-return.rst b/cours/source/05-fonctions-01/03-return.rst new file mode 100644 index 0000000..c6b209b --- /dev/null +++ b/cours/source/05-fonctions-01/03-return.rst @@ -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 diff --git a/cours/source/05-fonctions-01/03-plusieurs-arguments.rst b/cours/source/05-fonctions-01/04-plusieurs-arguments.rst similarity index 84% rename from cours/source/05-fonctions-01/03-plusieurs-arguments.rst rename to cours/source/05-fonctions-01/04-plusieurs-arguments.rst index d0ebbbd..a815dda 100644 --- a/cours/source/05-fonctions-01/03-plusieurs-arguments.rst +++ b/cours/source/05-fonctions-01/04-plusieurs-arguments.rst @@ -1,13 +1,11 @@ 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 par des virgules:: def soustraction(x, y): - résultat = x - y + résultat = x - y return résultat résultat = soustraction(5, 4) @@ -21,7 +19,7 @@ En Python, on peut aussi utiliser le *nom* des arguments au lieu de leur position:: def dire_bonjour(prénom): - print("Bonjour " + prénom) + print("Bonjour " + prénom) dire_bonjour(prénom="Gertrude") # Affiche: Bonjour Gertrude diff --git a/cours/source/05-fonctions-01/04-par-défaut.rst b/cours/source/05-fonctions-01/05-par-défaut.rst similarity index 76% rename from cours/source/05-fonctions-01/04-par-défaut.rst rename to cours/source/05-fonctions-01/05-par-défaut.rst index 0339550..0688329 100644 --- a/cours/source/05-fonctions-01/04-par-défaut.rst +++ b/cours/source/05-fonctions-01/05-par-défaut.rst @@ -4,10 +4,10 @@ Arguments par défaut On peut aussi mettre des valeurs par défaut:: 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:: diff --git a/cours/source/05-fonctions-01/05-fonctions-natives.rst b/cours/source/05-fonctions-01/06-fonctions-natives.rst similarity index 100% rename from cours/source/05-fonctions-01/05-fonctions-natives.rst rename to cours/source/05-fonctions-01/06-fonctions-natives.rst diff --git a/cours/source/05-fonctions-01/06-return.rst b/cours/source/05-fonctions-01/06-return.rst deleted file mode 100644 index e0f691b..0000000 --- a/cours/source/05-fonctions-01/06-return.rst +++ /dev/null @@ -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 diff --git a/cours/source/05-fonctions-01/index.rst b/cours/source/05-fonctions-01/index.rst index 125ba0a..dfb0d87 100644 --- a/cours/source/05-fonctions-01/index.rst +++ b/cours/source/05-fonctions-01/index.rst @@ -6,8 +6,8 @@ Chapitre 5 - Introduction aux fonctions 01-functions.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