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
nombreest 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
trouveest égal àFalse, on appelletrouver_le_nombrepour demander à l'utilisateur de saisir un nombre, et :- si la valeur renvoyée par
trouver_le_nombrevautTrue, 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é :