TP3 - Tableaux de Type List
TP3 - Tableaux de Type List
TP3 - Tableaux de Type List
je chante
tu chantes
elle/il chante
nous chantons
vous chantez
elles/ils chantent
import random
x = random.randint(1, 6)
la variable x a pour valeur un entier pris au hasard entre 1 et 6 (tout deux inclus).
Q2 Écrire une séquence d’instructions qui simule 10 lancers de dé et qui compte le nombre de
6 obtenus.
Q3 Écrire une séquence d’instructions qui simule 100 lancers de dé et qui alimente un tableau
t, de type list, de longueur 6 de la façon suivante : t[0] est le nombre de 1 tombés, t[1]
est le nombre de 2 tombés, ... , t[5] est le nombre de 6 tombés.
Corrigé
Q1
31 def present ( verbe ) :
32 ''' Affiche la d é clinaison du verbe du 1 er groupe '''
33 pronom = [ ' je ' , ' tu ' , ' elle / il ' , ' nous ' , ' vous ' , ' elles / ils ']
34 suffixe = [ 'e ' , ' es ' , 'e ' , ' ons ' , ' ez ' , ' ent ']
35 prefixe = verbe [0: len ( verbe ) -2]
36 for k in range ( len ( pronom ) ) :
37 s = pronom [ k ] + ' ' + prefixe + suffixe [ k ]
38 print ( s )
Q2
40 import random
41
42 nombre_six = 0
43 for i in range (100) :
44 de = random . randint (1 ,6)
45 if de == 6:
46 nombre_six += 1
47
48 print ( nombre_six )
Q3
51 t = [0 ,0 ,0 ,0 ,0 ,0]
52 for i in range (100) :
53 k = random . randint (1 ,6)
54 t [k -1] += 1
55
56 print ( t )
Q4
59 def est_element (t , x ) :
60 n = len ( t )
61 for i in range ( n ) :
62 if t [ i ] == x :
63 return True
64 return False
65
66 # Tests unitaires
67 t = []; x = 1
68 assert est_element (t , x ) == False
69 t = [1 ,2 ,3 ,1]; x = 5
70 assert est_element (t , x ) == False
71 t = [1]; x = 1
72 assert est_element (t , x ) == True
73 t = [1 ,2 ,3 ,1]; x = 1
74 assert est_element (t , x ) == True
75 t = [1 ,2 ,3 ,4]; x = 4
76 assert est_element (t , x ) == True
77 t = [1 ,2 ,3 ,4]; x = 2
78 assert est_element (t , x ) == True
79 t = [1 ,2 ,1 ,1]; x = 1
80 assert est_element (t , x ) == True
81
82 # OK avec cha î nes de caract è res quand x est un caract è re :
83 t = " 123 " ; x = '3 '
84 assert est_element (t , x ) == True
85 # OK avec tuples :
86 t = (1 ,2 ,3) ; x = 3
87 assert est_element (t , x ) == True
88 # OK avec range ( n )
89 n = 4
90 t = range ( n ) ; x = 3
91 assert est_element (t , x ) == True
Q5
94 def nombre (t , x ) :
95 n = len ( t )
96 nb = 0
97 for i in range ( n ) :
98 if t [ i ] == x :
99 nb = nb +1
100 return nb
101
102 # Tests unitaires
103 t =[1 ,2 ,3 ,1]
104 assert nombre (t ,1) == 2
105 assert nombre (t ,2) == 1
106 assert nombre (t ,5) == 0
Q6
109 def nombre_de_pairs ( t ) :
110 n = len ( t )
111 nb = 0
112 for i in range ( n ) :
113 if t [ i ]%2 == 0:
114 nb = nb +1
115 return nb
116
117 # Tests unitaires
118 t =[0 ,2 ,3 ,0]; assert nombre_de_pairs ( t ) == 3
119 t =[1 ,3 ,3 ,5]; assert nombre_de_pairs ( t ) == 0
120 t =[1 ,3 ,4 ,5]; assert nombre_de_pairs ( t ) == 1
Q7
123 def somme_carres ( t ) :
124 n = len ( t )
125 somme = 0
126 for i in range ( n ) :
127 somme = somme + t [ i ]**2
128 return somme
129
130 t =[1 ,2 ,3 ,4]; assert somme_carres ( t ) == 30
Q8
133 def produit ( t ) :
134 n = len ( t )
135 produit = 1
136 for i in range ( n ) :
137 produit = produit * t [ i ]
138 return produit
139
140 t =[1 ,2 ,3 ,4]; assert produit ( t ) == 24
Q9
143 def somme_pairs ( t ) :
144 n = len ( t )
145 somme = 0
146 for i in range ( n ) :
147 if t [ i ]%2 == 0:
148 somme = somme + t [ i ]
149 return somme
150
151 t =[1 ,2 ,3 ,4]; assert somme_pairs ( t ) == 6
Q10
154 def s o mm e _ in d i ce s _ pa i r s ( t ) :
155 n = len ( t )
156 somme = 0
157 for i in range ( n ) :
158 if i %2 == 0:
159 somme = somme + t [ i ]
160 return somme
161
Q11
168 def palindrome ( t ) :
169 n = len ( t )
170 for i in range ( n ) :
171 if t [ i ] != t [n -1 - i ]:
172 return False
173 return True
174
175 # Tests unitaires
176 t =[]; assert palindrome ( t ) == True
177 t =[2]; assert palindrome ( t ) == True
178 t =[1 ,2]; assert palindrome ( t ) == False
179 t =[1 ,2 ,1]; assert palindrome ( t ) == True
180 t =[1 ,2 ,1 ,2]; assert palindrome ( t ) == False
Q12
183 def tous_positifs ( t : list ) -> bool :
184 n = len ( t )
185 for i in range ( n ) :
186 if t [ i ] <=0:
187 return False
188 return True
189
190 # Tests unitaires
191 t =[1 ,2 ,3 ,4]; assert tous_positifs ( t ) == True
192 t =[1 ,0 ,3 ,4]; assert tous_positifs ( t ) == False
193 t =[1 , -2 ,3 ,4]; assert tous_positifs ( t ) == False
Q13
212 def existe_positifs ( t : list ) -> bool :
213 n = len ( t )
214 for i in range ( n ) :
215 if t [ i ] > 0:
216 return True
217 return False
218
Q14
228 def liste_entiers ( n : int , p : int ) -> list :
229 assert n <p , " nombres incoh é rents "
230 L =[]
231 for i in range (n , p ) : # entiers de n à p -1
232 L . append ( i )
233 return L
234
235 n , p =2 ,3; assert liste_entiers (n , p ) == [2]
236 n , p = -4 ,11; assert liste_entiers (n , p ) == [ -4 , -3 , -2 , -1 , 0 , 1 , 2 , 3 , 4 ,
5 , 6 , 7 , 8 , 9 , 10]
Q15
239 def liste_cubes ( n : int ) -> list :
240 assert n >=0 , " n doit ê tre positif "
241 L =[]
242 for i in range ( n +1) : # cubes de 0 à n
243 L . append ( i **3)
244 return L
245
246 n =0; assert liste_cubes ( n ) == [0]
247 n =7; assert liste_cubes ( n ) == [0 , 1 , 8 , 27 , 64 , 125 , 216 , 343]
Q16
250 def liste_entiers2 ( n : int , p : int , q : int ) -> bool :
251 assert n >=1 and p >=1 and q >=1 , " les entiers doivent ê tre positifs non
nuls "
252 L =[]
253 for i in range (1 , n +1) :
254 if i % p != 0 and i % q != 0:
255 L . append ( i )
256 return L
257
258 # Tests unitaires
259 n ,p , q = 1 ,2 ,3; assert liste_entiers2 (n ,p , q ) == [1]
260 n ,p , q = 3 ,1 ,4; assert liste_entiers2 (n ,p , q ) == []
261 n ,p , q = 3 ,4 ,1; assert liste_entiers2 (n ,p , q ) == []
262 n ,p , q = 6 ,7 ,8; assert liste_entiers2 (n ,p , q ) == [1 ,2 ,3 ,4 ,5 ,6]
263 n ,p , q = 6 ,8 ,7; assert liste_entiers2 (n ,p , q ) == [1 ,2 ,3 ,4 ,5 ,6]
264 n ,p , q = 8 ,7 ,10; assert liste_entiers2 (n ,p , q ) == [1 ,2 ,3 ,4 ,5 ,6 ,8]
265 n ,p , q = 15 ,5 ,10; t = liste_entiers2 (n ,p , q ) ;
266 for i in range ( len ( t ) ) :
267 assert t [ i ]%5 != 0
268 n ,p , q = 10 ,2 ,3; assert liste_entiers2 (n ,p , q ) == [1 ,5 ,7]
Q17 1.
272 def est_multiple ( x : int , L : list ) -> bool :
273 n = len ( L )
274 i = 0
275 while i < n :
276 if x % L [ i ] == 0:
277 return True
278 i += 1
279 return False
280
281 # Tests unitaires
282 L =[]; x =0; assert est_multiple (x , L ) == False
283 L =[2 ,3 ,4]; x =0; assert est_multiple (x , L ) == True
284 L =[2 ,3 ,4]; x =2; assert est_multiple (x , L ) == True
285 L =[2 ,3 ,4]; x =8; assert est_multiple (x , L ) == True
286 L =[2 ,3 ,4]; x =17; assert est_multiple (x , L ) == False
2.
289 def liste_entiers3 (n , L ) :
290 M = []
291 for i in range (1 , n +1) :
292 if not est_multiple (i , L ) :
293 M . append ( i )
294 return M
295
296 L =[2 ,3 ,7 ,17]; n =20; assert liste_entiers3 (n , L ) == [1 , 5 , 11 , 13 , 19]
Q18 1.
300 def s ommes_ parti elles ( L ) :
301 n = len ( L )
302 M =[]
303 somme =0
304 for i in range ( n ) :
305 somme = somme + L [ i ]
306 M . append ( somme )
307 return M
308
309 L =[2 ,3 ,4 , -1]; assert somm es_par tielle s ( L ) == [2 , 5 , 9 , 8]
2.
312 def reciproque ( L ) :
313 n = len ( L )
314 N =[ L [0]] # premi è re valeur
315 for i in range (1 , n ) :
316 N . append ( L [ i ] - L [i -1])
317 return N
318
319 L =[2 ,3 ,4 , -1]; assert reciproque ( somm es_pa rtiell es ( L ) ) == L