Questions et réponses : Python

Révisez le thème Python : voici une sélection de questions de tous niveaux, avec la réponse et une explication. Pour vous tester sans voir les réponses, jouez aux quiz.

Jouer aux quiz Python

Facile

Qui a conçu le langage Python ?

Réponse : Guido van Rossum

Guido van Rossum a conçu Python, dont la première version publiée date de 1991.

D'où vient le nom du langage Python ?

Réponse : De la troupe britannique Monty Python

Guido van Rossum a choisi ce nom en référence à la troupe comique britannique Monty Python.

Qu'est-ce qui délimite les blocs de code en Python, comme le corps d'un if ou d'une fonction ?

Réponse : L'indentation

En Python, l'indentation n'est pas un détail d'affichage : elle délimite les blocs du if, du for, des fonctions et des classes.

Quel est le type de la valeur 3.14 en Python ?

Réponse : float

Un nombre écrit avec un point décimal est de type float ; int désigne les entiers sans partie décimale.

Quel mot-clé permet d'ajouter une seconde condition après un if en Python ?

Réponse : elif

elif est la contraction de else if : il ajoute une condition après le if, avant un éventuel else.

Quelle structure Python peut être modifiée après sa création ?

Réponse : La liste

Une liste, écrite entre crochets, se modifie (ajout, suppression, remplacement) ; un tuple, écrit entre parenthèses, ne se modifie pas.

Quelle expression crée un dictionnaire Python avec la clé 'nom' et la valeur 'Ada' ?

Réponse : {'nom': 'Ada'}

Un dictionnaire s'écrit entre accolades, sous la forme clé : valeur ; {'nom', 'Ada'} sans deux-points est un ensemble (set).

Quelles valeurs produit list(range(3)) ?

Réponse : [0, 1, 2]

range(3) commence à 0 et s'arrête avant 3 : il produit 0, 1 et 2, soit trois valeurs.

Moyen

Que renvoie [n * n for n in [1, 2, 3]] ?

Réponse : [1, 4, 9]

Une compréhension de liste parcourt la séquence et calcule chaque élément : ici n * n donne 1, 4 puis 9.

Avec def f(a, b=2): return b, que renvoie f(1) ?

Réponse : 2

Un paramètre qui a une valeur par défaut la reçoit quand l'appelant ne fournit pas d'argument pour lui.

Que contient le paramètre **kwargs à l'intérieur d'une fonction ?

Réponse : Un dictionnaire des arguments nommés

**kwargs rassemble les arguments passés avec un nom (mot=valeur) dans un dictionnaire.

Que renvoie 'Bonjour'[0:3] ?

Réponse : 'Bon'

Le slicing [début:fin] prend les indices à partir de début et s'arrête avant fin : ici les indices 0, 1 et 2, soit 'Bon'.

Quel nom désigne par convention le premier paramètre d'une méthode d'instance Python ?

Réponse : self

Le premier paramètre d'une méthode d'instance reçoit l'objet courant ; la convention est de le nommer self.

À quoi sert un environnement virtuel (venv) en Python ?

Réponse : Isoler les paquets installés pour un projet donné

Un venv est un dossier qui isole les paquets d'un projet, pour éviter les conflits de versions entre projets.

Quel mot-clé suit try pour traiter une exception en Python ?

Réponse : except

Le bloc except s'exécute quand une exception correspondante est levée dans le bloc try ; le reste du try est alors interrompu.

Pourquoi écrire with open('notes.txt') as f plutôt que f = open('notes.txt') ?

Réponse : Le fichier est fermé automatiquement à la sortie du bloc, même en cas d'erreur

with utilise un gestionnaire de contexte : le fichier est fermé à la sortie du bloc, même si une erreur survient.

Difficile

Que renvoie l'appel d'une fonction qui contient le mot-clé yield ?

Réponse : Un objet générateur, qui produit les valeurs une à une à la demande

Une fonction avec yield renvoie un générateur : son corps ne s'exécute que lorsqu'on demande la valeur suivante.

Que se passe-t-il quand next(it) est appelée sur un itérateur épuisé, sans valeur par défaut ?

Réponse : Il lève l'exception StopIteration

next() renvoie l'élément suivant ; sans élément, l'exception StopIteration signale la fin de l'itération, que la boucle for intercepte.

Qu'est-ce qu'un décorateur en Python ?

Réponse : Une fonction qui prend une fonction en argument et renvoie une fonction modifiée

Un décorateur s'applique avec @ au-dessus d'une fonction ; exemple classique : un décorateur qui mesure la durée d'un appel.

Dans CPython, l'implémentation de référence de Python, que fait le GIL ?

Réponse : Il n'autorise qu'un thread à exécuter du bytecode Python à la fois

Le GIL est le verrou de l'interpréteur CPython : un seul thread exécute du bytecode Python à la fois, ce qui limite le parallélisme des calculs.

Que fait le mot-clé await dans une coroutine ?

Réponse : Il suspend la coroutine en attendant un awaitable, sans bloquer la boucle d'événements

await suspend la coroutine tant que l'objet attendu n'est pas prêt, et la boucle d'événements peut exécuter d'autres tâches pendant ce temps.

Que fait l'interpréteur Python d'une annotation de type comme x: int = 'abc' ?

Réponse : Rien : l'annotation n'influence pas l'exécution

Les annotations servent aux outils comme mypy et à la lisibilité ; l'interpréteur ne les vérifie ni ne les convertit pendant l'exécution.

Quelle méthode spéciale est appelée par len(obj) ?

Réponse : __len__

len(obj) appelle la méthode __len__ définie dans la classe de l'objet, qui doit renvoyer un entier.

Quelle est la différence entre copy.copy et copy.deepcopy sur une liste de listes ?

Réponse : copy.copy ne duplique que le premier niveau ; deepcopy duplique aussi les sous-listes

copy.copy crée un nouvel objet externe, mais ses sous-objets restent partagés ; deepcopy duplique aussi les objets imbriqués.

Thèmes proches

Jouer aux quiz Python