Programmation - Python S1 BUT STID 2022-2023 IUT Site de Roubaix - Université de Lille
TP 4 Les fonctions
Rappel de l’espace personnel :
Dans votre espace personnel, créez un dossier « Python ». Dans ce dossier créez :
- Un sous-dossier « TPs » : contiendra les différentes fiches de TP.
- Un sous-dossier « code » : contiendra les programmes Python réalisés en TP.
Pour chaque TP créer un dossier dans « code ».
Pour ce TP, créer un dossier « TP4 » dans « code ».
Exercice 1
1. Ecrire une fonction double(?) qui calcule le double d’une valeur passée en paramètre
2. Compléter le programme en saisissant une valeur x et en afficher son double.
3. Commenter le code :
La signature d’une fonction est sa première ligne.
La documentation ou la spécification d’une fonction est donnée après sa signature dans la docstring. C’est une
chaine de caractères qui fournit les éléments suivants :
− Un texte expliquant le rôle de la fonction.
− Pour charque paramètre, la chaine :
:param nom_du_paramètre : (un ou plusieurs types entre parenthèses) et d'une brève description.
− Le retour de la fonction sous forme :
:return:, suivi des types possibles de la sortie et d'une brève description.
La docstring doit également fournir les conditions d'utilisation CU et les doctest qu’on n’écrira pas dans ce TP.
a. Compléter la docstring de la fonction double :
"""
Renvoie le double d’un nombre x*2
:param x: (int or float) nombre
:return: (int or float) le double du nombre x
"""
b. Compléter le programme en ajoutant l’instruction help(double).
Tester l’instruction dans l’interpréteur.
4. Est-il possible d’appeler double sur d’autres types ? Tester et compléter la docstring.
Remarque :
- Chaque fonction écrite doit IMPERATIVEMENT avoir une documentation complète.
- Commencer toujours par écrire la docstring avant le code. Cela permet de réfléchir sur les paramètres,
et le résultat attendu de la fonction.
Exercice 2
Dans un programme [Link],
1. Ecrire une fonction factoriel(?) qui calcule et affiche le factoriel d’un nombre n.
2. Tester la fonction.
Exercice 3
Dans un programme [Link],
3. Ecrire une fonction moyenne(?) qui prend en paramètres, deux nombres et retourne la moyenne.
4. Ecrire un programme principal qui :
a. saisit la note du contrôle continu et la note du partiel (examen final)
b. calcule et affiche la moyenne.
5. On veut prendre en compte des coefficients dans le calcul de la moyenne
a. Ecrire une fonction moyenne_coef(?) qui retourne la moyenne calculée avec des coefficients.
b. Tester la fonction et donner les jeux d’essai de la fonction.
6. On veut écrire une fonction ajouter(?) qui permet d’ajouter une valeur réelle « val », positive ou négative, à un
nombre passé en paramètre.
1
a. Lister les paramètres de la fonction et leurs types
b. La fonction retourne-elle un résultat ? si oui que représente-il ? et quel est son type ?
c. Ecrire la fonction ajouter
d. Tester la fonction sur la note du contrôle continu. Lister les différents cas de tests.
Exercice 4
Dans un programme [Link], copier la fonction moyenne du programme [Link] et compléter avec :
1. Ajouter une fonction module_valide(?) qui prend en paramètres deux notes et retourne True si l’étudiant a
validé ou False sinon. Le module est validé si la moyenne est >=10.
2. Ajouter une fonction bulletin(?) qui prend en paramètre un prénom et deux notes. Et affiche le résultat
comme donné ci-dessous :
Etudiant : Alex
Note 1 = 14 Note 2 =16
Moyenne =15
Module validé
Compléter le programme pour afficher le résultat de l’étudiant.
3. Modifier la fonction module_valide(?) pour faire en sorte que l’on puisse valider à n’importe quel seuil fixé
par l’utilisateur. Tester pour permettre de valider le module à 9.5 par exemple.
Exercice 5
On veut simuler un jeu qui consiste à lancer un dé un certain nombre de fois (variable globale N=5) de suite et
comptabiliser les valeurs obtenues. Le jeu donne un score qui est la somme des valeurs cumulées.
Dans un programme [Link],
1. Ecrire une fonction lancer(?) qui retourne le résultat d’un lancer de dé à 6 face.
2. Ecrire une fonction jouer(?) qui prend en paramètre un nom et retourne une chaine avec le nom suivi du score.
Exemple : « Thomas : 16»
3. Tester le programme en faisant jouer deux personnes et en affichant le nom du vainqueur
4. Faire en sorte que la fonction jouer puisse s’exécuter avec des valeurs de N différentes. Tester !