Exercices
Introduction aux variables
Dans chacun des cas ci-dessous, déterminer le contenu des variables a et b à la fin de l'exécution du programme.
-
🐍 Code Python 1 2 3
a = 1 b = a + 3 a = 3 -
🐍 Code Python 1 2 3
a = 7 a = 8 a = a + 2 -
🐍 Code Python 1 2 3 4
a = 5 b = a + 4 a = a + 1 b = a - 4 -
🐍 Code Python 1 2 3 4
a = 4 b = 6 a = b b = a -
🐍 Code Python 1 2 3 4 5
a = 4 b = 6 temp = b b = a a = b -
🐍 Code Python 1 2 3 4 5
a = 4 b = 6 a = a + b b = a - b a = a - b
Branchement conditionnel
-
Déterminer le contenu des variables
aetbà l'issue de l'exécution du programme ci-dessous.🐍 Code Python 1 2 3 4 5 6
a = 3 b = 6 if a > 5 or b != 3: b = 4 else: b = 2 -
On considère les trois fonctions ci-dessous, dont on a omis la spécification complète.
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 6 7 8 | |
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 6 7 8 | |
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 | |
Déterminer le résultat de l'évaluation de :
f1(0)f1(25)f1(110)f2(0)f2(25)f2(110)f3(-5)f3(10)f3(0)
Un petit piège
Quelle est la valeur affichée par la console après la séquence d'instructions suivantes :
>>> largeur, longueur = 5, 7
>>> aire = largeur * longueur
>>> largeur, longueur = 10, 21
>>> aire
Écriture de fonctions simples
-
Écrire le corps de la fonction
valeur_absoluedont on donne la spécification et les tests ci-dessous. Écrire 2 tests supplémentaires pour la fonctionvaleur_absolue🐍 Code Python 1 2 3 4 5 6 7 8 9
def valeur_absolue(x): """ float -> float Retourne la valeur absolue de x, c'est à dire x si x est négatif, -x sinon """ # ... à compléter assert valeur_absolue(3) == 3 assert valeur_absolue(-3) == 3 assert valeur_absolue(0) == 0 # ... à compléter -
-
Écrire une fonction
max2qui prend en argument deux entiersaetbet qui renvoie le plus grand des deux. -
Écrire une fonction
max3qui prend en argument trois entiersa,b, etcet qui renvoie le plus grand des trois. -
En utilisant un appel à la fonction
max3, écrire une fonctionmax4qui prend en argument quatre entiersa,b,cetdet qui renvoie le plus grand des quatre.
-
Bilan sur les fonctions
C'est bientôt les soldes, et un commerçant camerounais décide d'écrire un code python afin de l'aider à calculer le prix de ses produits. Il possède une toute petite boutique, qui contient :
| Objet | Tasses | Assiettes | Vases |
|---|---|---|---|
| Nombre | 20 | 15 | 5 |
| Prix à l'unité en euros | 10 | 30 | 70 |
-
Initialement, il se dit qu'il va faire très simple : tous les objets sont à moins $30\%$.
-
Écrire une fonction python
tout_en_soldequi prend en argument un prixpen euros et qui renvoie le nouveau prix, calculé en appliquant une réduction de $30\%$. -
Écrire les instructions python qui affectent aux variables
prix_tasses,prix_assiettesetprix_vasesleur nouveau prix.Quelle(s) instruction(s) doit-on écrire pour faire afficher ces prix ?
-
-
Après mûre réflexion, le commerçant se dit qu'il faut être un peu plus agressif dans ses réductions : certains items sont encore trop chers et il faut leur appliquer une remise plus importante. Il utilise pour cela la méthode suivante :
-
si le prix
pde l'objet est supérieur ou égal à $50$€, alors on applique une réduction de $60\%$. -
sinon on applique une réduction de $30\%$ comme avant.
-
Écrire une fonction python
grosses_soldesqui prend en argument un prixpet qui renvoie le nouveau prix, calculé en appliquant la nouvelle méthode. -
Écrire un jeu de test qui vérifie que les nouveaux prix des tasses, assiettes, et vases sont correctement calculés par la fonction
grosses_soldes.
-
-
En étudiant les horaires d'affluence de son magasin, il se rend compte du phénomène suivant : lors de la période janvier-juin (inclus), il y a vraiment beaucoup de clients dans son magasin. Par contre, dans la période juillet-décembre, il n'y a pas grand monde. Il pense à la troisième méthode :
- si le numéro du mois en cours est compris entre 1 et 6 (inclus), alors il ne fait aucune réduction ! Il y a bien assez de clients, il y aura bien quelqu'un qui achètera ses objets.
-
si le numéro du mois en cours est compris entre 7 et 12 (inclus), alors il applique la méthode des
grosses_soldespour calculer le nouveu prix. -
Calculer :
-
le prix d'une tasse en mai ;
-
le prix d'une assiette en octobre ;
-
le prix d'un vase en novembre ;
-
le prix d'un vase en janvier.
-
-
Écrire une fonction
soldes_malinesqui prend en argument un prixpet un entiernumero_moiset qui renvoie le nouveau prix de l'objet au moisnumero_mois. Vous pourrez faire appel aux fonctions précédentes. -
En avril 2026, lors d'une sortie à Yaoundé, M. Picard tombe sous le charme désuets des céramiques que vend le commerçant. Il achète l'intégralité de son stock ! Écrire un code python qui permet de calculer puis d'afficher la somme gagnée par le commerçant en vendant tous ses objets en avril.
Boucle for et trace d'exécution
Déterminer la valeur de la variable d après exécution du programme dans chacun des cas ci-dessous.
-
🐍 Code Python 1 2 3 4 5 6
a, b, c, d = 1, 2, 3, 4 for k in range(2): a = a + b b = b + a c = c + b d = d + c -
🐍 Code Python 1 2 3 4 5 6
a, b, c, d = 1, 2, 3, 4 for k in range(2): a = a + b b = b + a c = c + b d = d + c -
🐍 Code Python 1 2 3 4 5 6
a, b, c, d = 1, 2, 3, 4 for k in range(2): a = a + b b = b + a c = c + b d = d + c -
🐍 Code Python 1 2 3 4 5 6
a, b, c, d = 1, 2, 3, 4 for k in range(2): a = a + b b = b + a c = c + b d = d + c
Trace d'exécution : introduction
Le tableau ci-contre permet de dresser la trace d'exécution d'un programme contenant une boucle for. À la fin de chaque exécution du bloc répété, on note l'état des variables dans la ligne correspondante.

-
🐍 Code Python 1 2 3 4
u = 15 for i in range(3): u = 2*u + 1 print(u) -
🐍 Code Python 1 2 3 4
s = 0 for i in range(5): s = s + i print(s) -
🐍 Code Python 1 2 3 4
p = 1 for i in range(4): p = p * i print(p) -
🐍 Code Python 1 2 3 4
s = 3 for i in range(2, 9): s = s + i print(s) -
🐍 Code Python 1 2 3 4
chaine = "" for c in "tr", "uc", "de", "bg": chaine = chaine + c print(chaine) -
🐍 Code Python 1 2
for k in range(4): print(k**2) -
🐍 Code Python 1 2 3
for i in range(9): if i % 3 == 0: print(i)
Pour chacun des codes ci-dessus.
- Dresser la traces d'exécution du programme.
- Déterminer l'affichage réalisé par le programme.
Écriture de fonction
-
Écrire le corps de la fonction ci-dessous.
🐍 Code Python 1 2 3 4 5 6 7 8 9 10
def somme_carres(n): """int -> int precondition: n >= 1 retourne la somme des n premiers carrés.""" ... assert somme_carres(3) == 1 + 2 ** 2 + 3 ** 2 assert somme_carres(4) == 1 + 4 + 9 + 16 assert somme_carres(1) == 1 assert somme_carres(10) == 385 -
On souhaite écrire une fonction python
somme_pairsqui prend en argument un entiernet qui renvoie la somme de tous les entiers pairs compris entre $0$ et $n$ strictement.-
Écrire un jeu de test que doit satisfaire cette fonction. Vous écrirez au moins 5 tests différents.
-
Écrire le code de la fonction
somme_pairs. Attention à la rédaction de la spécification de la fonction.
-
Fonctions mystères
-
Soit la fonction
mysteredont on donne le code ci-dessous.🐍 Code Python 1 2 3 4 5 6
def mystere(a, b): m = O while b > 0: m = m + a b = b - 1 return m-
Déterminer la valeur renvoyée par
mystere(5, 4). Justifier votre réponse à l'aide d'une trace d'éxecution. -
Écrire la spécification complète de la fonction
mystere. -
Écrire un jeu de 5 tests pour la fonction
mystere.
-
-
Soit la fonction
mystere2dont on donne le code ci-dessous.🐍 Code Python 1 2 3 4 5 6
def mystere2(a): k, i = 1, 0 while k < a + 1: k = k * 10 i = i + 1 return i-
Déterminer la valeur renvoyée par
mystere2(1024). Justifier votre réponse à l'aide d'une trace d'exécution. -
Déterminer la valeur renvoyée par
mystere2(42), etmystere2(100). -
Écrire la spécification complète de la fonction
mystere2. -
Écrire un jeu de 5 tests pour la fonction
mystere2.
-
-
Soit la fonction
mystere3dont on donne le code ci-dessous.🐍 Code Python 1 2 3 4 5 6 7 8
def mystere3(a, b): m = 0 while b > 0: if b % 2 == 1: m = m + a a = 2 * a b = b // 2 return m-
Déterminer la valeur renvoyée par
mystere3(3, 5). Justifier votre réponse à l'aide d'une trace d'exécution. -
Écrire la spécification complète de la fonction
mystere3. -
Écrire un jeu de 5 tests pour la fonction
mystere3.
-
-
Soit la fonction
mystere4dont on donne le code ci-dessous.🐍 Code Python 1 2 3 4 5 6 7 8 9 10
def mystere4(a, n): b = 1 while n != 0: if n % 2 == 1: b = b * a n = n - 1 else: a = a * a n = n // 2 return b-
Déterminer la valeur renvoyée par
mystere4(2, 5). Justifier votre réponse à l'aide d'une trace d'exécution. -
Écrire la spécification complète de la fonction
mystere4. -
Écrire un jeu de 5 tests pour la fonction
mystere4.
-
Boucles for imbriquées, ordre d'exécution
-
Déterminer ce qu'affiche le programme ci-dessous.
🐍 Code Python 1 2 3
for i in range (3): for j in range (2): print(i, j) -
Déterminer ce qu'affiche le programme ci-dessous.
🐍 Code Python 1 2 3
for j in range (2): for i in range (3): print(i, j) -
Déterminer ce qu'affiche le programme ci-dessous.
🐍 Code Python 1 2 3 4 5
for i in range (1000) : for j in range (1000) : for k in range (1000) : for m in range (1000) : print ("Mille sabords !") -
Déterminer ce qu'affiche le programme ci-dessous.
🐍 Code Python 1 2 3
for i in range (2, 15): for j in range (4, 9): print("*")
Spécification et tests
On considère le code python ci-dessous.
| 🐍 Code Python | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
-
Compléter les tests ci-dessous pour qu'ils soient validés.
🐍 Code Python 1 2 3 4
assert myst_1 (3, 7) == ... assert myst_2 (3, 7) == ... assert myst_1 (6, 4) == ... assert myst_2 (6, 4) == ... -
Proposer des noms plus adaptés pour les fonctions
myst_1etmyst_2. -
Écrire la spécification de ces fonctions.