TD⚓︎
Exercice 1
def foo(mot):
return len(mot) * '*'
- Que renvoie (retourne) l'appel
foo("mot de passe")
? - Modifier la fonction pour que la fonction retourne deux étoiles en plus.
- Renvoie
'************'
-
def foo(mot): return len(mot) * '*' + '**'
Exercice 2
def foo(a, b):
return a + b
- Que renvoie (retourne) l'appel
foo(8, 9)
? - Modifier la fonction pour que la fonction retourne le produit des paramètres.
- Renvoie
17
-
def foo(a, b): return a * b
Exercice 3
def foo(a, b):
q = a // b
r = a % b
return str(a) + " = " + str(q) + " * " + str(b) + " + " + str(r)
- Que renvoie (retourne) l'appel
foo(15, 4)
? - Modifier la fonction pour que l'appel
foo(15, 4)
retourne"15 / 4 = 3.75"
.
- Renvoie
'15 = 3 * 4 + 3'
-
def foo(a, b): q = a / b return str(a) + " / " + str(b) + " = " + str(q)
Exercice 4
-
Que fait la fonction suivante ?
def foo(): print("***") print("***") print("***")
-
Que fait la fonction suivante ?
def foo(): res = "***\n" res += "***\n" res += "***\n" return res
-
Elle affiche
*** *** ***
-
Elle retourne la chaine `'***
'`. Cette chaine, si on l'affiche s'affichera comme la fonction précédente.
Exercice 5
-
Écrire une fonction
triangle()
retournant une chaine de caractères s'affichant:* ** *** ****
-
Écrire une fonction
rectangle(lg)
retournant une chaine de caractères composée de trois lignes delg
étoiles.Exemple:
>>> print(rectangle(10)) ********** ********** **********
1. ```python def triangle(): return "*
**
****" ```
2.
```python
def rectangle(lg):
return (lg * '*' + '
') * 3 ```
Exercice 6
def foo(prenom):
prenom = input("quel est votre prénom ?")
print("Bonjour", prenom)
- Qu'affiche l'appel
foo("Rosa")
? -
Kevin pense que pour que l'appel
foo("Rosa")
afficheBonjour Rosa
il faut modifier la fonction comme suit:def foo(prenom): prenom = "Rosa" print("Bonjour", prenom)
Qu'en pensez-vous ?
- Affichera
Bonjour
suivi du prenom indiqué par l'utilisateur. C'est absurde puisque l'on s'attendrait à ce que cela afficheBonjour Rosa
- La solution de Kevin permet d'afficher
Bonjour Rosa
mais l'appelfoo("Reda")
affichera encoreBonjour Rosa
. C'est tout aussi absurde.
IL NE FAUT DONC JAMAIS "ECRASER" LES PARAMÈTRES DE LA FONCTION.
Exercice 7
Ecrire des docstrings pour les fonctions que vous avez écrites aux exercices 1 à 4.
Exercice 8
Ecrire des doctests pour les fonctions que vous avez écrites aux exercices 1 à 4.