01a Exos Rentrée Correction
Exercice 1⚓︎
On exécute la séquence suivante :
x = 5
y = x + 1
x = 10
print(y)
Produit-elle l’affichage de la valeur 6 ou de la valeur 11 ? Justifier en indiquant la trace de l’état d’exécution de ce programme.
Correction :
x = 5 # x = 5 et y est vide
y = x + 1 # x = 5 et y = 6
x = 10 # x = 10 et y = 6
print(y) # Affichage de la valeur de la variable y
Ce programme affichera donc 6
Exercice 2⚓︎
Les suites de symboles suivants sont-elles des instructions ou des expressions ? Justifier la réponse.
x # Expression
x = y # Instruction : affectation de la valeur y à la variable x
x = y + 3 # Instruction : affectation de la valeur y + 3 à la variable x
x + 3 # Expression
print(x + 3) # Instruction : affichage de la valeur de l'expression x + 3
x == a # Expression booléenne qui prend la valeur True ou False selon les cas
x == a and y == b # Expression booléenne qui prend la valeur True ou False selon les cas
Exercice 3⚓︎
-
Qu’appelle t-on
factorielled’un entier natureln? Que vautfactoriellede 0 (notée 0!) ? Voir : http://fr.wikipedia.org/wiki/Factorielle -
Voici un script permettant de calculer 5! :
🐍 Script Pythonf = f * 1 f = f * 2 f = f * 3 f = f * 4 f = f * 5 print(f)Ouvrir IDLE.
Saisir ce script, l’enregistrer sous le nom factorielle.py et l’exécuter.
Quel est le problème ? Comment le régler ? Donner alors la valeur de 5!.
f = 1 # Cette ligne correspond à l'initialisation de la variable f, c'est-à-dire l'affectation d'une première valeur. Ici on choisit f = 1 car, par convention, 0! = 1.
f = f * 1
f = f * 2
f = f * 3
f = f * 4
f = f * 5
print(f)
\(5! = 120\)
Exercice 4⚓︎
Que valent (essayez de deviner) les résultats des opérations suivantes :
3 / 2 ; 3 // 2 ; 3 % 2 ; 3**2 ; 2e3.
3 / 2 = 1.5
3 // 2 = 1
3 % 2 = 1
3**2 = 8
2e3 = 2000.0
Pour vérifier :
- ouvrir IDLE
- faites évaluer ces opérations dans l’interpéteur (le SHELL, la console d'IDLE).
Exercice 5⚓︎
Quel est le résultat de chacun des deux scripts suivants. Expliquer.
Script 1⚓︎
x, y, z = 4, 0, 0
if x == 4:
y = 1
else:
y = 2
z = 3
print(x, y, z)
Ce script affiche « 4 1 0 » car il ne rentre pas dans les instructions du else. Donc \(z\) conserve sa valeur initiale 0.
Script 2⚓︎
x, y, z = 4, 0, 0
if x == 4:
y = 1
else:
y = 2
z = 3
print(x, y, z)
Ce script affiche « 4 1 3 ». Il ne rentre toujours pas dans le else. Mais l’instruction z = 3 est en dehors du else, elle est donc exécutée. Par conséquent \(z\) prend la valeur \(3\).
Exercice 6⚓︎
Combien de points sont affichés à l’exécution des deux programmes ci-dessous ? Expliquer.
Programme 1⚓︎
for i in range(0, 10):
print(".", end="")
for j in range(0, 10):
print(".", end="")
print()
Ce script permet d’afficher \(20\) points : \(10\) pour la première boucle for puis \(10\) pour la deuxième boucle for.
Programme 2⚓︎
for i in range(0, 10):
for j in range(0, 10):
print(".", end="")
print()
Ce script permet d’afficher \(10^2\) (ou \(10 \times 10 = 100\)) points. Pour chaque valeur de \(i\) prise entre \(0\) et \(9\) (soit \(10\) valeurs), la variable \(j\) permet d’afficher \(10\) points.
Exercice 7⚓︎
Écrire au brouillon ce qui va s'afficher sont affichés à l’exécution des deux programmes ci-dessous ? Expliquer.
Programme 3⚓︎
for i in range(0, 10):
print(i, end="")
print()
for j in range(0, 10):
print(j, end="")
print()
Ce script permet d’afficher 0123456789, puis 0123456789.
Programme 4⚓︎
for i in range(0, 10):
print(i, end="")
for j in range(0, 10):
print(j, end="")
print()
print()
Ce script permet d'aficher : 00123456789 10123456789 20123456789 30123456789 40123456789 50123456789 60123456789 70123456789 80123456789 90123456789
Pour revoir la fiche sur Capytale :
Fiche d'exercices Python 01a sur Capytale