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:
TP
Ex 1: fonction sans paramètre
La fonction suivante va retourner un dessin réalisé à partir de symboles ascii du clavier:
- Saisir le script dans une cellule python et executer.
- Dans une nouvelle cellule/interpreteur python: appeler la fonction. Ecrire:
figure_petit_chat()
La plupart du temps, on evitera d’utiliser la fonction print à l’intérieur d’une fonction. Sauf cas particulier comme ci-dessus.
La fonction suivante va justement utiliser le mot clé return prévu pour qu’il y ait une sortie.
- Question a: Executer la fonction du 2e script:
>>> print(dessine())
Quel est le motif dessiné? Pourquoi?
Ex 2: fonction avec paramètre
Ecrire une fonction
salutqui prend pour paramètrenomet qui retourne une chaine de caractèresbonjour + "nom".
Exemples d’appels de la fonction salut:
- Question b: Citer l’un des avantages d’utiliser une fonction. (répétition)
Ex 3: fonction pour calculer
- Écrire une fonction
cubequi retourne lecubede son argument:x**3 - Écrire une fonction
volumeSpherequi calcule le volume d’une sphère de rayon r fourni en argument et qui utilise la fonction cube.
Donnée:
$$V = \tfrac{4}{3}\times\pi\times R^3$$- Calculer le volume en $cm^3$ d’une sphere de rayon 10cm (à l’aide de la fonction
volumeSphere)
Ex 4: Importer des fonctions
Importer les fonctions degrees et radians du module math et completer le tableau:
| angle degrés | angle radians |
|---|---|
| 45 | |
| 35 | |
| 0.657 | |
| 0.1 |