Fonctions
Objectifs
Rappeler la définition, l'utilisation et l'importance des fonctions en programmation.
Définition d'une fonction
Syntaxe de base
def nom_fonction(parametre1, parametre2):
"""Documentation de la fonction"""
# Corps de la fonction
resultat = parametre1 + parametre2
return resultat
Fonction simple sans paramètre
def dire_bonjour():
"""Affiche un message de salutation"""
print("Bonjour !")
# Appel de la fonction
dire_bonjour() # Affiche : Bonjour !
Fonction avec paramètres
def calculer_aire_rectangle(longueur, largeur):
"""Calcule l'aire d'un rectangle"""
aire = longueur * largeur
return aire
# Appel avec arguments
resultat = calculer_aire_rectangle(5, 3)
print(f"Aire : {resultat}") # Aire : 15
Valeur de retour
Fonction avec return
def carre(nombre):
"""Retourne le carré d'un nombre"""
return nombre ** 2
resultat = carre(4)
print(resultat) # 16
Fonction sans return (procédure)
def afficher_table(nombre, limite=10):
"""Affiche la table de multiplication"""
for i in range(1, limite + 1):
print(f"{nombre} x {i} = {nombre * i}")
afficher_table(7, 5)
Retour multiple
def diviser(dividende, diviseur):
"""Retourne le quotient et le reste"""
quotient = dividende // diviseur
reste = dividende % diviseur
return quotient, reste
q, r = diviser(17, 5)
print(f"17 ÷ 5 = {q} reste {r}") # 17 ÷ 5 = 3 reste 2
Paramètres
Paramètres obligatoires
def presenter_personne(nom, prenom, age):
"""Présente une personne"""
print(f"Je m'appelle {prenom} {nom} et j'ai {age} ans.")
presenter_personne("Dupont", "Marie", 17)
Paramètres par défaut
def saluer(nom, formule="Bonjour"):
"""Salue une personne avec une formule personnalisable"""
print(f"{formule} {nom} !")
saluer("Alice") # Bonjour Alice !
saluer("Bob", "Bonsoir") # Bonsoir Bob !
Paramètres nommés
def creer_profil(nom, age, ville="Paris", profession="Étudiant"):
"""Crée un profil utilisateur"""
return f"{nom}, {age} ans, {profession} à {ville}"
# Appel avec paramètres nommés
profil = creer_profil(nom="Alice", age=17, ville="Lyon")
print(profil)
Portée des variables
Variables locales
def ma_fonction():
x = 10 # Variable locale
print(f"x dans la fonction : {x}")
ma_fonction()
# print(x) # Erreur : x n'existe pas ici
Variables globales
y = 20 # Variable globale
def afficher_y():
print(f"y dans la fonction : {y}")
def modifier_y():
global y
y = 30
print(f"y modifié : {y}")
afficher_y() # y dans la fonction : 20
modifier_y() # y modifié : 30
print(f"y global : {y}") # y global : 30
Fonctions utiles
Fonctions mathématiques
import math
def calculer_distance(x1, y1, x2, y2):
"""Calcule la distance entre deux points"""
return math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
def factorielle(n):
"""Calcule la factorielle de n"""
if n <= 1:
return 1
else:
return n * factorielle(n - 1)
Fonctions de validation
def est_pair(nombre):
"""Vérifie si un nombre est pair"""
return nombre % 2 == 0
def est_majeur(age):
"""Vérifie si une personne est majeure"""
return age >= 18
def valider_email(email):
"""Validation simple d'un email"""
return "@" in email and "." in email
Exercices de révision
Exercice 1 : Fonctions mathématiques
Écrire des fonctions pour : 1. Calculer le périmètre et l'aire d'un cercle 2. Convertir des températures (Celsius ↔ Fahrenheit) 3. Calculer la moyenne de trois notes 4. Déterminer si un nombre est premier
Exercice 2 : Jeux et divertissement
Écrire des fonctions pour : 1. Générer un mot de passe aléatoire 2. Jouer à pierre-papier-ciseaux 3. Calculer l'âge en jours 4. Convertir un nombre en lettres (1 → "un")
Exercice 3 : Validation et traitement
Écrire des fonctions pour : 1. Valider un numéro de téléphone 2. Compter les voyelles dans un mot 3. Inverser une chaîne de caractères 4. Vérifier si un mot est un palindrome
Exercice 4 : Calculatrice avancée
Créer un programme avec des fonctions pour : 1. Addition, soustraction, multiplication, division 2. Puissance et racine carrée 3. Calculs trigonométriques 4. Menu interactif pour choisir l'opération