Fonctions dans Python
Conditions d’achèvement
Explications pour comprendre comment utiliser des fonctions dans Python.
2. fonction de base
"""Lanceur de dés."""
import random
def lancer_de(): """Simuler un lancer de dé et afficher son résultat.""" resultat = random.randint(1, 6) print(resultat)
print("Je vais lancer un dé deux fois.") print("Voici le premier résultat:") lancer_de() print("Voici le deuxième résultat:") lancer_de()
Quelques explications
- import random permet d'utiliser la fonction randint(min, max) qui tire un nombre au hasard entre min et max
- lancer_de() est une fonction (au sens informatique du terme)
- lancer_de() peut être appelée depuis le programme principal ou depuis une autre fonction; l'appel se fait avec le nom de la fonction suivi de parenthèses
- lors de la définition de la fonction, son bloc d'instructions est mis en mémoire mais pas encore exécuté; un nom (lancer_de) lui est associé, afin de pouvoir l'appeler par la suite
- lorsque la fonction est exécutée, elle a accès à un espace de mémoire personnel, où sont stockées les variables locales de la fonction (dans cet exemple, resultat est une variable locale, qui cesse d'exister à la fin de l'exécution de la fonction)
- dans
Python, on aime bien laisser deux lignes vides avant et après la
définition d'une fonction, pour bien mettre en évidence qu'il s'agit
d'un "sous-programme" séparé; ailleurs, on ne laisse jamais plus qu'une
ligne vide à la fois (excepté pour une construction de langage plus
avancée: les classes)
Remarque
- lancer_de (sans les parenthèses) est aussi une variable comme une autre, associant un nom à un contenu en mémoire; elle peut être manipulée comme les autres variables
Petit aparté sur la documentation du code
- il est fortement recommandé de documenter une fonction avec un docstring au début de son bloc d'instructions; il s'agit d'une description, qui peut faire plusieurs lignes, entre triples guillemets; pour les fonctions, il est recommandé d’écrire le docstring à l'impératif ou à l'infinitif (comme si on "donnait un ordre" à la fonction)
- il
est aussi fortement recommandé d'utiliser un docstring pour documenter
le module (fichier de code python), tout en haut du fichier; ce
docstring-là fera plutôt office de "titre"