Exercice 1 (data)¶
Ecrire le résultat de la commande print :
#data =[2, 5, 4, 6] #V1
data =[2, 8, 3, 2] #V2
n = len(data)
a = sum(data[i] for i in range(n))/n
b = sum(val for val in range(n))/n
c = sum(data)/n
print(f'{a = }, {b = }, {c = }')
a = . . . . . . , b = . . . . . , c = . . . . .
In [1]:
data =[2, 5, 4, 6] #Variante 1
data =[2, 8, 3, 2] #Variante 2
n = len(data)
a = sum(data[i] for i in range(n))/n
b = sum(val for val in range(n))/n # rien à voir avec data
c = sum(data)/n
print(f'{a = }, {b = }, {c = }')
a = 3.75, b = 1.5, c = 3.75
Exercice 2 (série convergeante)¶
- Ecrire en une seule exression compacte, avec
sum()une commande qui permet de calculer la somme suivante : $$ V1 : S = \sum_{k=0}^n \frac{1}{k^2 + \sqrt{k+1}} \quad,\quad V2 : S = \sum_{k=0}^n \frac{1}{\sqrt{2+k} + k^2 } $$ - Réécrire l'expression en utilisant une boucle
for
In [2]:
n = 1_000_000
print(sum(1/(k*k + (k+1)**0.5) for k in range(n))) # Variante 1
print(sum(1/((2+k)**0.5 + k*k) for k in range(n))) # Variante 2
s = 0 # Variante 1
for k in range(n):
s += 1/(k*k + (k+1)**0.5)
print(s)
s = 0 # Variante 2
for k in range(n):
s += 1/((2+k)**0.5 + k*k)
print(s)
# La série converge vers 1.946538....
1.9465375317080276 1.5945707892406802 1.946537531708018 1.5945707892406684
In [3]:
# Liste des 10 premières valeurs (non demandé)
n=1_000_000
l = [1/(k*k + (k+1)**0.5) for k in range(n)]
print([f'{v:0.2f}' for v in l[:10]])
sum(l)
['1.00', '0.41', '0.17', '0.09', '0.05', '0.04', '0.03', '0.02', '0.01', '0.01']
Out[3]:
1.9465375317080276
Exercice 3 (Table)¶
Le code suivant permet de construire un tableau table
de n lignes et m colonnes.
table = []
for i in range(4):
table.append([])
for j in range(2):
table[i].append((i+1)+0.1*(j+1))
Ecrire ce que vont afficher les commandes suivantes :
+ `print(len(table)) . . . . . . . . . . . .`
+ `print(len(table[0])) . . . . . . . . . . . .`
+ `print(table[2]) . . . . . . . . . . . . . . .`
+ `print(table[2][1]) . . . . . . . . . . . . . . .`
In [4]:
# Variante 1
table = []
for i in range(4):
table.append([])
for j in range(2):
table[i].append( (i+1) + 0.1 * (j+1) )
print(f'{len(table) = }')
print(f'{len(table[1]) = }')
print(f'{table[2] = }')
print(f'{table[3][1] = }')
len(table) = 4 len(table[1]) = 2 table[2] = [3.1, 3.2] table[3][1] = 4.2
In [5]:
# Variante 2
table = []
for i in range(5):
table.append([])
for j in range(2):
table[i].append( (i+1) * 10 + (j+1) )
#[print(l) for l in table]
print(f'{len(table) = }')
print(f'{len(table[2]) = }')
print(f'{table[3] = }')
print(f'{table[4][1] = }')
len(table) = 5 len(table[2]) = 2 table[3] = [41, 42] table[4][1] = 52
Exercice 4 (for + break)¶
Le code ci-dessous permet de calculer la somme de quelques nombres impairs. Ecrire ce que va afficher la commande print
s = 0
for i in range(5):
j = 2*i+1
if j>5 : break
s += j
print(f'{i = }, {j = }, {s = }')
i = . . . . ., j = . . . . ., s = . . . . .
In [6]:
# Variante 1
s = 0
for i in range(5):
j = 2*i+1
if j>5 : break
s += j
print(f'{i = }, {j = }, {s = }')
i = 3, j = 7, s = 9
In [7]:
# Variante 2
s = 0
for i in range(6):
j = 2*(i+1)
if j>6 : break
s += j
print(f'{i = }, {j = }, {s = }')
i = 3, j = 8, s = 12
Aucun commentaire:
Enregistrer un commentaire