Aller au contenu

Exercices – Variables et opérations

Qu’affiche le programme suivant lorsqu’on l’exécute ?

nombre_1 = 5
nombre_2 = nombre_1 + nombre_1
nombre_3 = nombre_2 * nombre_1
print(nombre_1, nombre_2, nombre_3)
🔑 Voir la solution

Affichage : 5 10 50

Explication :

  • nombre_1 = 5nombre_1 vaut 5
  • nombre_2 = nombre_1 + nombre_15 + 5 = 10
  • nombre_3 = nombre_2 * nombre_110 * 5 = 50
  • print(nombre_1, nombre_2, nombre_3) affiche les trois valeurs séparées par un espace.

Qu’affiche le programme suivant ?

a = 1
b = 2
a = b
b = a
print(a, b)
🔑 Voir la solution

Affichage : 2 2

Explication :

  • a = 1a vaut 1
  • b = 2b vaut 2
  • a = ba prend la valeur de b, donc a vaut maintenant 2
  • b = ab prend la valeur de a, qui est 2. La valeur 1 est perdue !

Qu’affiche chacune des instructions suivantes ?

a) print(1/2 + 1/4)
b) print(1 + 2 * 1 + 4)
c) print(64 ** 1 / 2)
🔑 Voir la solution

a) 0.75

1/2 donne 0.5 et 1/4 donne 0.25. Donc 0.5 + 0.25 = 0.75.

b) 7

Attention à la priorité ! La multiplication se fait avant l’addition : 1 + (2 * 1) + 4 = 1 + 2 + 4 = 7

c) 32.0


Considérez l’instruction suivante :

print(1 + 2 * 3 + 4 * 5)

Sans parenthèses, le résultat est 1 + 6 + 20 = 27.

En ajoutant uniquement des parenthèses, montrez comment obtenir chacun des affichages suivants :

Résultat attendu
a)29
b)47
c)51
d)55
e)71
f)105
🔑 Voir la solution

a) 29(1 + 2) * 3 + 4 * 5

  • 3 * 3 + 4 * 5 = 9 + 20 = 29

b) 471 + 2 * (3 + 4) * 5

  • Attention, il y a aussi : 1 + 2 * 3 + (4 * 5) ne donne que 27. Essayons :
  • 1 + 2 * (3 + 4) * 5 = 1 + 2 * 7 * 5 = 1 + 70 = 71
  • (1 + 2) * (3 + 4) * 5 = 3 * 7 * 5 = 105
  • 1 + (2 * 3 + 4) * 5 = 1 + (6 + 4) * 5 = 1 + 10 * 5 = 1 + 50 = 51
  • Essayons : (1 + 2 * 3 + 4) * 5 = (1 + 6 + 4) * 5 = 11 * 5 = 55
  • 1 + 2 * (3 + 4 * 5) = 1 + 2 * (3 + 20) = 1 + 2 * 23 = 1 + 46 = 47

b) 471 + 2 * (3 + 4 * 5)

c) 511 + (2 * 3 + 4) * 5

  • 1 + (6 + 4) * 5 = 1 + 10 * 5 = 1 + 50 = 51

d) 55(1 + 2 * 3 + 4) * 5

  • (1 + 6 + 4) * 5 = 11 * 5 = 55

e) 711 + 2 * (3 + 4) * 5

  • 1 + 2 * 7 * 5 = 1 + 70 = 71

f) 105(1 + 2) * (3 + 4) * 5

  • 3 * 7 * 5 = 105

Chacune des lignes du programme suivant contient une erreur. Corrigez-les :

x = 3a/b
print x
🔑 Voir la solution

Ligne 1 : x = 3a/b

  • 3a n’est pas valide en Python. Il faut écrire explicitement la multiplication : 3 * a / b.
  • De plus, a et b doivent être définis avant d’être utilisés.

Ligne 2 : print x

  • En Python 3, print est une fonction et nécessite des parenthèses : print(x).

Code corrigé :

a = 6
b = 2
x = 3 * a / b
print(x)

Qu’affiche chacune des instructions suivantes ?

a) print(17 // 5)
b) print(17 % 5)
c) print(17 // 5, 17 % 5)
d) print(2 ** 3 ** 2)
🔑 Voir la solution

a) 3 — La division entière (//) donne le quotient sans la partie décimale.

b) 2 — Le modulo (%) donne le reste de la division. 17 = 5 × 3 + 2.

c) 3 2 — Les deux résultats combinés : quotient et reste.

d) 512


Qu’affiche le programme suivant ? Complétez le tableau de traçage.

x = 2
x = x + 3
x = x * x
x = x - 10
print(x)
🔑 Voir la solution

Affichage : 15

InstructionValeur de x
x = 22
x = x + 35
x = x * x25
x = x - 1015

Qu’affiche le programme suivant ?

n = 10
n += 5
n *= 2
n //= 3
n %= 4
print(n)
🔑 Voir la solution

Affichage : 2

InstructionÉquivalentValeur de n
n = 1010
n += 5n = n + 515
n *= 2n = n * 230
n //= 3n = n // 310
n %= 4n = n % 42

Qu’affiche le programme suivant ?

a = 1
b = 2
c = 3
temp = a
a = b
b = c
c = temp
print(a, b, c)
🔑 Voir la solution

Affichage : 2 3 1

Les valeurs effectuent une rotation : chaque variable prend la valeur de la suivante.

Instructionabctemp
Initialisation123
temp = a1231
a = b2231
b = c2331
c = temp2311

Qu’affiche chacune des instructions suivantes ?

a) print(type(3))
b) print(type(3.0))
c) print(type("3"))
d) print(3 + 3.0)
e) print("3" + "3")
f) print("3" * 3)
g) print(int("4") + 1)
🔑 Voir la solution

a) <class 'int'> — 3 est un entier.

b) <class 'float'> — 3.0 est un nombre à virgule flottante.

c) <class 'str'> — “3” entre guillemets est une chaîne de caractères.

d) 6.0 — Python convertit automatiquement 3 (int) en 3.0 (float) avant l’addition.

e) 33 — L’opérateur + entre deux chaînes fait la concaténation (pas l’addition).

f) 333 — L’opérateur * répète la chaîne 3 fois.

g) 5int("4") convertit la chaîne "4" en entier 4, puis 4 + 1 = 5.


Le programme suivant calcule l’aire et le périmètre d’un cercle. Qu’affiche-t-il ?

rayon = 5
pi = 3.14159
aire = pi * rayon ** 2
perimetre = 2 * pi * rayon
print("Aire :", aire)
print("Périmètre :", perimetre)
🔑 Voir la solution

Affichage :

Aire : 78.53975
Périmètre : 31.4159

Explication :

  • rayon ** 2 est calculé en premier (priorité de **), donc 5 ** 2 = 25.
  • aire = 3.14159 * 25 = 78.53975
  • perimetre = 2 * 3.14159 * 5 = 31.4159

Le programme suivant contient une erreur par ligne. Identifiez et corrigez chaque erreur.

Print("Bonjour')
x = = 5
y = x +* 2
print(x, y
🔑 Voir la solution
LigneErreurCorrection
Print("Bonjour')Print avec majuscule + guillemets non appariés (" et ')print("Bonjour")
x = = 5Espace entre les = crée un opérateur de comparaison ==x = 5
y = x +* 2+* n’est pas un opérateur validey = x + 2 ou y = x * 2
print(x, yParenthèse fermante manquanteprint(x, y)

Code corrigé :

print("Bonjour")
x = 5
y = x + 2
print(x, y)

L’énergie cinétique est donnée par la formule Ec=12mv2E_c = \frac{1}{2}mv^2.

Qu’affiche le programme suivant ?

masse = 4.0
vitesse = 3.0
energie = 1/2 * masse * vitesse ** 2
print("Énergie cinétique :", energie, "J")
🔑 Voir la solution

Affichage : Énergie cinétique : 18.0 J

Explication :

  1. vitesse ** 2 = 3.0 ** 2 = 9.0 (priorité de **)
  2. 1/2 = 0.5 (division flottante)
  3. 0.5 * 4.0 = 2.0
  4. 2.0 * 9.0 = 18.0

Analysez le programme suivant et déterminez ce qu’il affiche :

celsius = 100
fahrenheit = celsius * 9 / 5 + 32
kelvin = celsius + 273.15
print(fahrenheit)
print(kelvin)

Ensuite, réécrivez la formule de fahrenheit en utilisant des parenthèses pour vous assurer que le calcul est correct même si la priorité des opérations changeait.

🔑 Voir la solution

Affichage :

212.0
373.15

Explication : La priorité des opérations fait que celsius * 9 / 5 est calculé avant + 32, ce qui donne le bon résultat. Cependant, pour plus de clarté :

fahrenheit = (celsius * 9 / 5) + 32
# ou encore plus explicite :
fahrenheit = celsius * (9 / 5) + 32

Sans exécuter le programme, déterminez la valeur finale de x :

x = 1
y = 2
x = x + y
y = x + y
x = x + y
print(x)
🔑 Voir la solution

Affichage : 8

Instructionxy
x = 11
y = 212
x = x + y32
y = x + y35
x = x + y85