Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐍
Debutant 20 min Python

Les fonctions en Python

Pourquoi fonctions en Python ?

Les fonctions en Python sont un outil essentiel pour les développeurs. Elles permettent de structurer le code, d'organiser les tâches et de réutiliser du code existant. En pratique quotidienne, cela signifie que chaque fois qu'un ensemble de instructions est exécuté plusieurs fois, on peut encapsuler ces instructions dans une fonction.

Un cas d'utilisation concret : imaginez un script qui effectue des calculs mathématiques. À la place de répéter les mêmes opérations à chaque fois, on pourrait créer une fonction calculer qui prend en paramètres les nombres et le type d'opération et retourne le résultat.

Prerequis

  • Connaissances en base de Python (variables, structures de contrôle, etc.)
  • Python installé sur votre système (version recommandée : 3.8+)

Concepts fondamentaux

Définition d'une fonction

Une fonction en Python est définie avec le mot-clé def, suivi du nom de la fonction et de ses paramètres entre parenthèses.

def dire_bonjour(nom):
    print(f"Bonjour, {nom}!")

Appel d'une fonction

Pour exécuter le code d'une fonction, on l'appelle en utilisant son nom suivi des paramètres entre parenthèses.

dire_bonjour("Alice")

Retourner une valeur

On peut utiliser le mot-clé return pour retourner une valeur d'une fonction. Cette valeur peut ensuite être utilisée dans l'ensemble du code.

def addition(a, b):
    return a + b

resultat = addition(5, 3)
print(resultat)  # Affiche : 8

Paramètres par défaut

On peut définir des paramètres avec des valeurs par défaut pour rendre la fonction plus flexible.

def multiplier(a, b=1):
    return a * b

print(multiplier(5))  # Affiche : 5
print(multiplier(5, 2))  # Affiche : 10

Fonctions anonymes (lambda)

Les fonctions lambda sont des fonctions anonymes qui peuvent être définies en une seule ligne.

add = lambda x, y: x + y

resultat = add(5, 3)
print(resultat)  # Affiche : 8

Mise en pratique : projet fil rouge

Mini-projet : Gestionnaire de tâches simple

  1. Créer le fichier main.py
from tasks import list_tasks, add_task, delete_task

def afficher_menu():
    print("1. List all tasks")
    print("2. Add a new task")
    print("3. Delete a task")
    print("4. Quit")

if __name__ == "__main__":
    while True:
        afficher_menu()
        choix = input("Enter your choice: ")
        
        if choix == '1':
            list_tasks()
        elif choix == '2':
            description = input("Enter the task description: ")
            add_task(description)
        elif choix == '3':
            index = int(input("Enter the task index to delete: "))
            delete_task(index)
        elif choix == '4':
            break
        else:
            print("Invalid choice. Please try again.")
  1. Créer le fichier tasks.py
tasks = []

def list_tasks():
    if not tasks:
        print("No tasks found.")
    else:
        for i, task in enumerate(tasks):
            print(f"{i}. {task}")

def add_task(description):
    tasks.append(description)
    print(f"Task added: {description}")

def delete_task(index):
    if 0 <= index < len(tasks):
        removed_task = tasks.pop(index)
        print(f"Task removed: {removed_task}")
    else:
        print("Invalid task index.")
  1. Exécuter le programme
python main.py

Étapes détaillées

  1. Définir les fonctions : Dans tasks.py, nous définissons trois fonctions (list_tasks, add_task, et delete_task) qui gèrent les tâches.
  2. Structure du code : Le fichier main.py contient le code principal qui affiche le menu, prend l'entrée de l'utilisateur et appelle les fonctions appropriées.
  3. Exécution : Lorsque nous exécutons python main.py, le programme s'exécute en boucle jusqu'à ce que l'utilisateur choisisse d'quitter.

Erreurs fréquentes et debugging

1. Indentation

Python dépend de l'indentation pour définir les blocs de code. Une erreur d'indentation peut entraîner un IndentationError.

def ma_fonction():
print("Hello, World!")
## 
def ma_fonction():
    print("Hello, World!")

2. Retour manquant

Si une fonction est censée retourner une valeur mais ne le fait pas, on obtient un SyntaxError.

def ma_fonction():
    return "Bonjour"

resultat = ma_fonction()
## 
def ma_fonction():
    return "Bonjour"

resultat = ma_fonction()
print(resultat)

3. Erreur de type

Un TypeError peut survenir si on utilise un type incorrect dans une fonction.

def addition(a, b):
    return a + b

resultat = addition(5, "3")
## 
def addition(a, b):
    return a + int(b)

resultat = addition(5, "3")
print(resultat)

Pour aller plus loin

1. Fonctions récursives

En apprenant les fonctions récursives, on peut résoudre des problèmes qui se reproduisent à chaque appel (ex: factoriel, Fibonacci).

2. Fonctions génératrices

Les générateurs permettent de créer des séquences de valeurs à la volée, ce qui peut être très utile pour gérer des données volumineuses.

3. Fonctions décorateurs

Les décorateurs sont une fonction spéciale qui permettent de modifier le comportement d'une autre fonction ou d'une méthode.

Défi pratique

  1. Créer un simple jeu en Python : Utilisez des fonctions pour structurer votre code et ajoutez une interface utilisateur.
  2. Développer une application web simple : Utilisez les fonctions dans le backend d'une application web avec Flask ou Django.

Besoin d'aide sur Python ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Qu'est-ce qu'une fonction en Python?
Une fonction en Python est un bloc d'instructions qui est défini avec le mot-clé 'def'. Elle permet de regrouper du code réutilisable et peut prendre des paramètres en entrée.
Comment appeler une fonction en Python?
Pour appeler une fonction, vous devez écrire le nom de la fonction suivie de parentheses. Si la fonction prend des arguments, vous les passez entre ces parentheses.
Quelle est la différence entre une fonction et une méthode en Python?
Une méthode est similaire à une fonction mais est associée à un objet spécifique. Elle est définie comme une fonction dans la classe de l'objet. Toutes les méthodes prennent au moins un paramètre, généralement appelé 'self', qui fait référence à l'instance de l'objet.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.