@@ -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 |