Fonctions dans Python

Site: Plate-forme d'apprentissage
Cours: 1DF Informatique JCB
Livre: Fonctions dans Python
Imprimé par: Visiteur anonyme
Date: dimanche 18 octobre 2026, 22:28

Description

Explications pour comprendre comment utiliser des fonctions dans Python.

1. Introduction

Définition de fonctions (ou procédures) en Python

Voici des programmes de complexité croissante à analyser.

Essayer de comprendre ce qu'ils font, juste en les lisant, en partant du plus simple jusqu'au plus complexe.

Copiez-collez ensuite l'un d'entre eux vers Thonny pour le tester et voir si vous aviez bien compris.

Chaque programme est muni d'explications en-dessous. Le but est de comprendre la syntaxe permettant de définir des "fonctions" au sens informatique du terme, c'est-à-dire des "sous-programmes" qui peuvent être appelés depuis le programme principal (ou depuis un autre sous-programme).


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"

3. fonction avec retour

"""Lanceur de dés."""
import random

def lancer_de(): """Simuler un lancer un dé et retourner son résultat.""" return random.randint(1, 6)
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())
print("Maintenant je lance deux dés et le total est: ",
lancer_de() + lancer_de())

Quelques explications
  • cette fois la fonction lancer_de() retourne une valeur
  • la valeur de retour est le résultat de l'évaluation de l'expression qui suit l'instruction return

4. fonction avec paramètre(s)

"""Lanceur de dés."""

import random
def lancer_de(faces): """Simuler un lancer un dé et retourner son résultat.""" return random.randint(1, faces)
print("Je vais lancer un dé à 10 faces. Le résultat est: ", lancer_de(10))
print("Je vais lancer un dé à 20 faces: Le résultat est: ", lancer_de(20))
Quelques expications
  • une fonction peut aussi recevoir des valeurs d'entrée
  • quand on appelle la fonction, on lui passe alors une ou plusieurs valeurs, qui sont les arguments de la fonction (ici 10 au premier appel et 20 au second)
  • quand on déclare la fonction, on donne un nom à chaque valeur attendue; ces nom sont les paramètres de la fonction
  • quand le bloc de la fonction est en cours d'exécution, chaque paramètre devient une variable locale dont la valeur initiale est l'argument qui lui a été fourni

5. valeur par défaut pour un paramètre

"""Lanceur de dés."""

import random

def lancer_de(faces=6): """Simuler un lancer un dé et retourner son résultat.""" return random.randint(1, faces)
print("Je vais lancer un dé habituel. Le résultat est: ", lancer_de())
print("Je vais lancer un dé à 20 faces: Le résultat est: ", lancer_de(20))
Quelques explications
  • Un paramètre d'une fonction peut avoir une valeur par défaut
  • Une valeur par défaut est déclarée comme "parametre=valeur_par_defaut" (sans espaces autour du "=")
  • Quand une valeur par défaut existe pour un paramètre, on peut appeler la fonction avec un argument pour ce paramètre, ou bien sans argument, auquel cas la valeur par défaut est utilisée