0% ont trouvé ce document utile (0 vote)
46 vues12 pages

Questions de Test 3 en Programmation Python

Transféré par

qyqrnmp42y
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
46 vues12 pages

Questions de Test 3 en Programmation Python

Transféré par

qyqrnmp42y
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ITI1520

Exemples des questions de Test 3 – pratique 3

1) Quel est le type pour les paramètres et le résultat dans la définition de


fonction suivante?

def test(x):
'''
Retourne True si la valeur 0 se trouve en x, et False sinon
>>> test((1,2,0,4,5))
True
>>> test((1,5,6))
False
'''
res = False
for val in x:
if val == 0:
res = True
return res

Réponses possibles (choisissez une):

a) (str,str)->bool
b) (tuple)->bool
c) (tuple,int)->noneType
d) (str)-> int
2) Quelle est la description correcte de la fonction suivante?
def ma_fonction(m):
'''(list) -> bool
Description:
>>> m = [[1,2,3],[4,5,6],[7,0,8]]
>>> ma_fonction(m)
True
>>> m2 = [[1],[3,4,5]]
>>> ma_fonction(m2)
False
'''
res = False
for rang_val in m:
for col_val in rang_val:
if col_val == 0:
res = True
break
return res

Réponses possibles (choisir une):

a) Retourne True si la matrice m (ou liste de listes) contient au moins un


zéro
b) Retourne True si la matrice m (ou liste de listes) ne contient pas des
zéros
c) Change tous les éléments dans la matrice m (ou liste de listes) a zéro
d) Aucun de ci-dessus
3) Si la liste L contient N = 1000 éléments, combien de pas sont effectués
dans la fonction suivante? Autrement dit, combien de fois le test L[i]==L[j]
est exécuté ?

def ma_fonction(L):
compteur=0
for i in range(len(L)):
semaphore=True
for j in range(len(L)):
if L[i] == L[j] and i!=j:
semaphore = False
if semaphore:
compteur=compteur+1
return compteur

L=[1, 0, 2, 0, 3]
resultat = ma_fonction(L)
print(resultat)

Réponses possibles (choisir une):

a) Moins de 20
b) Entre 1 000 et 9 000 fois
c) Entre 10 000 and 100 000 fois
d) Entre 200 000 et 2 millions de fois
e) Entre 10 millions et 200 millions de fois
4) Combien d’objets sont créés dans ce programme ?

class Point(object):
def __init__(self,x,y):
self.x = x
self.y = y

p1 = Point(10,20)
p2 = Point(30,50)
p3 = p2
p4 = Point(-10,5)
p4 = p1

Réponses possibles (choisir une):

a) 3
b) 4
c) 5
d) 2
e) Aucune des réponses ci-dessus

b. Combiens d’objets sont encore disponible (accessible) à la fin du


programme (avant qu’il se termine) ?
Réponses possibles (choisir une):

a) 3
b) 4
c) 5
d) 2
e) Aucune des réponses ci-dessus
5) Qu’est-ce que le programme suivant affiche-t-il?
def orange(n):
if n > 0:
print(n,end=" ")
orange(n-2)

def guava(n):
if n > 0:
guava(n-2)
print(n,end=" ")

guava(10)
print()
orange(10)
print()

Réponses possibles (choisir une):

a) 1 3 5 7 9
97531

b) 2 4 6 8 10
10 8 6 4 2

c) 10 8 6 4 2
2 4 6 8 10

d) Aucun de ci-dessus
6) Laquelle est la plus correcte description de la fonction suivante ?

def ma_fonction(x, v):


'''
Description:
>>> ma_fonction((1,2,3,2,5), 2)
True
>>> ma_fonction((1,5,6), 2)
False
'''
res = False
n = 0
for val in x:
if val == v:
n = n + 1
if n == 2:
res = True
return res

Réponses possibles (choisissez une):

a) Retourne False si la valeur v se trouve en x


b) Retourne True si la valeur 2 se trouve en x
c) Retourne False si la valeur 2 se trouve en x
d) Retourne True si la valeur v se trouve au moins 2 fois en x
7) Lesquels des programmes suivants I, II, et III sont équivalentes à ce
programme:

m = [[1,2,3],[4,5,6]]
rang = 0
while rang < len(m):
col = 0
while col < len(m[rang]):
m[rang][col] = 0
col = col + 1
rang = rang + 1

I.
m = [[1,2,3],[4,5,6]]
for rang_val in m:
for col_val in rang_val:
col_val = 0

II.
m = [[1,2,3],[4,5,6]]
for val_rang in m:
col = 0
while col < len(val_rang):
val_rang[col] = 0
col = col + 1

III.
m = [[1,2,3],[4,5,6]]
rang = 0
while rang < len(m):
col = 0
while col < len(m):
m[rang][col] = 0
col = col + 1
rang = rang + 1

Réponses possibles (choisir une):


a) I seulement
b) II seulement
c) III seulement
d) I et II
e) I, II, et III
8) Que fait la fonction de la question 3? Quelle est la description la plus
correcte de la fonction?

Réponses possibles (choisir une):

a) Compte combien d’éléments arrivent seulement une fois dans la liste.


b) Compte combien d‘éléments arrivent au moins deux fois dans la liste.
c) Vérifie s’il y a des éléments qui arrivent au moins deux fois dans la liste
d) Vérifie s‘il y a des éléments qui arrivent seulement une fois dans la liste.
e) Aucune des réponses ci-dessus.

9) Que-est ce que le programme Python suivant va-t-il afficher sur l’écran?


class PingPong(object):
num = 0
def next(self):
if (PingPong.num % 2 == 0):
print("Ping")
else:
print("Pong")
PingPong.num += 1

b = PingPong()
b.next()
b.next()
b.next()

c = PingPong()
c.next()
c.next()

Réponses possibles (choisir une):

a) Ping
Ping
Ping
Ping
Ping
b) Pong
Pong
Pong
Pong
Pong

c) Ping
Pong
Ping
Pong
Ping

d) Aucune des réponses ci-dessus

10) Combien d’appels récursifs sont effectués dans le programme suivant ?

def ma_fonction(n):
if n == 1:
return 1
else:
return n + ma_fonction(n - 1)

print(ma_fonction(-4))

Réponses possibles (choisir une):

a) 4
b) -4
c) 10
d) infini
11)
L’ordre de complexité est utilisé pour mesurer le nombre des opérations
exécutées par un algorithme dans le pire des cas (en anglais: Big O
notation). Les constantes et les termes plus petits sont ignorés quand n
deviens large. Par exemple:
4n2 est O(n2)
n2/100 +n est O(n2)
20n -70 est O(n)
10 log2 n + 100 est O(log2 n)

Pour chacune des 3 fonctions suivantes, combien d’opérations sont


exécutées dans la fonction, approximativement, quand n devient large? Par
exemple, pour f2, la réponse est: approximativement linéaire avec n, donc
O(n).

def f1(n):
i = n
while i >= 1 :
i = i // 2

def f2(n):
for i in range(n) :
print('*')

def f3(n):
for i in range(n) :
for j in range(i+1, n):
print('*')
12) Dans la fonction Python suivante une ligne de code qui manque.

def maFonction(x, v):


v = v + 1
t = 100
index = 0

# code manque
x[index] = x[index] * 2
index = index + 1
return v

>>> a = [10, 20, 30]


>>> t = 5
>>> print(maFonction(a, t), t, a)
6 5 [20, 20, 60]

Quelle ligne devrait être la ligne qui maque ?


Réponses possibles (choisir une):

a) while index < len(x) and index % 2 == 1:


b) while index < len(x) and index % 2 == 0:
c) while index < len(x):
if index % 2 == 1:
d) while index < len(x):
if index % 2 == 0:
13) Qu’est ce que le programme Python suivant va-t-il afficher sur l’écran?

def f(x, v):


global b
b = b + 1
for val in x:
print(val, end=" ")

return v

a = "12"
b = 7
print(f(a,b), end=" ")
print(b)

Réponses possibles (choisir une):

a) 1 2 7 7
b) 8 1 2 7
c) 1 2 7 8
d) 7 1 2 7

Vous aimerez peut-être aussi