Les fonctions
Les fonctions permettent d'encapsuler une tâche répétitive pour la réutiliser avec différents paramètres, évitant ainsi la duplication de code. Elles favorisent la modularité en séparant la conception (par un développeur) de l'utilisation (par un autre), comme avec les fonctions natives print(), input() ou range().
Déclaration d'une fonction
Une fonction se définit avec le mot-clé def :
def nom_de_la_fonction(parametres):
# Corps de la fonction
return resultat # Optionnelreturn. Si aucune instruction return n'est précisée, la fonction renvoie automatiquement la valeur None.Exemple — Calculer le prix TTC
Calculer le prix TTC à partir d'un prix HT (Hors Taxes) et d'un taux de TVA (20 % par défaut).
def calcul_ttc(prix_ht):
ttc = prix_ht * (1 + 0.2)
return ttc
# Utilisation de la fonction
prix = 100.0
print(f"Prix HT: {prix} | TTC: {calcul_ttc(prix)}")Prix HT: 100.0 | TTC: 120.0
Paramètres et arguments
- Paramètres : Variables listées dans la définition de la fonction.
- Arguments : Valeurs passées lors de l'appel.
Exemple — TVA par défaut
Calcule le prix TTC à partir d'un prix HT et d'un taux de TVA donné (par défaut 20 %).
def calcul_ttc(prix_ht, tva=0.2):
ttc = prix_ht * (1 + tva)
return ttc
prix = 100.0
print(f"Prix HT: {prix} | TTC (TVA = 20%): {calcul_ttc(prix)}")
print(f"Prix HT: {prix} | TTC (TVA = 14%): {calcul_ttc(prix, 0.14)}")Prix HT: 100.0 | TTC (TVA = 20%): 120.0 Prix HT: 100.0 | TTC (TVA = 14%): 114.00000000000001
114.00000000000001 est dû à la représentation binaire des flottants en mémoire. Pour afficher proprement, utiliser round(calcul_ttc(prix, 0.14), 2) qui retourne 114.0.Exemple — Arguments nommés
Python permet de passer les arguments par nom (arguments nommés ou keyword arguments), ce qui rend l'appel plus lisible et permet de les passer dans un ordre quelconque.
prix = 100
montant_1 = calcul_ttc(prix_ht=100, tva=0.1)
montant_2 = calcul_ttc(tva=0.1, prix_ht=100) # Même résultat, ordre différent
print(montant_1) # 110.00000000000001
print(montant_2) # 110.00000000000001Fonctions anonymes (lambda)
Une fonction lambda (ou « anonyme ») permet de créer une petite fonction en une seule ligne, sans lui donner de nom. Idéale pour des calculs simples et ponctuels. Elle est souvent utilisée avec des fonctions comme map(), filter() ou sorted().
lambda arguments: expressionFonction def | Équivalent lambda |
|---|---|
def quad(x): return x**2 | quad = lambda x: x**2 |
def produit(a,b): return a*b | produit = lambda a, b: a*b |
def max2(a,b): return a if a>b else b | max2 = lambda a, b: a if a > b else b |
Exemple
quad = lambda x: x**2
produit = lambda a, b: a * b
print(quad(2)) # 4
print(produit(4, 3)) # 12
# Utilisation avec sorted()
etudiants = [("Alice", 17), ("Bob", 15), ("Carla", 18)]
tries = sorted(etudiants, key=lambda e: e[1], reverse=True)
print(tries) # [('Carla', 18), ('Alice', 17), ('Bob', 15)]4
12
[('Carla', 18), ('Alice', 17), ('Bob', 15)]Portée des variables
- Variable locale : Définie à l'intérieur d'une fonction, elle n'existe que pendant l'exécution de celle-ci.
- Variable globale : Définie en dehors de toute fonction. Pour la modifier depuis une fonction, il faut utiliser le mot-clé
global.
global est déconseillée car elle rend le code difficile à déboguer et à maintenir. Préférez passer les valeurs en paramètre et récupérer le résultat via return.Exemple — variable globale
x = 10 # Variable globale
def modifier():
global x
x = 20
modifier()
print(x) # 2020
Exemple — lecture sans global
compteur = 0 # Variable globale
def afficher():
print(compteur) # Lecture seule : pas besoin de global
afficher() # 0Modules
Un module Python est un fichier contenant du code réutilisable (fonctions, classes, variables) qui implémente une fonctionnalité spécifique. Il permet d'organiser le code de manière modulaire.
.py. Par exemple, le fichier operations.py définit le module operations.Exemple — Créer un module
Ce module définit quatre fonctions mathématiques de base, permettant de réaliser des opérations courantes entre deux nombres.
# operations.py — Module operations
def somme(a, b):
return a + b
def produit(a, b):
return a * b
def soustraction(a, b):
return a - b
def puissance(a, n):
return a ** nImporter un module
Pour utiliser les objets définis dans un module depuis un autre fichier, on utilise l'instruction import. Les objets sont ensuite accessibles en préfixant leur nom par celui du module suivi d'un point (.).
import operations
print(operations.somme(5, 7))12
Renommer avec as
Il est possible de donner un alias au module lors de l'importation grâce au mot-clé as. Pratique pour raccourcir les noms longs.
import operations as op
print(op.somme(5, 7)) # 12
print(op.produit(5, 7)) # 35Importation sélective avec from … import
Pour accéder directement aux objets sans préfixe, on utilise from ... import, qui importe uniquement les éléments souhaités.
from operations import somme, produit
print(somme(5, 7)) # 12
print(produit(5, 7)) # 35from operations import * importe tous les objets du module dans l'espace de noms courant, ce qui peut provoquer des conflits de noms et rend le code moins lisible. À réserver aux cas exceptionnels.| Forme | Accès | Usage typique |
|---|---|---|
import operations | operations.somme() | Usage général, clarté maximale |
import operations as op | op.somme() | Modules à noms longs (numpy as np) |
from operations import somme | somme() | Quelques fonctions précises |
from operations import * | somme() | Déconseillé en production |
Module math
Le module math est une bibliothèque standard de Python qui fournit des fonctions et constantes mathématiques avancées. Elle permet d'effectuer des opérations plus complexes que les opérateurs de base (+, -, *, /).
Exemple — Fonctions du module math
import math
print(math.sqrt(16)) # 4.0 — Racine carrée
print(math.pi) # 3.141592… — Constante π
print(math.factorial(5)) # 120 — Factorielle
print(math.cos(0)) # 1.0 — Cosinus (radians)
print(math.log(10)) # 2.302… — Logarithme népérien
print(math.ceil(3.2)) # 4 — Arrondi supérieur
print(math.floor(3.9)) # 3 — Arrondi inférieur
print(math.gcd(12, 8)) # 4 — PGCD4.0 3.141592653589793 120 1.0 2.302585092994046 4 3 4
| Fonction / Constante | Description | Exemple |
|---|---|---|
math.sqrt(x) | Racine carrée de x | math.sqrt(9) → 3.0 |
math.factorial(n) | Factorielle de l'entier n | math.factorial(5) → 120 |
math.floor(x) | Arrondi à l'entier inférieur | math.floor(3.9) → 3 |
math.ceil(x) | Arrondi à l'entier supérieur | math.ceil(3.1) → 4 |
math.log(x) | Logarithme naturel (base e) | math.log(math.e) → 1.0 |
math.log10(x) | Logarithme en base 10 | math.log10(100) → 2.0 |
math.cos(x) / sin(x) | Cosinus / Sinus (en radians) | math.cos(0) → 1.0 |
math.gcd(a, b) | Plus grand commun diviseur | math.gcd(12, 8) → 4 |
math.pi | Constante π ≈ 3.14159… | math.pi → 3.141592653589793 |
math.e | Constante e ≈ 2.71828… | math.e → 2.718281828459045 |
math.cos, math.sin, etc.), utilisez math.radians(deg). Par exemple, math.cos(math.radians(90)) retourne approximativement 0.0.
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.