🐍 Cours de programmation Python sur Excel 💻

⚙️ 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 :



✴️ 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 :



    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.

  1. Créer un fichier Python contenant les fonctions souhaitées.
  2. Enregistrer le fichier avec l'extension .py.
  3. 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