UVT : MASTER BADS

Ce document présente les notions fondamentales sur les fonctions en Python, destinées aux étudiants en informatique ou toute personne souhaitant maîtriser la programmation fonctionnelle en Python. Il couvre la déclaration, l’appel, la portée des variables, l’imbrication des fonctions ainsi que les fonctions lambda.

D'après le document UVT : MASTER BADS

Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

UVT : MASTER BADS

Document source

UVT : MASTER BADS

Programming, Python · PDF · 9 pages · 2020

Afficher l'aperçu du document

Consulter le document original →

Ce document présente les notions fondamentales sur les fonctions en Python, destinées aux étudiants en informatique ou toute personne souhaitant maîtriser la programmation fonctionnelle en Python. Il couvre la déclaration, l’appel, la portée des variables, l’imbrication des fonctions ainsi que les fonctions lambda.

Déclaration d’une fonction

Une fonction en Python se déclare avec le mot-clé def, suivi du nom de la fonction, des paramètres entre parenthèses, et d’un deux-points. Le corps de la fonction est indenté et peut contenir une chaîne de documentation (docstring) ainsi que les instructions à exécuter. La valeur de retour est spécifiée avec return.

def nomDeLaFonction(liste_de_paramètres):
    ...
    bloc d'instructions
    ...

Si le corps de la fonction est vide, on utilise l’instruction pass pour indiquer un bloc vide.

Il est possible de donner des valeurs par défaut aux paramètres, qui seront utilisées si aucun argument n’est passé lors de l’appel. Les paramètres avec valeurs par défaut doivent être placés après les autres paramètres.

Une fonction peut aussi retourner plusieurs valeurs.

Exemple

# fonction calculant la somme des entiers de i1 à i2 inclus
def sum(i1, i2):
    result = 0
    for i in range(i1, i2 + 1):
        result += i
    return result

Appel d’une fonction

Les fonctions peuvent être appelées en passant les arguments selon leur position ou en nommant explicitement les paramètres.

Considérons la fonction suivante :

def petit(a, b):
    if a < b:
        d = a
    else:
        d = 0
    return d

Appel par position :

print(petit(10, 12))  # Affiche 10

Appel par nom (ordre des arguments interchangeable) :

print(petit(a=10, b=12))  # Affiche 10
print(petit(b=12, a=10))    # Affiche 10

Variables locales et variables globales

Lorsqu’une fonction est appelée, Python crée un espace de noms local pour ses variables. Ces variables locales sont accessibles uniquement à l’intérieur de la fonction et ne peuvent pas être modifiées depuis l’extérieur.

Les variables définies en dehors des fonctions sont globales. Elles sont visibles à l’intérieur des fonctions mais ne peuvent pas être modifiées directement sans déclaration spéciale.

Exemple

def g():
    a = 3
    print("Dans la fonction g : ", a)
    return a

def f(a):
    a += 2
    print("Dans la fonction f : ", a)
    return a

a = 3
print(a)    # 3
g()         # Dans la fonction g :  3
print(a)    # 3
f(a)        # Dans la fonction f :  5
print(a)    # 3
f(a + 5)    # Dans la fonction f :  10
print(a)    # 3
a = f(a + 7)
print(a)    # 12

On remarque que la variable globale a n’est pas modifiée par les fonctions g et f sauf si on affecte explicitement le résultat à a.

Utilisation de la variable globale avec global

Pour modifier une variable globale à l’intérieur d’une fonction, on utilise l’instruction global qui indique que la variable manipulée est celle définie dans l’espace global.

Imbrication des fonctions

Il est possible de définir une fonction à l’intérieur d’une autre fonction. La fonction interne est alors locale à la fonction englobante et n’est pas accessible depuis l’extérieur.

La fonction lambda

Les fonctions lambda sont des fonctions anonymes très courtes, limitées à une seule expression. Elles sont souvent utilisées pour des calculs mathématiques simples.

  • Pas de mot-clé return : l’expression est automatiquement retournée.
  • Pas d’instructions complexes (pas de for, if, while).

Syntaxe :

lambda arg1, arg2, ... : expression_de_retour

Exemples

# Fonction F(x) = x^2
F = lambda x: x**2
print(F(3))  # Affiche 9

# Fonction F(x, y) = x^2 + y
F = lambda x, y: x**2 + y
print(F(3, 5))  # Affiche 14

Glossaire des termes clés

  • Fonction : Bloc de code réutilisable qui effectue une tâche spécifique et peut retourner une valeur.
  • Paramètre : Variable utilisée dans la définition d’une fonction pour recevoir une valeur lors de l’appel.
  • Argument : Valeur passée à une fonction lors de son appel.
  • Valeur par défaut : Valeur assignée à un paramètre si aucun argument n’est fourni.
  • Variable locale : Variable définie à l’intérieur d’une fonction, accessible uniquement dans cette fonction.
  • Variable globale : Variable définie en dehors des fonctions, accessible dans tout le programme.
  • Instruction global : Permet de modifier une variable globale à l’intérieur d’une fonction.
  • Fonction lambda : Fonction anonyme, courte, limitée à une expression, utilisée pour des calculs simples.
  • Docstring : Chaîne de documentation placée en début de fonction pour décrire son comportement.

Points clés à retenir

  • Une fonction se déclare avec def, un nom, des paramètres, et un bloc indenté.
  • Les paramètres peuvent avoir des valeurs par défaut.
  • Les fonctions peuvent retourner une ou plusieurs valeurs avec return.
  • Les arguments peuvent être passés par position ou par nom.
  • Les variables locales sont isolées dans la fonction, les variables globales sont visibles mais non modifiables sans global.
  • On peut imbriquer des fonctions, la fonction interne est locale à la fonction externe.
  • Les fonctions lambda sont des fonctions anonymes très courtes, limitées à une expression.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions