Photo by Lucs Bravo on Unsplash

Nous voici a présent dans la troisième partie commencer en Python. Ce que nous allons voir aujourd’hui ce résume par les fonctions.

Mais avant un petit rappel si vous n’avez pas suivi le parties précédentes.

Commencer en Python partie 1

Commencer en Python partie 2

C’est parti et pour commencer voici une question “Les fonctions, mais qu’est ce que c’est que ça ?”

Une fonction est un bout de code qui va nous permettre de réutiliser des parties de code, et vous savez quoi vous en avez déjà utilisé oui oui. Par exemple lorsque vous écrivez

print('coucou')

ici print() est une fonction qui nous permet d’appeler le système d’écriture dans Python pour afficher le message coucou.

Création d’une fonction.

Maintenant, comment on écrit une fonction, et bien c’est assez simple il faut écrire le mot clé def pour definition, suivi du nom de votre fonction. Voici un exemple

>>> def addition():
...    print(2 + 2)
...
>>>addition()
>>> 4

et voila, bon cette fonction ne fait pas grand chose en fait, elle additionne 2+2 et affiche 4. Vous pouvez constater que l’appel à cette fonction ce fait simplement en écrivant le nom de la fonction avec parenthèses.

Maintenant nous allons reprendre cette fonction et l’améliorer un peu en ajoutant un retour (return) ce qui va nous permettre par exemple de mettre le retour de cette fonction dans une variable.

>>> def addition():
...    return 2 + 2
...
>>> resultat = addition()
>>> print(resultat)
4

Aller soyons fous et si maintenant on rendait cela plus dynamique.

Les variables de fonctions.

Les variables de fonction sont très pratiques pour pouvoir rendre vos fonctions intelligentes. Reprenons notre exemple.

>>> def addition(chiffre1, chiffre2):
...    return chiffre1 + chiffre2
...
>>> print(addition(2, 2))
4
>>> print(addition(3, 2))
5
>>> print(addition(3, 3))
6

Le monde devient bien plus interessant comme cela ;) mais … on peut faire encore mieux. Les variables prédéfinies.

En effet nous pouvons mettre des valeurs par défaut pour nos variables de fonctions et voici tout de suite un exemple.

>>> def addition(chiffre1, chiffre2 = 2):
...   return chiffre1 + chiffre2
...
>>> print(addition(2))
4

Petite chose importante, il faut mettre les variables avec des paramètres par défaut à la fin, sinon cela risque de générer des erreurs.

Maintenant nous allons voir des arguments spéciaux.

Les arguments nommés.

Les fonctions peuvent être appelées en utilisant des arguments nommés, tels que kwarg=value. reprenons notre exemple précédent, notre fonction peut être appelée de différentes façons.

>>> addition(2)
4
>>> addition(chiffre1=2, chiffre2=2)
4
>>>addition(chiffre2=3, chiffre1=2)
5

ici nous avons ce que nous appelons des paramètres nommés, c’est à dire que chaque variable a un nom (ici, chiffre1 et chiffre2), mais il se peut que vos fonctions acceptent un certain nombre de paramètres qui ne sont pas nommés, donc votre fonction peut accepter plusieurs variables sans nécessairement être prédefinies. voici un exemple.

>>> def fromagerie(kind, *arguments, **keywords):
...   print('-- est ce que vous avez du ', kind ,'?')
...   print('-- désolé, nous n'avons plus de ', kind)
...   print('-- mais nous avons...')
...   for arg in arguments:
...      print(arg)
...   for kw in keywords:
...      print(kw, ' : ', keywords[kw])
...
>>> fromagerie('Gruyère', 'Roquefort', 'Abondance', proprietaire='Monsieur X', client='Madame Y')
-- est ce que vous avez du Gruyère
-- désolé, nous n'avons plus de Gruyère
-- mais nous avons...
Roquefort
Abondance
proprietaire : Monsieur X
client : Madame Y

Premièrement, il faut remarquer les arguments de la fonction *arguments et **keywords, *argument recoit des valeurs tant dis que **keywords recoit un dictionnaire. Deuxièmement *arguments sera toujours avant **keywords, et pour finir vous pouvez constater que l’ordre dans lequel vous avez envoyé vos parametres et le même que celui de la sortie.

Les fonctions anonymes.

Avec le mot de clé lambda vous allez pouvoir écrire des fonctions anonymes, par exemple la fonction que nous avons créé pour additionner nos chiffres aurait pu s’écrire comme cela :

lambda a, b: a+b

Les fonctions anonymes peuvent être écrite partout où un objet fonction est attendu.

Documenter vos fonctions.

Voici quelques conventions pour documenter vos fonctions.

def addition(a, b):
   """
   Un résumé de ma fonction

   Voici un grand texte qui explique ce que fait ma fonction point par point.
   Maintenant je peux utiliser plusieurs lignes et/ou paragraphe si besoin.
   """
   return a + b

Voila qui conclue la partie 3 de notre grand tutorial.

A bientôt.