QCM : Bases du langage Python (25 questions)

Questions et réponses du QCM

1. Quel est le rôle du langage machine dans l’exécution d’un programme ?

Il mémorise les fonctions avant leur appel par l’interpréteur
Il décrit l’algorithme avec des mots compréhensibles par l’humain
Il transforme les résultats du programme en texte affichable
Il fournit au processeur des instructions sous forme de bits

Il fournit au processeur des instructions sous forme de bits

Explication

Le langage machine est une suite de bits d’instructions directement communiquée au processeur pour lui indiquer les opérations à effectuer. La description lisible de l’algorithme appartient au travail du programmeur, pas au langage machine.

2. Comment un langage interprété est-il traduit lors de l’exécution d’un programme ?

Il est traduit progressivement par un logiciel appelé interpréteur
Il est transformé en littéraux avant d’être transmis à la mémoire
Il est converti entièrement en langage machine avant toute lecture
Il est exécuté directement par le processeur sans logiciel intermédiaire

Il est traduit progressivement par un logiciel appelé interpréteur

Explication

Un langage interprété est traduit au fur et à mesure de la lecture du programme par un interpréteur. Une traduction complète avant l’exécution correspond plutôt au principe d’une compilation.

3. Dans la résolution d’un problème en Python, quelle séquence décrit correctement les rôles du programmeur et de l’interpréteur ?

L’interpréteur conçoit les instructions, puis le programmeur les convertit en Python
Le programmeur traduit le code en langage machine, puis l’interpréteur conçoit l’algorithme
Le programmeur exécute les instructions machine, puis l’interpréteur choisit le problème
Le programmeur conçoit l’algorithme, puis l’interpréteur le traduit en langage machine

Le programmeur conçoit l’algorithme, puis l’interpréteur le traduit en langage machine

Explication

Le programmeur conçoit une suite d’instructions ordonnées et la reformule en Python, tandis que l’interpréteur réalise la traduction en langage machine. Confondre la conception de l’algorithme avec sa traduction inverse les deux responsabilités.

4. Qu’est-ce qu’une expression Python ?

Une suite de bits destinée directement au processeur
Une combinaison évaluée pour produire une valeur
Une notation constante représentant nécessairement du texte
Un identifiant suivi de parenthèses sans opération évaluée

Une combinaison évaluée pour produire une valeur

Explication

Une expression Python combine des littéraux, des opérateurs et éventuellement des appels de fonctions, puis l’interpréteur l’évalue pour produire une valeur. Un simple littéral est une expression possible, mais il ne définit pas à lui seul toutes les expressions.

5. Quelle description correspond à un littéral en Python ?

Une notation qui représente une valeur constante
Un logiciel qui traduit le programme en langage machine
Une opération qui combine plusieurs valeurs variables
Une instruction qui appelle une fonction avec des arguments

Une notation qui représente une valeur constante

Explication

Un littéral est une notation reconnue par l’interpréteur pour représenter une valeur constante, comme un nombre, un booléen ou du texte. Un appel de fonction décrit une opération à évaluer et non une notation constante.

6. Quelle distinction est correcte entre « abs » et « abs(-4) » en Python ?

« abs » désigne le résultat, tandis que « abs(-4) » désigne la fonction disponible
« abs » désigne la fonction, tandis que « abs(-4) » désigne son résultat d’appel
« abs » est un argument, tandis que « abs(-4) » représente une définition de fonction
« abs » représente un littéral, tandis que « abs(-4) » représente un opérateur arithmétique

« abs » désigne la fonction, tandis que « abs(-4) » désigne son résultat d’appel

Explication

L’identifiant « abs » désigne la fonction, alors que « abs(-4) » constitue un appel de cette fonction avec l’argument -4 et produit une valeur. Les parenthèses contenant l’argument caractérisent l’appel, non la définition de la fonction.

7. Quelle différence fondamentale oppose les types int et float en Python ?

int représente les réels avec une marge d’erreur, tandis que float représente exactement les entiers
int représente exactement les entiers, tandis que float représente les réels de manière approchée
int conserve environ seize chiffres significatifs, tandis que float n’en conserve aucun
int sert aux textes numériques, tandis que float sert aux valeurs booléennes

int représente exactement les entiers, tandis que float représente les réels de manière approchée

Explication

Le type int représente exactement les nombres entiers, alors que le type float représente des nombres réels de manière approchée. La marge d’erreur concerne donc les flottants, et non les entiers.

8. Quel type Python correspond au littéral « 1_253_526 » ?

Un entier, car les underscores ne changent pas le type du littéral
Un flottant, car les underscores indiquent une valeur décimale
Un flottant, car plusieurs groupes de chiffres forment une mantisse
Un entier, car tout littéral numérique commence par zéro

Un entier, car les underscores ne changent pas le type du littéral

Explication

Un littéral composé de chiffres éventuellement séparés par des underscores reste un entier lorsqu’il ne commence pas par zéro. Les underscores facilitent la lecture et ne transforment pas le littéral en flottant.

9. Quelle propriété caractérise la précision des flottants Python ?

Ils représentent chaque nombre réel avec une précision exacte, quelle que soit sa longueur
Ils stockent les décimales comme des entiers afin d’éviter toute approximation numérique
Ils limitent toute valeur flottante à deux chiffres significatifs après le point décimal
Ils offrent environ seize chiffres significatifs et représentent parfois une valeur proche de la valeur décimale visée

Ils offrent environ seize chiffres significatifs et représentent parfois une valeur proche de la valeur décimale visée

Explication

Les flottants Python offrent environ 16 chiffres significatifs et peuvent représenter 0,1 par une valeur très proche, mais légèrement différente. Ils ne garantissent donc pas une représentation exacte de chaque nombre réel.

10. Quelle instruction rattache à la variable `total` la valeur obtenue en évaluant l’expression `prix * quantite` ?

prix * quantite = total
prix = total * quantite
total = prix * quantite
total == prix * quantite

total = prix * quantite

Explication

L’affectation suit la syntaxe identifiant = expression : l’expression est placée à droite et l’identifiant à gauche. L’écriture avec `==` correspond à une comparaison et non à un rattachement de valeur.

11. Après l’exécution de `x = 3` puis `x = x + 4`, dans quel ordre Python traite-t-il la seconde affectation ?

Il compare `x` et 4, puis conserve la valeur la plus grande.
Il évalue `x + 4`, puis rattache le résultat à `x`.
Il remplace `x` par 4, puis calcule la somme obtenue.
Il rattache d’abord l’expression entière, puis évalue ses deux termes.

Il évalue `x + 4`, puis rattache le résultat à `x`.

Explication

Dans une affectation, l’expression située à droite est évaluée avant que son résultat soit rattaché à l’identifiant de gauche. La variable conserve donc sa valeur précédente pendant le calcul de `x + 4`.

12. Quel nom peut être utilisé comme identifiant Python valide ?

prix-total
class
2_temperature
temperature_2

temperature_2

Explication

Un identifiant peut contenir des lettres, des chiffres et des underscores, mais il ne peut pas commencer par un chiffre ni être un mot-clé réservé. Le tiret n’est pas admis dans un identifiant Python.

13. Quelle affirmation distingue correctement le littéral booléen `True` de la valeur écrite entre guillemets ?

`True` représente l’absence de valeur, tandis que `"True"` est un booléen.
`True` est un booléen, tandis que `"True"` est une chaîne de caractères.
`True` est une chaîne, tandis que `"True"` est un nombre entier.
Les deux écritures représentent le même type booléen en Python.

`True` est un booléen, tandis que `"True"` est une chaîne de caractères.

Explication

Le type `bool` possède notamment le littéral `True`, alors qu’un texte entre guillemets appartient au type `str`. Les guillemets transforment donc le contenu en chaîne de caractères.

14. Quelle paire associe correctement chaque valeur à son type Python ?

Les deux valeurs sont des chaînes car elles représentent le même texte.
`321` est une chaîne et `'321'` est un entier.
Les deux valeurs sont des entiers car elles contiennent les mêmes chiffres.
`321` est un entier et `'321'` est une chaîne de caractères.

`321` est un entier et `'321'` est une chaîne de caractères.

Explication

Une suite de chiffres sans guillemets, comme `321`, est un entier, tandis que la présence de guillemets dans `'321'` indique une chaîne de caractères. Le contenu visuel ne suffit donc pas à déterminer le type.

15. Quelle expression Python calcule la puissance de `a` par `b` ?

a ^ b
a // b
a %% b
a ** b

a ** b

Explication

En Python, l’opérateur `**` réalise la puissance, tandis que `^` désigne une autre opération. Les opérateurs `//` et `%` concernent respectivement la division euclidienne et le reste.

16. Quel est le type du résultat de l’expression `7 / 2` en Python ?

Un entier
Un flottant
Un booléen
Une chaîne de caractères

Un flottant

Explication

L’opérateur `/` produit toujours un flottant, y compris lorsque ses deux opérandes sont des entiers. La division euclidienne avec `//` répond à une autre règle de typage.

17. Quel couple quotient-reste représente la division euclidienne de 17 par 5 ?

q = 5 et r = 2
q = 3 et r = 2
q = 4 et r = -3
q = 2 et r = 7

q = 3 et r = 2

Explication

On a 17=5×3+217 = 5\times3 + 2, avec un reste compris entre 0 et 5. Les autres couples ne respectent pas simultanément l’égalité de division et la contrainte sur le reste.

18. Quelle condition Python permet de vérifier qu’un entier `a` est divisible par un entier `b` ?

a % b == 1
a % b == 0
a // b == 0
a / b == 0

a % b == 0

Explication

La divisibilité signifie que le reste de la division de `a` par `b` est nul, ce qui s’écrit `a % b == 0`. Une division entière égale à zéro ne caractérise pas la divisibilité et peut survenir dans d’autres situations.

19. Quelle est la valeur de l’expression booléenne True or FalseTrue\ or\ False ?

False
True
0
Une erreur de syntaxe

True

Explication

L’opérateur « or » vaut True dès qu’au moins l’un des deux booléens vaut True. La confusion fréquente consiste à appliquer la règle de « and », qui exige que les deux valeurs soient True.

20. Que produit l’expression Python "ha" ∗ 3"ha"\ *\ 3 ?

Une erreur, car * additionne des chaînes
"hahaha"
"ha ha ha"
"ha3"

"hahaha"

Explication

L’opérateur « * » répète une chaîne le nombre entier de fois indiqué, ce qui donne ici trois répétitions consécutives. L’opérateur « + » sert plutôt à concaténer deux chaînes.

21. Comment Python compare-t-il deux chaînes lorsqu’il applique l’ordre lexicographique ?

Selon la longueur totale des chaînes
Caractère par caractère selon les codes Unicode
Selon l’ordre de création des chaînes
En comparant uniquement le premier caractère

Caractère par caractère selon les codes Unicode

Explication

L’ordre lexicographique compare les chaînes caractère par caractère en utilisant leurs codes Unicode, comme dans un dictionnaire. La longueur peut intervenir si un préfixe commun existe, mais elle ne constitue pas le principe général de comparaison.

22. Quelle valeur produit l’expression 2+3∗42 + 3 * 4 en Python, sans parenthèses ?

9
20
24
14

14

Explication

La multiplication possède une priorité supérieure à l’addition, donc Python calcule d’abord 3∗43 * 4, puis ajoute 22. Les résultats 20 ou 24 correspondent à des regroupements qui ne respectent pas cette priorité.

23. Quel est le rôle d’une ligne Python qui commence par le symbole # ?

Afficher automatiquement un message dans la console
Expliquer le code sans être exécutée par l’interpréteur
Répéter l’instruction située sur la ligne suivante
Définir une fonction appelée par l’interpréteur

Expliquer le code sans être exécutée par l’interpréteur

Explication

Une ligne commençant par # est un commentaire : l’interpréteur l’ignore et elle sert à aider le lecteur humain à comprendre le programme. Elle ne déclenche donc pas d’affichage ni d’exécution d’instruction.

24. Quelle distinction décrit correctement un script Python par rapport à la console interactive ?

Le script rassemble des instructions dans un fichier, tandis que la console les reçoit une par une.
Le script affiche chaque résultat automatiquement, tandis que la console ignore les expressions.
Le script exige une connexion réseau, tandis que la console fonctionne sans interpréteur.
Le script contient uniquement des commentaires, tandis que la console contient les instructions exécutables.

Le script rassemble des instructions dans un fichier, tandis que la console les reçoit une par une.

Explication

Un script est un fichier qui regroupe des instructions interprétées ligne par ligne, alors que la console interactive reçoit les instructions au fur et à mesure. L’affichage automatique des résultats n’est pas une caractéristique générale du script.

25. Que se passe-t-il lorsqu’un script Python contient une affectation mais aucune instruction d’affichage ?

Il affiche automatiquement la valeur affectée.
Il transforme l’affectation en commentaire.
Il répète la valeur jusqu’à la fin du script.
Il s’exécute sans produire d’affichage dans la console.

Il s’exécute sans produire d’affichage dans la console.

Explication

L’exécution d’un script ne produit pas d’affichage en console sans instruction telle que print. Une affectation peut modifier une variable, mais elle ne demande pas à Python de montrer sa valeur.

Révisez avec les flashcards

Mémorisez les réponses avec 57 flashcards sur Bases du langage Python.

Qu'est-ce que le langage machine ?

Une suite de bits d'instructions communiquée au processeur.

Comment est traduit un langage interprété ?

Au fur et à mesure de la lecture par un interpréteur.

Quel logiciel traduit un langage interprété ?

Un logiciel appelé interpréteur ou interprète.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Bases du langage Python.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM