BAC PRO CIEL

← Retour Python
Cours en ligne

Python - Module 5

Les fonctions
Ce module présente les fonctions en Python. Une fonction permet de regrouper un bloc de code réutilisable afin de rendre un programme plus clair, plus organisé et plus facile à maintenir.

Sommaire

1. Principe d'une fonction

Une fonction est un bloc de code organisé et réutilisable. Elle permet d'effectuer une action précise, sans devoir réécrire plusieurs fois les mêmes instructions.

À retenir :
une fonction permet de découper un programme en plusieurs parties plus simples.

2. Définir une fonction

En Python, une fonction se définit avec le mot-clé def. Le bloc de code de la fonction doit être indenté.

def nom_de_la_fonction(parametre1, parametre2): # Instructions exécutées lorsque la fonction est appelée return valeur_a_retourner

3. Fonction sans paramètre et sans retour

Cette fonction n'a besoin d'aucune information extérieure et ne renvoie aucune valeur.

def saluer(): print("Bonjour tout le monde") saluer()
Bonjour tout le monde
La fonction ne s'exécute que lorsqu'elle est appelée avec saluer().

4. Fonction avec paramètre

Un paramètre permet d'envoyer une information à la fonction.

def saluer_personne(nom): print(f"Bonjour, {nom} !") saluer_personne("Jack") saluer_personne("Emilie")
Bonjour, Jack ! Bonjour, Emilie !

Ici, nom reçoit successivement les valeurs "Jack" puis "Emilie".

5. Fonction avec return

L'instruction return permet de renvoyer une valeur à l'endroit où la fonction a été appelée.

def addition(a, b): somme = a + b return somme resultat = addition(5, 8) print(f"La somme est {resultat}") print(f"La somme suivante est {addition(10, 4)}")
La somme est 13 La somme suivante est 14
Attention :
print() affiche une information, alors que return renvoie une valeur.

6. Retourner plusieurs valeurs

Une fonction Python peut renvoyer plusieurs valeurs avec return.

def operations(x, y): somme = x + y produit = x * y return somme, produit s, p = operations(4, 3) print(f"Somme : {s}, Produit : {p}")
Somme : 7, Produit : 12

7. Paramètre par défaut

Un paramètre peut avoir une valeur par défaut. Cette valeur est utilisée si aucun argument n'est donné lors de l'appel de la fonction.

def saluer_avec_langue(nom, langue="français"): if langue == "français": print(f"Bonjour, {nom} !") elif langue == "anglais": print(f"Hello, {nom} !") saluer_avec_langue("Alice") saluer_avec_langue("John", "anglais")
Bonjour, Alice ! Hello, John !

8. Commentaires de fonctions

Les commentaires de fonctions, appelés aussi docstrings, permettent de documenter le rôle d'une fonction, ses paramètres et la valeur qu'elle retourne.

def ma_fonction(param1, param2): """ Cette fonction fait quelque chose d'incroyable. Args: param1 (int): le premier paramètre entier param2 (str): le deuxième paramètre est une chaîne de caractères Returns: bool: True si l'opération a réussi, False sinon """ return True print(ma_fonction.__doc__)
Une docstring est placée juste après la ligne def, à l'intérieur de la fonction.

9. Fonction main()

Il est possible d'organiser le programme principal dans une fonction appelée main(). Cela permet de mieux structurer le programme.

def main(): for i in range(25): print(f"Le nombre est : {i}") if i == 8: return main()
Le nombre est : 0 Le nombre est : 1 Le nombre est : 2 Le nombre est : 3 Le nombre est : 4 Le nombre est : 5 Le nombre est : 6 Le nombre est : 7 Le nombre est : 8

Ici, la fonction main() s'arrête lorsque i vaut 8, grâce à l'instruction return.

10. Erreurs fréquentes

Oublier les deux-points

def saluer() print("Bonjour")
SyntaxError: invalid syntax

Mauvaise indentation

def saluer(): print("Bonjour")
IndentationError: expected an indented block

Oublier d'appeler la fonction

def saluer(): print("Bonjour")
Résultat : rien ne s'affiche tant que saluer() n'est pas appelé.

Confondre print() et return

def addition(a, b): print(a + b) resultat = addition(2, 3) print(resultat)
5 None
La fonction affiche bien 5, mais comme elle ne contient pas de return, elle renvoie None.

11. Synthèse

Voici les notions essentielles à retenir pour ce module.

Définir

  • def
  • nom
  • paramètres

Utiliser

  • appel de fonction
  • arguments

Retour

  • return
  • None si pas de return

Organisation

  • docstring
  • main()
Points clés à retenir :
def permet de définir une fonction.
Une fonction doit être appelée pour s'exécuter.
Les paramètres permettent d'envoyer des informations à la fonction.
return permet de renvoyer une valeur.