QCM Python – Partie 18

Questions pratiques pour testez vos connaissances sur la programmation Python à savoir des structures conditionnelles, des opérations logiques, des boucles, des fonctions, etc. Testez votre connaissance et travaillez sur les questions que vous trompez le plus souvent.
 
 

1. Quelle est la sortie du code suivant?
def fun():
    return count + 1
count = 0
print(fun())

A 0

B 1

C Erreur

D None

B
Le code définit une fonction fun() qui tente de retourner la valeur de count + 1. Avant d’appeler la fonction, count est défini comme 0. Ainsi, lorsque la fonction est appelée, elle renvoie la valeur de 0 + 1, c’est-à-dire 1.
 

2. Lequel des éléments suivants représente l’opérateur XOR?

A &

B |

C ^

D !

C
L’opérateur XOR (ou « exclusive OR ») en Python est représenté par le symbole ^.
 

3. Que se passe-t-il si la condition de base n’est pas définie dans un programme récursif?

A Le programme entre dans une boucle infinie

B Le programme est exécuté une fois

C Le programme s’exécute n fois où n est l’argument donné à la fonction.

D Une exception est levée

A
Si la condition de base n’est pas définie dans un programme récursif, cela conduit à une boucle infinie. En effet, sans condition de base, la fonction récursive continue de s’appeler elle-même indéfiniment, ce qui provoque un dépassement de la pile d’appels (stack overflow) et une erreur d’exécution. La réponse correcte est donc : A Le programme entre dans une boucle infinie.
 

4. Que renvoie None en Python ?

A Une valeur vide

B Une valeur nulle ou inexistante

C Une exception

D Une liste vide

B
None en Python est un objet spécial qui représente l’absence de valeur ou l’absence d’un objet. C’est l’équivalent de null dans d’autres langages.
 

5. Lequel des énoncés suivants est vrai?

A Vous ne pouvez pas créer d’exceptions personnalisées en Python.

B Vous pouvez créer une exception définie par l’utilisateur en héritant la classe Exception.

C Vous pouvez créer une exception définie par l’utilisateur en héritant la classe Error.

D Aucune de ces réponses n’est vraie.

B
En Python, il est possible de créer des exceptions personnalisées en créant une nouvelle classe qui hérite de la classe Exception. Cela permet de définir des exceptions spécifiques adaptées aux besoins de votre programme. Par exemple :

class MonException(Exception):
    pass
 
 

6. Quelle est la sortie du code suivant?
def fun(x):
    x = ['alex', 'bob']
    return id(x)
names = ['bob', 'alex']
print(id(names) == fun(names))

A True

B False

C Erreur

D None

B
Le code crée d’abord une liste names avec les éléments ‘bob’ et ‘alex’. Ensuite, une fonction fun(x) est définie, dans laquelle l’argument x est réaffecté à une nouvelle liste [‘alex’, ‘bob’]. Lorsque la fonction fun est appelée avec names, elle crée une nouvelle liste locale et renvoie son identifiant mémoire. En comparant l’identifiant de la liste names avec celui de la nouvelle liste dans la fonction, on obtient False car les deux listes ont des identifiants mémoire différents, même si elles contiennent les mêmes éléments. Par conséquent, la sortie du programme est False.
 

7. Quelle est la sortie du code suivant?
len(["str",1, 2, 3])

A 3

B 4

C 5

D Erreur

B
Le code suivant calcule la longueur de la liste ["str", 1, 2, 3]. Cette liste contient quatre éléments: une chaîne de caractères ("str") et trois entiers (1, 2, 3). La fonction len() retourne le nombre d’éléments dans la liste, donc la sortie sera 4.
 

8. Quelle est la sortie du code suivant?
>>> d1 = {"alex":23, "jean":25}
>>> d2 = {"alex":22, "jean":25}
>>> d1 > d2

A False

B True

C None

D Erreur

D
Le code compare deux dictionnaires d1 et d2 à l’aide de l’opérateur >. En Python, les dictionnaires ne peuvent pas être comparés directement avec des opérateurs comme > ou < (ils ne supportent pas une comparaison lexicographique comme les listes ou les chaînes de caractères).

Ainsi, la comparaison d1 > d2 entraînera une erreur. Python lèvera un TypeError car il ne peut pas effectuer de comparaison entre dictionnaires de cette manière.

TypeError: '>' not supported between instances of 'dict' and 'dict'
 

9. Quelle est la sortie du code suivant?
>>> bin(10-2) + bin(12^4)

A 0b10000b10

B 0b10001000

C 0b10000b1000

D 0b10000

C
Le code analyse deux expressions utilisant la fonction bin() pour convertir des résultats numériques en format binaire. D’abord, bin(10 - 2) calcule 10 – 2, qui donne 8, et sa représentation binaire est ‘0b1000’. Ensuite, bin(12 ^ 4) utilise l’opérateur XOR (exclusive OR) pour effectuer l’opération entre 12 et 4. En binaire, cela donne ‘0b1000’ également. Lorsque ces deux résultats sont concaténés, on obtient la chaîne ‘0b10000b1000’. Par conséquent, la sortie du code est 0b10000b1000, et la réponse correcte est C.
 

10. Supposons que dic = {"alex": 20, "jean": 25}. Pour obtenir le nombre d’entrées dans le dictionnaire, quelle instruction on utilise?

A dic.size()

B size(dic)

C dic.len()

D len(dic)

D
En Python, pour obtenir le nombre d’entrées dans un dictionnaire, on utilise la fonction intégrée len(dic). Cette fonction renvoie le nombre de paires clé-valeur dans le dictionnaire. Par exemple, si dic = {"alex": 20, "jean": 25}, l’appel len(dic) retournera 2, car il y a deux éléments dans le dictionnaire. Les autres options proposées, comme dic.size() ou size(dic), ne sont pas des méthodes valides pour obtenir la taille d’un dictionnaire en Python.

Une réflexion sur “QCM Python – Partie 18

  • septembre 14, 2020 à 12:55 pm
    Permalien

    La réponse à la question 8 est D.

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *