Exo Fonction

Identification

Infoforall

5 - 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 attend un paramètre et qui renvoie 10 fois cette valeur.

1 2
def fois10(x) : pass

Exemple de fonctionnement attendu dans le Shell 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 le Shell. 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ère 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 - Portée des variables locales

07° Regarder le programme suivante. La variable toto est-elle la même dans le programme principal et dans la variable ou les deux variables font-elles références à des zones mémoires différentes ?

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

08° Comment pourait-on nommer dans sa tête la variable toto présente sur les lignes 1, 7, 8 et 9 ?

Comment pourait-on nommer dans sa tête la variable toto présente sur les lignes 3, 4 et 5 ?

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(x) : x = x + 10 return x x = 50 y = rajouter10(x)

10° La ligne 2 est-elle vraiment utile en réalité ? Proposer une version de cette fonction qui renvoie directement la valeur attendue sans passer par une variable intermédiaire inutile.

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