2.1. Les fonctions.#

Une fonction est une série d’instructions préenregistrées qui prend en entrée une ou plusieurs données (on parle d’arguments) et qui après exécution des instructions peut renvoyer une ou plusieurs données (les retours).

2.1.1. Exécuter une fonction#

Syntaxe : nomfonction(argument1, argument2)

2.1.2. Signature d’une fonction#

La signature d’une fonction définit les entrées et les sorties d’une fonction. Un signature définit ainsi :

  • le nombre d’arguments en entrée et le type attendus de chaque argument.

  • les valeurs en sortie et le type de chaque retour.

La signature est en général donnée dans l’aide de la fonction pour savoir comment l’utiliser.

Important

On trouvera souvent par la suite la syntaxe suivante pour préciser le type des arguments et du retour de la fonction :

nomfonction(argument1:type1, argument2:type2) -> typeretour

Ainsi la fonction:

associe(a:float, b:float) -> list

prend comme arguments deux flottants aet b et renvoie une liste.

2.1.3. Les fonctions existantes#

2.1.3.1. La bibliothèque standard#

Il existe de nombreuses fonctions natives dans Python qui peuvent être utilisées directement (on parle de bibliothèque standard). On a déjà présenté quelques fonctions utiles ainsi que les types auxquels elles s’appliquaient.

"""Exemple d'utilisation d'une fonction native"""
a = min(3, 5, 6, 12)  # Fonction qui renvoie le minimum de l'ensemble des arguments données.
print(a)
3

Quelques fonctions utiles (non exhaustif):

  • print(a) : Affiche la variable

  • len(l) : Longueur d’une liste ou d’une chaine de caractères

  • round(nombre, digits) : Arrondi le flottant au nombre de digits après la virgule.

  • min(a, b, ...) et max(a, b, ...)

  • int(b) : Transforme en entier (utile pour transformer une chaine de caractère "1" en entier 1)

  • float(b) : Transforme en flottant (utile pour transformer une chaine de caractère "1.23" en flottant 1.23)

  • str(a) : Transforme (un nombre) en une chaine de caractère. Utile pour afficher un nombre dans une phrase.

  • type(a) : Renvoie le type de la variable.

  • help(nom_fonction) : Affiche l’aide d’une fonction.

2.1.3.2. Les modules supplémentaires#

Des fonctions supplémentaires (entre autre) sont contenus dans des modules (ou bibliothèques) qui nécessitent d’être importés. Les méthodes d’importations sont :

from math import *

On importe toutes les fonctions du modules dans l’espace standard. La fonction sin du module math est appelé par :

sin(3.14)
import math as mt

On importe toutes les fonctions du modules dans un espace nommé (ici mt). La fonction sin du module math est appelé par :

mt.sin(3.14)

Important

Si on vous donne un programme déjà partiellement écrit, pensez à regarder comment le module a été importé pour utiliser correctement les fonctions du module.

2.1.4. Créer sa fonction#

2.1.4.1. Un exemple#

def somme3(arg1, arg2, arg3):
	"""
	Ici le corps de la fonction, par exemple on ajoute les trois arguments
	et on assigne le résultat à la variable total
	"""
	total = arg1 + arg2 + arg3
	# Ne pas oublier de renvoyer la valeur
	return total

2.1.4.2. Structure d’une fonction#

Les instructions ci-dessous sont le minimum dans une fonction :

  • le mot-clé def est indispensable et le : à la fin aussi.

  • L’indentation (décalage du corps de la fonction vers la droite) est obligatoire en Python.

  • choisir un nom de fonction (ici somme3) explicite (les règles de nommage sont les mêmes que pour les variables)

  • Le nom des arguments arg1, ... sera celui utilisé dans le bloc d’instruction de la fonction. arg1 n’existe pas en dehors de la fonction.

  • pensez au return sans quoi votre fonction ne renverra rien… Ici, on pourra accéder contenu de la variable total en dehors de la fonction.

2.1.4.3. Pensez à commenter votre fonction pour qu’elle soit compréhensible.#

Tout est dans le titre…

2.1.4.4. Créer n’est pas appeler.#

La cellule précédente a créé la fonction mais n’a pas utilisé la fonction (on dit appeler la fonction). Une fois créée, il faut encore l’appeler pour qu’elle soit exécuter dans un programme. L’appel de la fonction se fait comme pour une fonction native.

""" On appelle la fonction qu'on vient de créer précédemment"""
toti = somme3(1, 2, 3)  # On appelle la fonction et on stocke son retour dans la variable toti
print(toti)
6