Bienvenue dans notre QCM Python ! Que vous soyez débutant ou déjà expérimenté en programmation, ce questionnaire à choix multiples est l’occasion parfaite de tester vos connaissances en Python. Grâce à des questions couvrant tous les niveaux, vous pourrez évaluer votre maîtrise des concepts clés du langage, comme les structures de données, les fonctions, les modules et bien plus. Si vous cherchez à améliorer vos compétences ou à vous préparer pour un examen, ce QCM Python est fait pour vous. Lancez-vous et découvrez où vous en êtes !
1. Quelle est la sortie du code suivant: min(max(False,-2,-5), 1,5)
A -5
B -2
C 1
D False
D
La fonction max() est utilisée pour trouver la valeur maximale parmi -2, -5 et false. Puisque false équivaut à la valeur 0, il nous reste donc min(0, 1, 5). Donc, le résultat est 0 (false).
Les tuples sont immuables et ne disposent pas de la méthode « append ». Une exception est levée dans ce cas.
3. Quelle est la sortie du code suivant?
if None:
print("Lorem Ipsum")
A Lorem Ipsum
B False
C Le code n’affichera rien
D Erreur de syntaxe
C
En Python, None est considéré comme une valeur « false », ce qui signifie qu’elle est évaluée comme False dans une condition. Ainsi, le bloc if None: ne sera pas exécuté, et donc la ligne print("Lorem Ipsum") ne sera pas appelée, ce qui entraînera aucune sortie.
4. En Python, les boucles « for » et « while » peuvent avoir une instruction « else » optionnelle?
A Seule la boucle « for » peut avoir une instruction « else » optionnelle
B Seule la boucle « while » peut avoir une instruction « else » optionnelle
C Les deux boucles peuvent avoir une instruction « else » optionnelle
D Les boucles ne peuvent pas avoir d’autre instruction en Python
C
En Python, les boucles for et while peuvent effectivement être suivies par une clause else optionnelle. L’instruction else dans une boucle est exécutée uniquement si la boucle termine normalement, c’est-à-dire sans être interrompue par une instruction break. Si la boucle est interrompue avec break, le bloc else ne sera pas exécuté. Exemple:
# Exemple avec une boucle for
for i in range(3):
print(i)
else:
print("Boucle terminée sans interruption.")
# Exemple avec une boucle while
i = 0
while i < 3:
print(i)
i += 1
else:
print("Boucle while terminée sans interruption.")
5. Quelle est la sortie du code suivant?
i = s = 0
while i <= 3:
s += i
i = i+1
print(s)
A 3
B 4
C 6
D 0
C
Le code initialise deux variables i et s à 0, puis utilise une boucle while qui s'exécute tant que i est inférieur ou égal à 3. À chaque itération, la valeur de i est ajoutée à s, et i est incrémenté de 1. Le processus se répète jusqu'à ce que i atteigne 4, moment où la condition de la boucle devient fausse et la boucle se termine. Le résultat final de s est 6, qui est ensuite affiché. Ainsi, la sortie du programme est 6.
6. Que fait la fonction re.match?
A Correspond à un motif à n'importe quelle position de la chaîne
B Correspond à un motif au début de la chaîne
C Cette fonction n'existe pas
D Aucune de ces réponses n'est vraie.
B
La fonction re.match en Python est utilisée pour correspondre à un motif uniquement au début de la chaîne. Elle tente de faire correspondre le motif de l'expression régulière au début de la chaîne donnée. Si la correspondance est trouvée au début, elle renvoie un objet match. Sinon, elle renvoie None.
7. Que fait la fonction re.search?
A Correspond à un motif à n'importe quelle position de la chaîne
B Correspond à un motif au début de la chaîne
C Cette fonction n'existe pas
D Aucune de ces réponses n'est vraie.
A
La fonction re.search en Python est utilisée pour rechercher un motif à n’importe quelle position de la chaîne. Contrairement à re.match, qui recherche uniquement au début de la chaîne, re.search parcourt toute la chaîne et renvoie un objet match dès qu'une correspondance est trouvée, peu importe où elle se trouve dans la chaîne.
8. Quelle est la sortie du code suivant?
while 2 == 2:
print('2')
A 2 est affiché une fois
B 2 est affiché deux fois
C 2 est affiché infiniment
D Erreur de syntaxe
C
La condition while 2 == 2 est toujours vraie, car 2 == 2 est une condition qui renverra toujours True. Donc, la boucle while va s'exécuter indéfiniment, affichant "2" à chaque itération.
Cependant, le code tel quel génère une erreur de syntaxe, car l'instruction print('2') n'est pas correctement indentée. En Python, l'indentation est essentielle pour définir les blocs de code, et ici, l'indentation du print manque.
9. Est-il préférable d'utiliser la boucle for plutôt que while si vous effectuez une itération dans une séquence (comme: list)?
A Non, il vaut mieux utiliser la boucle "While"
B Oui, il vaut mieux utiliser la boucle "for"
C Non, vous ne pouvez pas parcourir une séquence en utilisant la boucle "while".
D Non, vous ne pouvez pas parcourir une séquence à l'aide d'une boucles.
B
La meilleure pratique pour parcourir une séquence comme une liste en Python est d'utiliser la boucle for, car elle est conçue pour itérer de manière optimale sur les éléments d'une séquence (comme une liste, un tuple, etc.). La boucle for est plus concise et moins sujette aux erreurs (comme l'oubli de mise à jour d'un compteur) par rapport à la boucle while.
10. Quelle est la sortie du code suivant?
import re
str = 'welcome to waytolearnx'
matched = re.match(r'(.*) (.*?) (.*)', str)
print(matched.groups())
A welcome, to, waytolearnx
B (welcome, to, waytolearnx)
C 'welcome to waytolearnx'
D ('welcome', 'to', 'waytolearnx')
D
La fonction re.match() en Python est utilisée pour vérifier si une chaîne de caractères correspond à un motif spécifié au début de la chaîne. Dans l'exemple donné, la regex r'(.*) (.*?) (.*)' correspond à trois groupes capturés: le premier groupe capture tous les caractères avant le premier espace ("welcome"), le deuxième groupe capture les caractères entre les deux espaces ("to"), et le troisième groupe capture tout ce qui vient après le second espace ("waytolearnx"). Lorsque la méthode groups() est appelée sur l'objet match, elle retourne un tuple contenant les trois sous-chaînes capturées. Ainsi, la sortie du code est ('welcome', 'to', 'waytolearnx').