Aller au contenu

01a Exos Rentrée Correction

Exercice 1⚓︎

On exécute la séquence suivante :

🐍 Script Python
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 :

🐍 Script Python
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.

🐍 Script Python
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⚓︎

  1. Qu’appelle t-on factorielle d’un entier naturel n? Que vaut factorielle de 0 (notée 0!) ? Voir : http://fr.wikipedia.org/wiki/Factorielle

  2. Voici un script permettant de calculer 5! :

    🐍 Script Python
     f = 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!.

🐍 Script Python
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.

📋 Texte
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⚓︎

🐍 Script Python
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⚓︎

🐍 Script Python
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⚓︎

🐍 Script Python
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⚓︎

🐍 Script Python
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⚓︎

🐍 Script Python
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⚓︎

🐍 Script Python
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