Listes¶

In [9]:
L = [10,47,8,20,30]

L est une liste d'entiers. On peut obtenir sa longueur (length) ainsi :

In [10]:
print(len(L))
5

Les éléments de la liste sont numérotés de 0 à len(L)-1 :

In [11]:
print(L[0])
10
In [12]:
print(L[1])
47
In [13]:
print(L[4])
30

Exercice 1¶

Compléter le programme ci-dessous pour qu'il affiche tous les éléments de la liste L1, un par un :

In [14]:
L1 = [5,4,8,9,3,60,4,8,10,11,47,89,23,12]
k = 0

while k < len(L1) :
    print(L1[k])
    k = k+1
5
4
8
9
3
60
4
8
10
11
47
89
23
12

Exercice 2¶

On peut modifier un des éléments. Par exemple, on peut remplacer ci-dessous 40 par 0 :

In [15]:
L2 = [1,5,1,40,80]
L2[3] = 0
print(L2)
[1, 5, 1, 0, 80]

Compléter ci-dessous le programme qui multiplie tous les éléments de L2 par 10 et affiche la liste finale :

In [16]:
for i in range(len(L2)):
    L2[i] = L2[i]*10
print(L2)
[10, 50, 10, 0, 800]

Exercice 3¶

On peut ajouter des élements à la fin d'une liste :

In [17]:
L = [15,16,4]
L = L + [50]
print(L)
[15, 16, 4, 50]

Autre méthode :

In [18]:
L.append(123)
print(L)
[15, 16, 4, 50, 123]

Compléter le programme ci-dessous pour obtenir une liste P contenant les entiers de 1 à 100 :

In [19]:
P = []      #commentaire :  [] est une liste vide 
i = 1

while i < 101:
    P = P + [i]
    i = i+1

print(P)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]

Exercice 4¶

Compléter la fonction ci-dessous qui renvoie la liste des N premiers termes de la suite géométrique $(u_n)$ de premier terme $u_0 = 5$ et de raison $0,1$.

In [21]:
def suite(N):
    u = []
    for k in range(N):
        u = u + [5*0.1**k]
    return u

print(suite(10))    
[5.0, 0.5, 0.05000000000000001, 0.005000000000000001, 0.0005000000000000001, 5.000000000000001e-05, 5.000000000000002e-06, 5.000000000000002e-07, 5.0000000000000024e-08, 5.0000000000000026e-09]

Exercice 5¶

Compléter le programme ci-dessous qui affiche la liste L des termes inférieurs à 200 de la suite $(u_n)$ définie par $u_0 = 5$ et pour tout entier naturel $n$ par $u_{n+1} = 1,2u_n +7$.

NB : pas les 200 premiers termes , mais tous les termes $u_n < 200$ !

In [23]:
u = 5
L = []

while u<200 :
    L.append(u)
    u = 1.2*u+7    
print(L)  
[5, 13.0, 22.6, 34.120000000000005, 47.944, 64.53280000000001, 84.43936000000001, 108.32723200000001, 136.99267840000002, 171.39121408000003]

Exercice 6¶

Compléter :

In [25]:
def ps(u,v):
    p = 0
    for i in range(3):
        p = p + u[i]*v[i]
    return p

a = [1,2,3]
b = [-2,-5,4]

if ps(a,b) == 0:
    print("les vecteurs sont orthogonaux")
else:
    print("les vecteurs ne sont pas orthogonaux")
les vecteurs sont orthogonaux
In [26]:
def ps(u,v):
    p = 0
    for i in range(3):
        p = p + u[i]*v[i]
    return p

a = [1,2,30]
b = [-2,-5,4]

if ps(a,b) == 0:
    print("les vecteurs sont orthogonaux")
else:
    print("les vecteurs ne sont pas orthogonaux")
les vecteurs ne sont pas orthogonaux

Exercice 7¶

Compléter la fonction moyenne qui renvoie la moyenne des notes de la liste N, affectés des coefficients respectifs de la liste C

(exemple : la note 16 a pour coefficient 5)

In [29]:
N = [17,10,16,20,5,11]
C = [2,1,5,2,3,4]

def moyenne(N,C):
    m = 0
    s = 0
    for k in range(len(N)):
        m = m + N[k]*C[k]
        s = s + C[k]
    return m/s

print(moyenne(N,C))
13.117647058823529
In [ ]: