📚 Fonctions en Python
Modularité et réutilisabilité du code
🎯 Définitions
🔧 Qu'est-ce qu'une Fonction ?
Une fonction est un bloc de code réutilisable qui effectue une tâche spécifique. Elle permet de modulariser le code et d'éviter les répétitions.
Fonction
Bloc de code réutilisable qui effectue une tâche précise. Peut recevoir des données et retourner un résultat.
Paramètre
Variable d'entrée qui permet à la fonction de recevoir des données pour son fonctionnement.
Valeur de Retour
Résultat que la fonction renvoie après avoir effectué ses calculs ou traitements.
📋 Structure d'une Fonction
def nom_de_fonction(variable_1: type, variable_2: type) -> type_renvoi:
"""
Documentation de la fonction :
- Explications de ce que fait la fonction
- Description des paramètres
- Description de la valeur de retour
"""
# Corps de la fonction
resultat = # calculs ou traitements
return resultat # ou None si pas de retour
💡 Exemple Concret : Convertir des températures Celsius en Fahrenheit
Formule : Temperature_Fahrenheit = (Temperature_Celsius × 9/5) + 32
Formule : Temperature_Fahrenheit = (Temperature_Celsius × 9/5) + 32
💻 Exemples de Fonctions
def celsius_vers_fahrenheit(temp_celsius: int) -> float:
"""
Convertit une température Celsius en Fahrenheit.
Args:
temp_celsius (int): Température en degrés Celsius
Returns:
float: Température en degrés Fahrenheit
"""
temp_fahrenheit = (temp_celsius * (9/5)) + 32
return temp_fahrenheit
def afficher_bonjour(prenom: str) -> None:
"""
Affiche un message de salutation personnalisé.
Args:
prenom (str): Le prénom de la personne à saluer
Returns:
None: Cette fonction n'a pas de valeur de retour
"""
print('Bonjour, ' + prenom)
# Utilisation des fonctions
print(celsius_vers_fahrenheit(19)) # Affiche: 66.2
print(celsius_vers_fahrenheit(25)) # Affiche: 77.0
afficher_bonjour('Eudes') # Affiche: Bonjour, Eudes
afficher_bonjour('Germaine') # Affiche: Bonjour, Germaine
🔍 Anatomie d'une Fonction
Mot-clé
def
Indique le début de la définition d'une fonction
Nom de fonction
Identifiant unique pour appeler la fonction (ex:
celsius_vers_fahrenheit
)
Paramètres
Variables d'entrée avec leur type (ex:
temp_celsius: int
)
Documentation
Bloc de texte expliquant le rôle, les paramètres et le retour
Corps de fonction
Instructions à exécuter quand la fonction est appelée
Valeur de retour
Résultat renvoyé par
return
(optionnel)
⚠️ Attention : Une fonction sans
Exemple :
return
renvoie None
par défaut.Exemple :
print(afficher_bonjour('Eudes'))
affichera None
🌍 Variables Locales et Globales
📍 Portée des Variables
En Python, la portée d'une variable détermine où elle peut être utilisée dans le programme.
Variable Locale
Définie à l'intérieur d'une fonction. Accessible uniquement dans cette fonction.
Variable Globale
Définie en dehors de toute fonction. Accessible partout dans le programme.
🏠 Exemple : Variable Locale
def ma_fonction():
variable_locale = 10 # Variable locale
print(variable_locale)
ma_fonction() # Affiche 10 ✅
# print(variable_locale) # ❌ Erreur ! Variable non accessible ici
🌐 Exemple : Variable Globale
variable_globale = 20 # Variable globale
def ma_fonction():
print(variable_globale) # Accès à la variable globale ✅
ma_fonction() # Affiche 20
print(variable_globale) # Affiche 20
🔧 Modification d'une Variable Globale :
Utilisez le mot-clé
Utilisez le mot-clé
global
pour modifier une variable globale dans une fonction
🔧 Modification avec
global
compteur = 0 # Variable globale
def incrementer():
global compteur # Déclaration nécessaire pour modification
compteur += 1
print(compteur) # Affiche 0
incrémenter()
print(compteur) # Affiche 1
💡 Bonnes Pratiques
Documentation
Utilisez des docstrings pour expliquer le rôle, les paramètres et le retour de vos fonctions.
Noms Explicites
Choisissez des noms de fonctions qui décrivent clairement leur action.
Spécialisation
Créez des fonctions courtes qui accomplissent une seule tâche efficacement.
📝 Documentation avec Docstrings
def calculer_aire_rectangle(longueur: float, largeur: float) -> float:
"""
Calcule l'aire d'un rectangle.
Args:
longueur (float): La longueur du rectangle
largeur (float): La largeur du rectangle
Returns:
float: L'aire du rectangle
"""
return longueur * largeur
🏷️ Noms de Fonctions Explicites
# ✅ Bon : nom explicite
def calculer_moyenne(notes):
return sum(notes) / len(notes)
# ❌ Moins bon : nom peu clair
def calc(n):
return sum(n) / len(n)
🎯 Fonctions Spécialisées
def est_pair(nombre):
"""Vérifie si un nombre est pair."""
return nombre % 2 == 0
def filtrer_nombres_pairs(liste_nombres):
"""Filtre les nombres pairs d'une liste."""
return [n for n in liste_nombres if est_pair(n)]
🚀 Conseil : Une fonction bien écrite est facile à comprendre, tester et réutiliser !