QCM : Programmation Python : bases et contrôle — 19 questions

Questions et réponses du QCM

1. Que se passe-t-il lors de l’appel d’une fonction Python ?

Python crée une zone locale, exécute le corps, puis la détruit après le retour
Python exécute le corps dès la définition et réutilise la même zone locale
Python crée une zone globale et conserve les paramètres après le retour
Python ignore les arguments puis exécute le corps dans la zone de définition

Python crée une zone locale, exécute le corps, puis la détruit après le retour

Explication

Lors de l’appel, Python associe les paramètres aux arguments, exécute le corps, renvoie la valeur de return\text{return}, puis détruit la zone locale. La définition prépare la fonction, mais n’exécute pas encore son corps.

2. Quelle caractéristique distingue une boucle `while` d’une boucle `for` ?

`while` exécute un bloc selon un nombre fixé
`while` parcourt automatiquement les caractères d’un texte
`while` dépend d’une suite d’éléments itérables
`while` dépend d’une condition booléenne

`while` dépend d’une condition booléenne

Explication

Une boucle `while` répète son traitement tant qu’une condition booléenne est vraie. La boucle `for`, en revanche, est liée au parcours des éléments d’un itérable.

3. Après l’exécution de `a = 5`, puis `a = 7`, puis `a = 2`, à quelle valeur `a` fait-elle référence ?

À la valeur 7
À la valeur 2
À la somme des trois valeurs
À la valeur 5

À la valeur 2

Explication

Chaque nouvelle affectation fait référencer à `a` la valeur nouvellement obtenue, si bien que la dernière instruction l’associe à 2. Les valeurs précédemment affectées ne déterminent pas la référence finale de `a`.

4. Quelle valeur renvoie l’expression len(′hello′)\text{len}('hello') ?

66
00
44
55

$$5$$

Explication

La fonction len\text{len} compte les caractères d’une chaîne, et « hello » en contient cinq. La valeur 00 correspondrait à une chaîne vide, pas à cette chaîne.

5. Dans la séquence `a = 2`, `b = 5`, `a = a + b`, `b = a + b`, quels nombres sont affichés par les deux instructions `print` ?

2 puis 7
7 puis 12
7 puis 9
12 puis 17

7 puis 12

Explication

La première addition donne à `a` la valeur 7, puis le calcul de `b` utilise cette nouvelle valeur de `a` et donne 12. Le résultat 7 puis 9 correspondrait à l’utilisation persistante de la valeur initiale de `a`, ce qui ne respecte pas l’exécution séquentielle.

6. Dans quel ordre une boucle `while` fonctionne-t-elle lors d’une itération ?

Elle évalue la condition, quitte la boucle si elle est vraie, puis exécute le corps
Elle exécute le corps, ignore la condition, puis quitte la boucle
Elle exécute le corps, transforme la condition en valeur vraie, puis recommence
Elle évalue la condition, exécute le corps si elle est vraie, puis la réévalue

Elle évalue la condition, exécute le corps si elle est vraie, puis la réévalue

Explication

La boucle commence par évaluer sa condition, exécute le corps si cette condition vaut `True`, puis l’évalue de nouveau. Elle s’arrête dès que la condition vaut `False`, contrairement à l’idée qu’une condition vraie provoquerait la sortie.

7. Quel est le principe d’une boucle for\text{for} ?

Comparer deux valeurs et conserver la plus grande
Répéter un traitement tant qu’une condition booléenne est vraie
Exécuter un traitement après la définition d’une fonction
Répéter un traitement pour chaque élément d’un objet itérable

Répéter un traitement pour chaque élément d’un objet itérable

Explication

Une boucle for\text{for} parcourt les éléments fournis par un objet itérable et applique le traitement à chacun. La répétition fondée sur une condition booléenne caractérise plutôt while\text{while}.

8. Quelle situation illustre l’aliasing en Python ?

Après `a = 0`, la variable `a` cesse de référencer toute valeur
Après `a == b`, les deux variables reçoivent une nouvelle valeur commune
Après `a = b`, les deux variables référencent la même valeur
Après `a + b`, les deux variables sont remplacées par leur somme

Après `a = b`, les deux variables référencent la même valeur

Explication

L’aliasing apparaît lorsqu’une affectation de la forme `a = b` fait que les deux noms désignent la même valeur. L’opérateur `==`, lui, compare des valeurs et ne réalise pas cette mise en commun des références.

9. Quel énoncé décrit le mieux une fonction informatique ?

Une formule mathématique qui associe chaque entrée à une sortie
Une variable qui mémorise une valeur pendant l’exécution
Un fragment de programme qui isole un traitement réutilisable
Une instruction qui répète un traitement selon une condition

Un fragment de programme qui isole un traitement réutilisable

Explication

Une fonction informatique regroupe un traitement réutilisable et peut recevoir des données d’entrée ou produire des résultats. Une fonction mathématique désigne une autre notion et ne correspond pas à cette définition en programmation.

10. Que devient l’ancienne référence d’une variable lorsqu’une nouvelle affectation lui attribue une autre valeur ?

Elle est conservée et devient automatiquement une seconde variable
Elle est convertie en référence vers la valeur nouvellement affectée
Elle est déplacée vers la variable qui apparaît dans l’expression de droite
Elle est détruite, tandis que la nouvelle référence est établie

Elle est détruite, tandis que la nouvelle référence est établie

Explication

Une nouvelle affectation remplace la référence portée par la variable et détruit son ancienne référence. Cela ne signifie pas que la valeur précédemment référencée est détruite par l’affectation.

11. Quelle structure respecte la syntaxe de définition d’une fonction en Python ?

function calcul(x)\text{function calcul}(x) suivi d’un corps non indenté
def calcul(x)\text{def calcul}(x) suivi d’un corps non indenté
calcul def(x):\text{calcul def}(x): suivi d’un corps indenté
def calcul(x):\text{def calcul}(x): suivi d’un corps indenté

$$\text{def calcul}(x):$$ suivi d’un corps indenté

Explication

Une définition Python commence par def\text{def}, comporte un nom et des paramètres, puis un deux-points et un corps indenté contenant une instruction. Le corps non indenté ou l’ordre incorrect des mots-clés ne respecte pas cette syntaxe.

12. Que fait une instruction `if` lorsque l’expression booléenne évaluée vaut `True` ?

Elle affiche automatiquement un message à l’écran
Elle réévalue la condition après chaque instruction
Elle exécute le corps associé à l’instruction
Elle exécute le corps associé à `else`

Elle exécute le corps associé à l’instruction

Explication

Une instruction `if` exécute son corps lorsque l’expression booléenne produit `True`. Le corps de `else` intervient dans la forme correspondante lorsque la condition est fausse.

13. Laquelle de ces affirmations décrit correctement les valeurs du type booléen ?

Les nombres 0 et 1 constituent les seules valeurs du type booléen
Toute expression non vide est une valeur booléenne de type True
Les chaînes de caractères "True" et "False" sont les deux valeurs booléennes
Les seules valeurs booléennes sont True et False

Les seules valeurs booléennes sont True et False

Explication

Le type booléen possède deux valeurs : True et False. Les formes placées entre guillemets, comme "True" et "False", sont des chaînes de caractères et non des valeurs booléennes.

14. Dans l’appel décrit par truc(10,20)\text{truc}(10,20), que renvoie la fonction si elle calcule c=30c=30 puis retourne c+10c+10 ?

1010
4040
3030
2020

$$40$$

Explication

Les arguments donnent x=10x=10 et y=20y=20, donc le calcul produit c=30c=30, puis l’expression retournée vaut 30+10=4030+10=40. La valeur 3030 est un résultat intermédiaire et non la valeur retournée.

15. Quelle syntaxe permet d’écrire correctement une boucle for\text{for} en Python ?

for eˊleˊment from iteˊrable:\text{for élément from itérable:} suivi d’un corps indenté
for eˊleˊment in iteˊrable\text{for élément in itérable} suivi d’un corps non indenté
for eˊleˊment in iteˊrable:\text{for élément in itérable:} suivi d’un corps indenté
while eˊleˊment in iteˊrable:\text{while élément in itérable:} suivi d’un corps indenté

$$\text{for élément in itérable:}$$ suivi d’un corps indenté

Explication

La syntaxe attendue contient for\text{for}, une variable, in\text{in}, un itérable, puis un deux-points et un corps indenté. Le mot-clé from\text{from}, l’absence de deux-points ou l’absence d’indentation rendent la structure incorrecte.

16. Lors d’une affectation Python, que se passe-t-il avec l’expression située à droite du signe égal ?

Elle est ignorée lorsque la variable de gauche existe déjà en mémoire
Elle est évaluée avant que la variable de gauche soit liée à son résultat
Elle est transformée en chaîne de caractères avant toute autre opération
Elle est exécutée après la création de la variable située à gauche

Elle est évaluée avant que la variable de gauche soit liée à son résultat

Explication

Python commence par évaluer l’expression de droite, puis il crée ou modifie la référence de la variable de gauche vers la valeur obtenue. Une variable déjà existante peut donc voir sa référence modifiée, mais l’expression n’est pas ignorée.

17. Dans une structure `if ... else`, quel bloc est exécuté lorsque la condition est fausse ?

Le bloc placé après la structure
Le bloc placé dans la condition
Le bloc placé après `else`
Le bloc placé avant `if`

Le bloc placé après `else`

Explication

Lorsque la condition du `if` est fausse, le programme exécute le corps associé à `else`. Le corps du `if` correspond au cas où la condition est vraie.

18. Dans quel ordre Python traite-t-il une instruction d’affectation comme `resultat = x + 3` ?

Évaluer la gauche, créer la droite, puis calculer la valeur de l’expression
Créer la gauche, établir sa référence, puis évaluer l’expression de droite
Évaluer la droite, chercher ou créer la gauche, puis établir la référence
Chercher la gauche, ignorer sa valeur précédente, puis évaluer l’expression

Évaluer la droite, chercher ou créer la gauche, puis établir la référence

Explication

L’exécution commence par le calcul de l’expression située à droite, se poursuit par la recherche ou la création de la variable de gauche, puis établit la référence vers le résultat. La valeur antérieure de la variable n’est pas une étape de calcul de l’expression.

19. Quelle distinction entre `==` et `=` est correcte en Python ?

`==` crée un alias, tandis que `=` calcule une inégalité
`==` affecte une valeur, tandis que `=` compare deux expressions
`==` compare deux valeurs, tandis que `=` réalise une affectation
`==` combine deux booléens, tandis que `=` nie une expression

`==` compare deux valeurs, tandis que `=` réalise une affectation

Explication

L’opérateur `==` produit un résultat booléen en comparant deux valeurs, alors que `=` associe une variable à la valeur obtenue par une expression. Confondre ces symboles revient à confondre comparaison et affectation.

Révisez avec les flashcards

Mémorisez les réponses avec 45 flashcards sur Programmation Python : bases et contrôle.

Qu'est-ce que l'affectation en programmation ?

L'affectation évalue l'expression à droite, stocke sa valeur et crée ou modifie la référence de la variable à gauche.

Quelle est la première étape pour exécuter une affectation en Python ?

Python évalue d'abord l'expression située à droite de l'égalité.

Que fait Python après avoir évalué l'expression de droite lors d'une affectation ?

Python cherche ou crée la variable située à gauche de l'égalité.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Programmation Python : bases et contrôle.

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