Question 1Qu'affiche le code suivant ?def f(x, y=10):
return x + y
print(f(3))
Définir des fonctions avec def — arguments, valeurs de retour, arguments par défaut et nommés
Apprends à définir tes propres fonctions en Python avec def, return, arguments par défaut et arguments nommés.
Quand la même logique doit s'exécuter plusieurs fois, tu veux un moyen de donner un nom à cette logique et de l'appeler d'où tu veux. Ce mécanisme, c'est une fonction, définie avec le mot-clé def.
Avec les fonctions, la logique partagée vit à un seul endroit et chaque site d'appel est une seule ligne. Tout ce que tu as utilisé jusqu'ici — print() / len() / int() / sum() — est aussi une fonction.
Les bases de def et return
Définis une fonction avec def nom_fonction(arguments): et indente le corps. Renvoie une valeur à l'appelant avec return valeur. Une fonction sans return renvoie de fait None.
L'argument est ce que l'appelant passe à la fonction, et la valeur de retour est ce que la fonction renvoie via return. Comme la même fonction peut être appelée avec différents arguments pour différents résultats, une seule définition peut alimenter de nombreux sites d'appel.
Une fonction créée avec def n'est pas exécutée par le fait d'être enregistrée dans le namespace. Le corps ne s'exécute que quand un appel comme greet("Alice") a lieu — et la valeur de return revient vers l'appelant.
# Pas d'arguments, pas de valeur de retour
def print_hello():
print("Hello World")
print_hello() # Hello World
# Deux arguments, une valeur de retour
def max_num(a, b):
if a >= b:
return a
return b
result = max_num(30, 20)
print(result) # 30
# return sort de la fonction ; ce qui suit ne s'exécute pas
def check(x):
if x < 0:
return "négatif"
return "non négatif"
print(check(-5)) # négatif
Arguments par défaut et arguments nommés
Ajouter = valeur à un argument fixe une valeur par défaut utilisée quand l'appelant l'omet (argument par défaut).
Côté appel, nom_argument=valeur te permet de passer des valeurs par nom indépendamment de la position (arguments nommés). Les arguments par défaut sont conventionnellement placés à la fin de la liste des arguments pour que l'ordre n'ait pas d'importance.
# Donne une valeur par défaut à greeting
def greet(name, greeting="Bonjour"):
return f"{greeting}, {name}"
print(greet("Alice")) # Bonjour, Alice
print(greet("Léa", "Salut")) # Salut, Léa
print(greet(greeting="Bonsoir", name="Chloé")) # les arguments nommés peuvent être réordonnés
# Sortie : Bonsoir, Chloé
Dans cet article, tu as appris les définitions de fonctions avec def, les valeurs de retour avec return, et les arguments par défaut et nommés. Quand tu utilises les fonctions avec aisance, la même logique peut être invoquée de n'importe où autant de fois que tu veux, et la lisibilité du code s'améliore considérablement.
Vérification des connaissances
Répondez à chaque question une par une.
Question 2Quel appel utilise des arguments nommés ?def greet(name, greeting="Hi"):
return f"{greeting}, {name}"
Question 3Que produit le code suivant ?def g(x):
x + 1 # pas de return
result = g(10)
print(result)