Python : Les Fonctions
Tags: python, french, beginners
Published: 2022-04-01 08:41:23

---
title: Python : Les Fonctions
published: true
description:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
tags: Python, French, beginner
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nzd1p2w4ct8h5q0pkork.jpg
series: Python crash course
---

Le cours accéléré Python est gratuit et sera publié ici sur dev.to. Je publierai un nouvel article tous les deux jours environ. Pour ne rien manquer, vous pouvez me suivre sur twitter : <a href="https://twitter.com/EricLeCodeur" class="twitter-follow-button" data-show-count="false">Suivez @EricLeCodeur<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


# Créer vos propres fonctions

Comme vous avez pu le constater jusqu’à présent, Python inclut déjà plusieurs fonctions afin de nous simplifier la vie.

Le même principe va s'appliquer dans votre application, c’est-à-dire qu'il est possible de simplifier votre vie et celle de votre équipe en créant des fonctions réutilisables.

Voici les grandes lignes sur comment créer ses propres fonctions.

### Déclaration

Pour créer une fonction vous devez utiliser l’instruction “def” suivit du nom de votre fonction, ajouter les parenthèses () et enfin les deux “:” qui indiquerons le début de votre bloc de code.

```python
def say_hello():
    print("Hello World")
```

Voilà votre première fonction !

Par contre, ceci n’est que la déclaration, pour la lancer il faut l’appeler de votre code.

```python
say_hello()

# Hello World
```

L’appel se fait en utilisant le nom de la fonction suivit des parenthèses ()

### Arguments

Il est possible de créer une fonction avec un ou des arguments. Les arguments sont un concept très puissant car ils permettent de personnaliser la fonction.

```python
def say_hello(message):
    print(message)

say_hello("Hello all!")

# Hello all!
```

À noter que le nombre d’argument de déclaration doit être identique au nombre d’argument lors de l’appel. Sinon, Python retournerait une erreur.

Pour éviter cette situation, un argument peut avoir une valeur par défaut. Pour ce faire il faut assigner une valeur à l’argument (argument = valeur par défaut)

```python
def say_hello(message = "Hello World!"):
    print(message)

say_hello()
# Hello World
```

Ici, l’appel de notre fonction say_hello() n’a pas d’argument. Python va donc utiliser sa valeur par défaut spécifié lors de sa déclaration.

Du coup, avec ce concept il est possible de rendre un argument optionnel.                                                                                                                                                              

### Multiples arguments

Évidemment il est possible d’avoir plusieurs arguments

```python
def say_hello(message, upper):
    if upper:
        return message.upper()
    else:
        return message

print(say_hello("Hello World", True))
```

Comme il est également possible d’avoir plusieurs valeurs par défaut

```python
def say_hello(message="Hello", upper=True):
    if upper:
        return message.upper()
    else:
        return message

print(say_hello())
```

Ici l’appel de la fonction say_hello() est possible sans argument car les deux arguments sont optionnels.

### Ordre des arguments quand il y a une valeur par défaut

À noter que les arguments qui ont une valeur par défaut doivent absolument être placés en dernier.

Voici un exemple qui retournera une erreur :

```python
def say_hello(message="Hello", upper):
    if upper:
        return message.upper()
    else:
        return message

print(say_hello(True))
# SyntaxError: non-default argument follows default argument
```

Le code suivant n’est pas valide et retournera une erreur car certains arguments ont une valeur par défaut mais l’argument “upper” est en dernier et n’a pas de valeur par défaut. Dans cet exemple il serait impossible pour Python de savoir si l’argument True doit être associé à la variable “message” ou “upper”

### Nommé un argument

Si une fonction comporte plusieurs arguments elle peut rapidement devenir complexe à lire.

Voici un exemple d’une fonction avec plusieurs arguments:

```python
def create_invoice(sub_total, shipping, taxes):
    print("...code...")

create_invoice(1000, 25, 100)
```

Lors de l’appel de la fonction il faut spécifier 3 arguments de type nombre. Il devient alors difficile de savoir à quoi servent ces nombres, du coup la lecture du code n’est pas explicite.

Pour éviter cette situation, Python permet de spécifier le nom de l’argument

```python
create_invoice(sub_total=1000, shipping=25, taxes=100)
```

Comme vous pouvez le constater, cette syntaxe rend la lecture du code beaucoup plus compréhensible.

Cette syntaxe permet également de changer l’ordre des arguments

```python
create_invoice(taxes=100, sub_total=1000, shipping=25)
```

### Une fonction qui retourne une valeur

Une fonction peut être assignée comme valeur à une variable

```python
amount = calc_total(500, 50, 25)
```

Il est possible pour une fonction de retourner une valeur lors de son exécution. Pour ce faire vous devez utiliser l’instruction “return”

```python
def calc_total(sub_total, taxes, shipping):
    return sub_total + taxes + shipping
```

Si la fonction n’a pas d’instruction “return” elle va retourner “None”

```python
def say_hello(message):
    print(message)

return_value = say_hello("Hello World!")
print(return_value)

# Hello World
# None
```

En l’absence de l’instruction “return” la fonction va retourner la valeur “None”

## Conclusion
C'est tout pour aujourd'hui, je publierai un nouvel article tous les deux jours environ. Pour être sûr de ne rien rater vous pouvez me suivre sur twitter : <a href="https://twitter.com/EricLeCodeur" class="twitter-follow-button" data-show-count="false">Suivre @EricLeCodeur</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>