Bases des fonctions Python

Effectué

Les fonctions sont l’étape suivante, une fois que vous avez appris les bases de la programmation du langage Python. Dans sa forme la plus simple, une fonction contient du code qui retourne toujours une valeur (ou des valeurs). Dans certains cas, une fonction a également des entrées facultatives ou obligatoires.

Quand vous commencez à écrire du code qui duplique d’autres parties du programme, l’occasion est idéale pour extraire ce code dans une fonction. Même si le partage du code commun via des fonctions est utile, vous pouvez également limiter la taille du code en extrayant certaines parties sous forme de fonctions plus petites (et lisibles).

Les programmes qui évitent les doublons et les fonctions volumineuses en utilisant des fonctions plus petites sont plus lisibles et plus faciles à gérer. Ils sont également plus faciles à déboguer quand les choses ne fonctionnent pas correctement.

Plusieurs règles relatives aux entrées de fonction sont essentielles pour que vous puissiez tirer pleinement parti de tout ce que les fonctions ont à offrir.

Important

Bien que nous utilisions le terme entrée pour décrire ce que les fonctions acceptent, ces éléments sont généralement appelés arguments ou paramètres. Pour des raisons de cohérence dans ce module, nous allons faire référence aux entrées en tant qu’arguments.

Fonctions sans arguments

Pour créer une fonction, utilisez le mot clé def suivi d’un nom, de parenthèses, puis du corps contenant le code de la fonction :

def rocket_parts():
    print("payload, propellant, structure")

Dans le cas présent, rocket_parts est le nom de la fonction. Ce nom est suivi de parenthèses vides, ce qui indique qu’aucun argument n’est nécessaire. Le code vient en dernier. Il est mis en retrait de quatre espaces. Pour utiliser la fonction, vous devez l’appeler par son nom avec des parenthèses :

rocket_parts()
payload, propellant, structure

La fonction rocket_parts() n’accepte aucun argument et affiche une instruction. Si vous devez utiliser une valeur retournée par une fonction, vous pouvez affecter la sortie de la fonction à une variable :

output = rocket_parts()
payload, propellant, structure
output is None
True

Il peut sembler surprenant que la valeur de la variable output soit None. En effet, la fonction rocket_parts() n’a pas retourné explicitement de valeur. En Python, si une fonction ne retourne pas explicitement de valeur, elle retourne implicitementNone. La mise à jour de la fonction pour retourner la chaîne au lieu de l’afficher amène la variable output à avoir une autre valeur :

def rocket_parts():
    return "payload, propellant, structure"
output = rocket_parts()
output
payload, propellant, structure

Si vous devez utiliser la valeur d’une fonction, cette fonction doit retourner explicitement une valeur. Sinon, None est retournée.

Notes

Vous n’avez pas besoin d’affecter systématiquement la valeur de retour d’une fonction. Dans la plupart des cas où une fonction ne retourne pas explicitement de valeur (ou des valeurs), cela signifie que vous n’avez pas besoin d’affecter ou d’utiliser le None implicite retourné.

Arguments requis et facultatifs

En Python, plusieurs fonctions intégrées nécessitent des arguments. Certaines fonctions intégrées rendent les arguments facultatifs. Les fonctions intégrées sont prêtes à l’emploi, vous n’avez pas besoin de les importer explicitement.

any() est un exemple de fonction intégrée qui nécessite un argument. Cette fonction accepte un itérable (par exemple une liste), et retourne True si l’un des éléments de l’itérable est True. Sinon, Falseest retourné.

any([True, False, False])
True
any([False, False, False])
False

Si vous appelez any() sans le moindre argument, une exception utile est levée. Le message d’erreur explique que vous avez besoin d’au moins un argument :

 any()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: any() takes exactly one argument (0 given)

Vous pouvez vérifier que certaines fonctions autorisent l’utilisation d’arguments facultatifs à l’aide d’une autre fonction intégrée appelée str(). Cette fonction crée une chaîne à partir d’un argument. Si aucun argument n’est passé, elle retourne une chaîne vide :

str()
''
str(15)
'15'