logo

Créer et Utiliser des Fonctions en Python

Objectifs Pédagogiques
  • Savoir définir et appeler une fonction avec ou sans paramètres.
  • Comprendre la différence entre arguments positionnels et nommés.
  • Utiliser des valeurs de retour avec return.
  • Distinguer les variables locales et globales.
  • Découvrir les fonctions anonymes avec lambda.

1. Qu'est-ce qu'une Fonction ?

Une fonction est un bloc de code que l'on peut réutiliser à plusieurs endroits dans un programme. Cela permet de mieux organiser et de réduire les répétitions dans le code.

Définition
Une fonction est un ensemble d’instructions regroupées sous un nom, qui peuvent recevoir des paramètres (en entrée) et renvoyer un résultat (en sortie).

Syntaxe de base

def nom_de_la_fonction(parametre1, parametre2):
    # instructions
    return valeur

Exemple simple

def saluer(nom):
    return "Bonjour, " + nom

print(saluer("Alice"))  # Bonjour, Alice

2. Paramètres et Arguments

Les paramètres sont les variables déclarées dans la fonction. Les arguments sont les valeurs envoyées à la fonction lorsqu’on l’appelle.

Paramètres par défaut

def saluer(nom="inconnu"):
    print("Bonjour,", nom)

saluer()           # Bonjour, inconnu
saluer("Alice")    # Bonjour, Alice

Ordre des paramètres

Les paramètres avec valeur par défaut doivent être placés en dernier.

def decrire_personne(nom, age=30):
    print(nom, "a", age, "ans.")

decrire_personne("Alice")      # Alice a 30 ans.
decrire_personne("Bob", 25)    # Bob a 25 ans.

Paramètres positionnels et nommés

def decrire_personne(nom, age):
    print(f"{nom} a {age} ans.")

decrire_personne("Alice", 30)         # Positionnels
decrire_personne(age=40, nom="Jean")  # Nommés

3. Les Valeurs de Retour

Pour renvoyer une valeur depuis une fonction, on utilise return. Sans return, la fonction renvoie None.

Exemple

def addition(a, b):
    return a + b

resultat = addition(5, 3)
print(resultat)  # 8

Retourner plusieurs valeurs

def operations(a, b):
    return a + b, a - b

somme, diff = operations(10, 3)
print(somme)  # 13
print(diff)   # 7

4. Portée des Variables

Une variable définie à l’intérieur d’une fonction est locale. À l’extérieur, elle est globale.

Exemple

x = 10  # variable globale

def fonction():
    x = 5  # locale
    print("Dans la fonction :", x)

fonction()
print("En dehors :", x)

Utiliser global

x = 10

def modifier_x():
    global x
    x = 0

modifier_x()
print(x)  # 0

5. Fonctions Lambda

Les fonctions lambda sont des fonctions anonymes écrites sur une seule ligne.

addition = lambda x, y: x + y
print(addition(2, 3))  # 5

6. Exercices Pratiques

Exercices
Exercice 1 : Carré Écrire une fonction `carre(nombre)` qui retourne le carré du nombre.
def carre(n):
    return n ** 2

print(carre(4))  # 16
Exercice 2 : Aire rectangle Créer une fonction `aire_rectangle(longueur, largeur=2)`.
def aire_rectangle(longueur, largeur=2):
    return longueur * largeur

print(aire_rectangle(4))  # 8
Exercice 3 : Pair ou impair Créer une fonction `est_pair(nombre)`.
def est_pair(n):
    return n % 2 == 0

print(est_pair(6))  # True
Exercice 4 : Puissance Créer une fonction `puissance(x, n=2)` qui élève `x` à la puissance `n`.
def puissance(x, n=2):
    return x ** n

print(puissance(3))      # 9
print(puissance(2, 3))   # 8

7. Récapitulatif des Commandes

Instruction Description
def Déclare une fonction
return Renvoie une ou plusieurs valeurs
global Réutilise une variable globale
lambda Fonction anonyme en une ligne
param=valeur Paramètre avec valeur par défaut