Bases

Fonctions Python débutant : valeurs par défaut, paramètres nommés et portée des variables

Maîtrisez def en Python : valeurs par défaut, paramètres nommés et portée des variables avec des exemples simples et sûrs.

Fonctions Python débutant : valeurs par défaut, paramètres nommés et portée des variables
Difficulté
Facile

Avec def, vous pouvez vite écrire des fonctions plus souples grâce aux valeurs par défaut et aux paramètres nommés. Il faut aussi comprendre la portée des variables : une variable créée dans une fonction n’existe pas automatiquement ailleurs.

Prérequis

Vous devez savoir lancer un script Python et reconnaître une fonction simple avec def et return. Les règles montrées ici suivent la documentation officielle sur les fonctions et la portée des noms Python Docs, Python Docs.

Matériel nécessaire

  • Python 3 installé
  • Un éditeur de texte ou un IDE
  • Un terminal ou l’interpréteur Python

Étapes

  1. Créer une valeur par défaut

    Un ordinateur portable sur un bureau montre un éditeur de code avec une structure de fonction où une zone d’entrée semble préremplie visuellement tandis qu’une autre reste vide, avec une main près du pavé tactile.

    Écrivez un paramètre avec une valeur dans la signature. Ce paramètre devient optionnel lors de l’appel.

    def saluer(nom, ponctuation="!"):
        return "Bonjour " + nom + ponctuation
    
    print(saluer("Lina"))
    print(saluer("Lina", "?"))

    Le premier appel utilise "!". Le second remplace cette valeur.

  2. Appeler avec des paramètres nommés

    Des mains tapent sur un ordinateur portable affichant un appel de fonction avec plusieurs segments distincts suggérant des paramètres nommés dans un éditeur de code sans texte lisible.

    Indiquez le nom du paramètre dans l’appel pour rendre le code plus lisible. C’est pratique dès qu’une fonction a plusieurs arguments.

    def afficher_produit(nom, prix, devise="€"):
        return nom + " : " + str(prix) + " " + devise
    
    print(afficher_produit("Stylo", 2))
    print(afficher_produit(nom="Stylo", prix=2, devise="EUR"))
    print(afficher_produit(prix=2, nom="Stylo"))

    Quand vous nommez chaque argument, l’ordre devient plus souple.

  3. Mélanger correctement positionnel et nommé

    Commencez par les arguments positionnels, puis ajoutez les arguments nommés. Python impose cet ordre.

    def reserver(train, heure, classe="2nde"):
        return train + " à " + heure + " en " + classe
    
    print(reserver("TER", "08:30"))
    print(reserver("TER", "08:30", classe="1re"))

    Retenez la règle simple : positionnel d’abord, nommé ensuite Python Docs.

  4. Tester la portée locale

    Un ordinateur portable sur un bureau montre deux zones de code visuellement séparées, avec des objets posés à distance pour évoquer une séparation entre une portée locale et une portée extérieure.

    Créez une variable dans une fonction, puis essayez de l’utiliser dehors. Vous verrez qu’elle reste locale à cette fonction.

    def calculer_total():
        total = 10 + 5
        return total
    
    print(calculer_total())
    # print(total)  # provoquerait une NameError

    Ici, total n’existe pas hors de la fonction Python Docs.

  5. Lire ou modifier une variable globale

    Une fonction peut lire une variable définie hors d’elle si aucun nom local ne la masque. Pour la modifier, il faut une instruction explicite.

    message = "Bonjour"
    
    def lire_message():
        return message
    
    print(lire_message())
    print(message)
    compteur = 0
    
    def incrementer():
        global compteur
        compteur = compteur + 1
    
    incrementer()
    print(compteur)
  6. Réutiliser les trois règles ensemble

    Assemblez maintenant valeur par défaut, appel nommé et variable locale. Ce petit exemple reprend les trois idées dans une seule fonction.

    def decrire_utilisateur(nom, age=18, ville="Paris"):
        phrase = nom + " a " + str(age) + " ans et habite à " + ville
        return phrase
    
    print(decrire_utilisateur("Nora"))
    print(decrire_utilisateur("Nora", ville="Lyon"))
    print(decrire_utilisateur(nom="Nora", age=20, ville="Lille"))

    phrase est locale, et age comme ville sont optionnels.

Erreurs fréquentes & dépannage

L’erreur la plus fréquente est de croire qu’une variable créée dans une fonction reste disponible partout. Une autre consiste à placer un argument nommé avant un argument positionnel.

Évitez aussi d’abuser de global. Dans beaucoup de cas, une fonction qui reçoit des valeurs puis renvoie un résultat avec return est plus claire.

Astuces & pour aller plus loin

Si un appel devient difficile à relire, nommez les arguments les plus importants. Si une même valeur revient souvent, donnez-lui une valeur par défaut raisonnable.

Pour vérifier la portée, testez la variable dans la fonction puis hors de la fonction. Si elle n’existe qu’à l’intérieur, elle est locale.

Questions fréquentes

Quand utiliser une valeur par défaut ?

Quand une même valeur convient dans la plupart des appels. Vous gardez la possibilité de la remplacer si nécessaire.

Les paramètres nommés sont-ils obligatoires ?

Non. Vous pouvez appeler une fonction par position, par nom, ou en mélangeant les deux dans le bon ordre.

Faut-il utiliser global pour partager une variable ?

Pas forcément. Pour débuter, il est souvent plus simple de faire calculer une valeur par la fonction puis de la récupérer avec return.

Conclusion

Retenez trois réflexes : mettez les valeurs par défaut à la fin, utilisez les paramètres nommés pour clarifier les appels, et supposez qu’une variable créée dans une fonction est locale. Si ces bases sont acquises, l’étape suivante utile est d’apprendre *args et **kwargs dans la documentation officielle.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire