Section 1.4 Exercices
Exercice 1.4.1.
Devinez ce qui est affiché par chacun des blocs de codes suivants.
if 5 > 10: print('Gare') elif 8 != 9: print('aux') else: print('conditionnelles!')
if 5 > 10: print('Gare') elif 8 == 9: print('aux') else: print('conditionnelles!')
if 5 > 10: print('Gare') elif 8 == 9: print('aux')
x = 10 y = 20 z = 30 print('Gare') if x == 10: print('aux') if y == 20: print('conditionnelles!') else: print('gorilles!') elif y == 20: print('Danger!') else: print('Vive les') if z == 30: print('fraises!') else: print('bleuets!') print('Bye!')
Si vous ne parvenez pas à suivre pas à pas l'évaluation de ce code à la main, utilisez l'application Python Tutor.
- Cliquez sur Start visualizing your code now.
- Assurez-vous que le langage Python est sélectionné; la version est peu importante.
- Copiez le code et collez-le dans la fenêtre.
- Cliquez sur Visualize Execution.
- Cliquez sur Next autant de fois que nécessaire.
aux
conditionnelles!
- \begin{equation*} \end{equation*}
Gare aux conditionnelles! Bye!
Exercice 1.4.2.
Évaluez le code suivant à la main pour déterminer ce qu'il affiche.
from math import sqrt # importe la fonction racine carrée a = 1.0 b = -6.0 c = 9.0 delta = b ** 2 - 4 * a * c if delta > 0: x1 = (- b - sqrt(delta)) / (2 * a) x2 = (- b + sqrt(delta)) / (2 * a) print(x1, x2) elif delta == 0: x0 = - b / (2 * a) print(x0) else: print('pas de racines')
Même question avec
c = 2.0
à la place dec = 9.0
.
Si vous ne parvenez pas à suivre pas à pas l'évaluation de ce code à la main, utilisez l'application Python Tutor.
3.0
(0.3542486889354093, 5.645751311064591)
Exercice 1.4.3.
Évaluez le code suivant à la main pour déterminer ce qu'il affiche.
capital = 2500 taux = 0.07 n = 3 for k in range(1, n+1): capital = capital * (1 + taux) print(capital)
Cliquez sur Next
autant de fois que nécessaire dans l'application Python Tutor.
3062.6075
Exercice 1.4.4.
Évaluez le code suivant à la main pour déterminer ce qu'il affiche.
a = 0.0 b = 1.0 n = 4 deltaX = (b - a) / n xi = a while xi < b: print(xi) xi = xi + deltaX
Cliquez sur Next
autant de fois que nécessaire dans l'application Python Tutor.
0.0 0.25 0.5 0.75
Exercice 1.4.5.
Calculez la somme des entiers de 1 à 99 inclus
à l'aide d'une boucle
for
;à l'aide d'une boucle
while
.
La réponse est
On peut l'obtenir grâce à l'un ou l'autre des blocs de code qui suivent.
somme = 1 for k in range(2, 99+1): somme = somme + k print(somme)
somme = 1 k = 2 while k <= 99: somme = somme + k k = k + 1 print(somme)
Exercice 1.4.6.
Affichez tous les nombres impairs compris entre 30 et 55 inclus
à l'aide d'une boucle
for
;à l'aide d'une boucle
while
.
Avez-vous une préférence?
Il s'agit de la liste
On peut l'afficher grâce à l'un ou l'autre des blocs de code qui suivent.
for k in range(15, 27+1): print(2 * k + 1)
k = 31 while k < 56: print(k) k = k + 2
Je préfère la boucle while
, car elle évite d'avoir à déterminer les bornes 15
et 27
au préalable.
Exercice 1.4.7.
Complétez le code suivant pour qu'il affiche tous les multiples de 4 compris strictement entre 57 et 89.
k = 60 while print(k) k =
k = 60 while k < 89: print(k) k = k + 4
Exercice 1.4.8.
On considère la suite \(\{x_n\}\) définie par récurrence de la façon suivante :
On admet qu'elle converge vers \(0\) en décroissant.
-
Complétez le code suivant afin qu'il affiche les cinq premières valeurs de la suite.
n = 3 x = 7.0 while n < print(x) x = n = n + 1
Quelles sont ces valeurs?
-
Complétez le code suivant afin qu'il affiche la plus petite valeur de \(n\) pour laquelle on ait \(x_n\leq 10^{-9}\text{.}\)
n = x = 7.0 while x = x * n / (5 * n + 2) n = print(n)
Quelle est cette valeur?
-
Il s'agit des 5 nombres qui suivent.
7.0 1.23529411765 0.224598930481 0.0415923945336 0.00779857397504
On peut les afficher à l'aide du bloc de code suivant.
n = 3 x = 7.0 while n < 8: print(x) x = x * n / (5 * n + 2) n = n + 1
-
Il s'agit de
\begin{equation*} n=17 \end{equation*}et on peut l'afficher à l'aide du bloc de code suivant.
n = 3 x = 7.0 while x > 10 ** (-9): x = x * n / (5 * n + 2) n = n + 1 print(n)
Exercice 1.4.9.
On considère la suite \(\{a_n\}\) définie par récurrence de la façon suivante :
On admet qu'elle converge vers \(0\) en décroissant.
Complétez le code suivant afin qu'il affiche la plus petite valeur de \(n\) pour laquelle on ait \(a_n\leq 0{,}01\text{.}\)
from math import sin # importe la fonction sinus n = 0 a = while n = a = sin(a) print(n)
Quelle est cette valeur?
Il s'agit de
et on peut l'afficher à l'aide du bloc de code suivant.
from math import sin # importe la fonction sinus n = 0 a = 1.0 while a > 0.01: n = n + 1 a = sin(a) print(n)
Exercice 1.4.10.
On s'intéresse à la suite \(\{s_n\}\) définie par récurrence de la façon suivante :
Calculez les \(21\) premiers termes de cette suite à l'aide d'une boucle for
.
En partant de \(14\text{,}\) les 21 premiers termes de cette suite sont
On peut les afficher à l'aide du bloc de code suivant.
s = 14 for n in range(1, 21+1): print(s) if s % 2 == 0: s = s / 2 else: s = 3 * s + 1
Cliquez sur Next
autant de fois que nécessaire dans l'application Python Tutor si vous voulez suivre pas à pas l'évaluation du code qui précède.
Exercice 1.4.11.
L'assignation simultanée est très pratique pour échanger le contenu de deux variables \(\text{x}\) et \(\text{y}\) : la ligne de code x, y = y, x
suffit. Voir la remarque 1.1.1.
Et si le langage utilisé ne permet pas les assignations simultanées?
Complétez le code suivant avec des \(\text{x}\) et des \(\text{y}\) seulement, afin qu'il échange le contenu de \(\text{x}\) et de \(\text{y}\text{.}\)
# avant l'échange x = 5 y = 3 print(x, y) # échange variableTemporaire = x = = variableTemporaire # après l'échange print(x, y)
# avant l'échange : x = 5 y = 3 print(x, y) # échange : variableTemporaire = x x = y y = variableTemporaire # après l'échange : print(x, y)
Cliquez sur Next
autant de fois que nécessaire dans l'application Python Tutor si vous voulez suivre pas à pas l'évaluation du code qui précède.
Exercice 1.4.12.
La suite de Fibonacci est définie par récurrence de la façon suivante :
Calculez \(F_{100}\) à l'aide d'une boucle for
.
Le centième terme de cette suite est
On peut l'afficher à l'aide du bloc de code suivant
a = 1 b = 1 for n in range(3, 100+1): a, b = b, a + b print(b)
Cliquez sur Next
autant de fois que nécessaire dans l'application Python Tutor si vous voulez suivre pas à pas l'évaluation du code qui précède.