Exo Fonction

Identification

Infoforall

10 - Exercices Fonction


Vous pouvez le rendre en markdown sur le site ou en version papier.

Attention, le soin est noté et les codes markdown identiques seront sanctionnés à moins de noter clairement que vous avez travaillé avec un autre élève de la classe.

1 - Fonctions basiques

01° Compléter la fonction fois10() qui possède un paramètre x et qui renvoie 10 fois cette valeur.

1 2
def fois10(x): pass

Exemple de fonctionnement attendu dans la console une fois la fonction en mémoire :

>>> fois10(5) 50

02° Lors de l'appel suivant, que va contenir le paramètre x durant l'exécution de la fonction ?

>>> fois10(7)

03° On vous donne la déclaration d'une fonction addition() ainsi qu'un appel à cette fonction depuis la console. Lors de l'appel suivant, que vont contenir les paramètres x et y durant l'exécution de la fonction ?

1
def addition(x, y):
>>> addition(4, 10)

04° Créer une fonction dizaine() qui attend un paramètre nommé nombre. La fonction doit renvoyer la dizaine présente dans le nombre.

Exemple de fonctionnement attendu :

>>> dizaine(123) 2

2 - Documentation

05° Rajouter la documentation sur les paramètres et le retour de la fonction addition() en suivant le type de documentation présentée dans votre cours ou votre activité.

Nous voudrions que la fonction ne gère que les entiers positifs.

1 2
def addition(x, y): return x + y

06° Localiser et modifier l'erreur présente dans la documentation de la fonction.

1 2 3 4 5 6 7 8 9
def division(x, y): '''Renvoie la division x / y :: param x(int) :: un entier :: param y(int) :: un entier non nul :: return (int) :: un entier ''' return x / y

Quelques exemples pour vous aiguiller :

>>> division(100,10) 10.0 >>> division(500,2) 250.0

3 - Compréhension des transferts de paramètres

Attention, cet exercice porte notamment sur la différence entre la fonction native print() et le mot-clé return.

07° Lancer le programme suivant. Expliquer clairement pourquoi il affiche 5, 6 puis 5.

1 2 3 4 5 6 7 8 9
toto = 5 def affichage(t): t = t + 1 print(t) print(toto) affichage(toto) print(toto)

08° Que va afficher ce programme ? Justifier votre réponse. Au besoin, il suffit de passer par Python Tutor ou le débogage de Thonny.

1 2 3 4 5 6 7 8 9
toto = 10 def affichage(t): t = t * 2 print(t) print(toto) x = affichage(toto) print(x)

Attention à la subtilité. Souvenez-vous que la fonction native print() affiche mais ne renvoie rien...

Au besoin, utilisez Python Tutor ou le mode débug de Thonny.

09° Donner le contenu des variables x et y à la fin du programme. Justifier votre raisonnement pour l'expliquer clairement à quelqu'un.

1 2 3 4 5 6
def rajouter10(z): z = z + 10 return z x = 50 y = rajouter10(x)

10° La ligne 2 est-elle vraiment utile en réalité ? Proposer une autre version de cette fonction qui renvoie directement la valeur attendue sans passer par une variable intermédiaire inutile. Votre fonction ne doit donc comporter qu'une seule ligne de code.

Activité publiée le 15 09 2020
Dernière modification : 15 09 2020
Auteur : ows. h.