⚙️ Les fonctions
Jusqu'à présent, nous avons écrit des programmes composés d'instructions exécutées les unes après les autres. Lorsqu'un traitement doit être utilisé plusieurs fois, il est préférable de le regrouper dans une fonction. Une fonction est un bloc de code réutilisable auquel on donne un nom. Elles permettent :
- d'éviter la duplication de code ;
- de rendre les programmes plus lisibles ;
- de réutiliser facilement un traitement à plusieurs endroits ;
- de découper un programme en parties plus simples à comprendre.
✴️ Créer une fonction
Une fonction se crée à l'aide du mot-clé def.
def nom_de_la_fonction():
instructions
Les deux-points (:) indiquent le début du bloc de la fonction. Toutes les lignes indentées
appartiennent à cette fonction.
def bonjour():
print("Contenu dans la fonction")
print("N'appartient pas à la fonction")
La fonction est maintenant définie, mais elle n'est pas encore exécutée. Pour exécuter une fonction, il faut l'appeler.
def bonjour():
print("Bonjour")
bonjour()
Résultat :
Bonjour
📃 Les arguments
Une fonction peut recevoir des informations appelées arguments. Ces arguments sont placés entre les parenthèses de la fonction.
def bonjour(prenom):
print(f"Bonjour {prenom}")
Appels possibles :
bonjour("Thomas")
bonjour("Alice")
Résultat :
Bonjour Thomas
Bonjour Alice
Une fonction peut recevoir plusieurs arguments.
def addition(a, b):
print(a + b)
addition(5, 3)
Résultat :
8
📤 Renvoyer un résultat
Une fonction peut produire un résultat grâce à l'instruction return. Cette instruction
met fin à l'exécution de la fonction et renvoie une valeur. La valeur renvoyée peut alors être stockée
dans une variable.
def addition(a, b):
return a + b
resultat = addition(5, 3)
print(resultat)
Résultat :
8
Une fonction peut renvoyer n'importe quel type de donnée :
- un nombre ;
- une chaîne de caractères ;
- un booléen ;
- une liste ;
- etc.
def creer_liste():
return ["Rouge", "Vert", "Bleu"]
#️⃣ Valeurs par défaut
Il est possible de fournir une valeur par défaut à un argument.
def puissance(a, b=2):
return a ** b
Dans cet exemple, l'argument b vaut 2 si aucune autre valeur n'est fournie.
print(puissance(4))
print(puissance(4, 3))
Résultat :
16
64
📮 Variables locales
Les variables créées dans une fonction n'existent qu'à l'intérieur de cette fonction.
def exemple():
message = "Bonjour"
print(message)
La variable message n'est accessible que dans la fonction. Cela permet à chaque fonction
de travailler avec ses propres données sans interférer avec le reste du programme.
🟩 Les fonctions et Excel
Lorsque vous utilisez le complément Python pour Excel, les fonctions deviennent directement utilisables dans une cellule.
Exemple :
def carre(nombre):
return nombre ** 2
Après enregistrement de la fonction dans le complément, elle peut être appelée depuis Excel :
=carre(A1)
Si la cellule A1 contient 5, la fonction renverra :
25
Les arguments de la fonction correspondent aux valeurs fournies par Excel. Une cellule unique sera généralement transmise comme une valeur simple :
def doubler(nombre):
return nombre * 2
Une plage de cellules sera quant à elle transmise sous forme de liste ou de liste de listes selon sa forme.
def afficher(valeurs):
return valeurs
Par exemple, une plage de type :
=afficher(A1:B2)
pourra être reçue sous la forme :
[[10, 20], [30, 40]]
Les fonctions Python permettent ainsi de créer facilement de nouvelles formules Excel adaptées à vos besoins.
Les modules
Un module est un fichier Python contenant des fonctions, classes ou variables. Python dispose de nombreux modules intégrés et il est possible d’en créer soi-même.
| Modules courants | Caractéristiques | Lien |
|---|---|---|
| math | Fonctions et constantes mathématiques (sin, cos, exp, pi…) | Lien |
| numpy | Opérations mathématiques avancées, matrices | Lien |
| sys | Gestion des arguments et entrée/sortie standard | Lien |
| os | Interaction avec le système d'exploitation | Lien |
| random | Génération de nombres aléatoires | Lien |
| time | Gestion du temps et de l'heure | Lien |
| calendar | Gestion des dates | Lien |
| Tkinter | Création d'interfaces graphiques | Lien |
| matplotlib | Création de graphiques et courbes | Lien |
Exemples d'importation :
import random
print(random.randint(0, 10))
from random import randint
print(randint(0, 10))
from random import *
print(randint(0, 10))
print(uniform(0, 2.5))
L'importation avec * est possible mais peu recommandée dans les projets importants,
car elle peut provoquer des conflits de noms entre plusieurs modules. Pour obtenir de l'aide sur un
module ou une fonction :
help(random)
help(randint)
Créer votre propre module
Lorsqu'un fichier Python contient plusieurs fonctions utiles, il est possible de le réutiliser dans d'autres programmes.
- Créer un fichier Python contenant les fonctions souhaitées.
- Enregistrer le fichier avec l'extension
.py. - Importer le fichier dans un autre programme.
Exemple :
Fichier calcul.py :
def carre(nombre):
return nombre ** 2
def cube(nombre):
return nombre ** 3
Fichier principal :
import calcul
print(calcul.carre(5))
print(calcul.cube(3))
La fonction help() est capable d'afficher la documentation présente dans les docstrings.
def carre(nombre):
"""
Calcule le carré d'un nombre.
"""
return nombre ** 2