fonctions
Les fonctions
Fonction sans paramètre
1. Definition: Une fonction permet d’encapsuler un bloc d’instructions et de lui donnéer un nom:
La fonction est déclarée après le mot-clé def.
Choisir un nom qui n’appartient pas à Python (aucune autre fonction porte ce nom dans le langage).
Le nom est suivi de parenthèses () et deux points :
Le bloc de code de la fonction est indenté sous la ligne def ma_fonction
Appel de fonction: On peut ensuite exécuter ce bloc en utilsant ce nom. On dit qu’on appelle cette fonction en écrivant son nom, suivi de parenthèses ().
Valeur de retour: Une fonction retourne en général une valeur. Après le mot-clé return
- Exemple 1 Dans ce script, on definit une fonction qui retourne
Hi. Les lignes commençant par le symbole#sont des commentaires, et ne sont pas executées par Python. Elles sont optionnelles.
Fonction avec paramètre
Une fonction peut avoir un ou plusieurs paramètres qui permettent de transmettre des valeurs au bloc d’instructions. A l’interieur de la fonction, ces paramètres sont traités comme des variables, mais locales: Elles n’existent pas à l’exterieur du bloc.
Il y a alors une affectation: paramètre = argument
- Exemple 2 Dans ce script, on definit une fonction qui calcule le carré d’un nombre
x.
Lors de la déclaration de la fonction, le seul paramètre attendu s’appelera x. Puis lors de l’appel de la fonction carre, l’argument choisi est 5. A l’interieur de la fonction, x vaut 5.
illustration du passage d'argument lors de l'appel de la fonction
La valeur de retour est alors 25: l’intruction return x**2 évalue 5**2, soit 25, avant de retourner la valeur.
Observez comme la fonction Python avec paramètre ressemble à la déclaration d’une fonction en mathématiques:
On peut calculer f(x) pour toute valeur de x en remplaçant x dans $10\times x + 20$ par sa valeur. Par exemple, $f(1) = 10\times 1 + 20 = 30$
En python, on appelle cette fonction avec la valeur $x=1$ en écrivant:
Le return correspond au signe = en langage mathématique.
Plusieurs paramètres
Lors de l’appel de la fonction, le ou les arguments passés doivent correspondre aus paramètres attendus. Ils doivent être placés dans l’ordre.
- Exemple 3: fonction qui calcule la surface d’un rectangle lorsque l’on divise chacun de ses côtés par un même coefficient
c. On aura besoin de la longueur de ses côtésxety(les 2 premiers paramètres de la fonction). Mais aussi de la valeurc:
Importer des fonctions
On peut étendre les fonctions du langage en important des fonctions. Celle-ci sont natives, elles font partie du langage python, mais ne sont pas chargées au démarrage.
L’un des modules très utile est, par exemple, le module math. Celui-ci contient de nombreuses fonctions. Pour importer celle qui transforme le angles de degrés en radians, il faut ajouter la ligne suivante au debut du programme:
Puis, pour l’utiliser, et transformer 45° en radians, on écrira plus loin dans le programme:
Placer un script dans une fonction
Le programme suivant comporte quelques lignes que l’on peut avoir à répéter. Imaginons un robot, chargé de laisser entrer les personnes dont l’age est supérieur ou egal à 18:
Il sera plus efficace de placer ces lignes dans une fonction.
Les règles pour écrire une fonction à partir de ce script sont les suivantes:
- les entrées et variables sont mises en paramètre: il s’agit de
age - Les
printsont remplacés parreturn - Il faut choisir un nom à la fonction, écrit après
def
Lorsque vous executez le programme, … il ne se passe rien. Vous avez seulement chargé la fonction.
Il faut appeler la fonction pour que celle-ci soit executée, par exemple avec:
Voici un exemple d’execution d’une fonction à partir du shell.
1:charger la fonction (executer cellule), 2: appel, 3: sortie
Son execution cesse lorsqu’elle arrive à l’instruction return. Le programme reprend alors son cours.