Exercices sur les fonctions¶
Voici quelques exercices portant sur les fonctions en Python.
Exercice 1
Téléchargez le fichier suivant et ouvrez-le dans Thonny :
exo1_fonctions.py
Complétez les fonctions est_pair
, plus_grand
et produit
en respectant la documentation (voir explications sur les docstrings plus bas).
Voici quelques exemples d'appels à ces fonctions dans la console :
>>> est_pair(12)
True
>>> est_pair(15)
False
>>> plus_grand(5, 8, 3)
8
>>> plus_grand(7, 7, 7)
7
>>> produit(4, 8)
32
Les docstrings
Pour comprendre ce que doivent renvoyer ces fonctions, et quels sont leurs paramètres, lisez leurs documentations. Les documentations des fonctions sont écrites sous la forme de commentaires multilignes, que l'on appelle des docstrings. Par exemple, voici la docstring de la fonction est_pair
:
''' Renvoie True si l'entier positif n est pair, False sinon.
:param n: (int) un entier positif
:return: (bool) True ou False '''
Cette docstring indique que la fonction doit renvoyer un booléen, True
ou False
, selon si la paramètre n
(un entier) est pair ou non.
À noter qu'il n'y a pas vraiment de convention sur la manière d'écrire une docstring. Toutefois, il doit au minimum y figurer :
- ce que fait la fonction,
- les paramètres d'entrée et leur type,
- la valeur de retour et son type.
Exercice 2
Dans un nouveau script Python, écrire une fonction compter_voyelles
qui reçoit une chaîne de caractères mot
en entrée et renvoie le nombre de voyelles ("a", "e", "i", "o", "u", "y") présentes dans ce mot.
Exemple :
Ensuite, en-dessous de la fonction, écrire un programme qui demande à l'utilisateur de saisir un mot, puis afficher le nombre de voyelles de ce mot en faisant appel à compter_voyelles
.
Exercice 3
Écrire une fonction factorielle
qui reçoit un nombre entier nombre
en entrée et renvoie la factorielle de ce nombre. Cliquez ici pour un rappel de ce qu'est une factorielle.
Exemple :
Ensuite, en-dessous de la fonction, écrire un programme qui demande à l'utilisateur de saisir un nombre entier, puis qui affiche la factorielle de ce nombre en appelant factorielle
.
Exercice 4
Écrire une fonction trouver_le_nombre
, qui prend un entier nombre
entre 1
et 100
en entrée, et qui :
- demande à l'utilisateur de saisir un nombre entre 1 et 100,
- si le nombre saisi correspond au nombre généré :
- on affiche
"Gagné !"
et on renvoieTrue
(et donc la fonction s'arrête),
- on affiche
- sinon :
- si le nombre à trouver
nombre
est plus petit que le nombre saisi :- on affiche
"Perdu, c'est moins..."
et on renvoieFalse
.
- on affiche
- sinon :
- on affiche
"Perdu, c'est plus..."
et on renvoieFalse
.
- on affiche
- si le nombre à trouver
On souhaite ensuite écrire un programme réutilisant trouver_le_nombre
qui :
- génère un nombre aléatoire à l'aide de
randint
, - initialise une variable
trouve
àFalse
, - effectue une boucle de 5 itérations, dans laquelle :
- si
trouve
est égal àFalse
, on appelletrouver_le_nombre
pour demander à l'utilisateur de saisir un nombre, et :- si la valeur renvoyée par
trouver_le_nombre
vautTrue
, on affecteTrue
àtrouve
. - sinon, on ne fait rien.
- si la valeur renvoyée par
- si
Voici le squelette de ce programme, vous pouvez le copier/coller et remplacer les pointillés par le code approprié :