Exercices de programmation en Python
Fonctions
Les exercices suivants portent, entre autre, sur les fonctions en python.
Si ce n'est déjà fait et connu, voir les éléments de cours/exemples à ce sujet.
Exercice 1:
- Qu'affiche le programme suivant ?
def Stars(n): print(n*"*") Stars(3) Stars(10)
- En utilisant cette fonction dans une boucle, produire l'affichage suivant:
* ** *** **** ***** ******
Exercice 2:
- Que fait et affiche le programme suivant ?
Combien la fonction nommée MaFonction a-t'elle d'arguments en entrée ? en sortie ?def MaFonction(a,b): y=a+b return y a=2;b=5 c=MaFonction(a,b) print("c = ", c) z=Mafonction(3,2+5) print("z = ", z)
- Écrire une fonction, nommée MyNewFct, avec trois arguments qui retourne la moyenne des trois valeurs.
- Écrire une fonction, nommée Mention, qui a un argument en entrée: une note entre 0 et 20, et en sortie renvoie la mention correspondante: P, AB, B, TB.
Compléter cette fonction pour qu'elle affiche un message d'erreur si la note entrée est négative ou supérieure à 20. - Écrire une troisième fonction, nommée Apprecie, avec trois arguments en entrée et qui renvoie la mention correspondante à la moyenne des trois valeurs entrées.
Cette fontion sera écrite en appelant les deux fonctions précédentes: MyNewFct et Mention.
Exercice 3:
- Qu'affiche le programme suivant ?
def f(x): return 100*x-4*x**2+2 print(f(2))
- Écrire un programme qui affiche les valeurs f(x) pour tous les nombres entiers x entre 0 et 20 (utiliser une boucle for ...).
- Modifier le programme précédent pour qu'il trouve et affiche le maximum de la fonction f, et la valeur de x correspondante.
Exercice 4:
- Qu'affiche le programme suivant ?
La fonction définie et utilisée ici s'appelle une fonctions récursive: c'est une fonction qui s'appelle elle-même…def u(n): if n==0: return 2 else: return 3*u(n-1)-2 print(u(0)) print(u(1)) print(u(2)) n=10 print(u(n))
- Modifier le programme précédent pour qu'il calcule les termes de la suite
définie par l'expression
.Afficher en particulier les termes et .
- Une autre manière de programmer les calculs des termes d'une telle suite est:
qui calcule ici , le terme de rang 10.u=2 n=10 for i in range(n): u=(2*u**2-1)/(u**2+2) print(u)
Utiliser ce programme pour afficher en particulier les termes , et .
Qu'observe-t-on pour des valeurs de plus en plus grandes de n ?
Exercice 5:
- Un village comptait 4000 habitants en 2000.
Chaque année depuis, cette population a augmenté de 3% d'une année à la suivante.
Écrire un programme qui calcule le nombre d'habitants dans ce village en 2001, puis 2002, puis 2010, pusi cette année. - Modifier le programme précédent pour qu'il détermine en quelle année la population du village aura triplé.