QCM : Instructions conditionnelles en Python (11 questions)

Questions et réponses du QCM

1. Lorsqu’un programme exécute une séquence d’instructions, dans quel ordre les instructions sont-elles réalisées ?

Selon les valeurs obtenues pendant l’exécution
Dans l’ordre inverse de leur apparition
Toutes simultanément, sans ordre particulier
Dans l’ordre où elles apparaissent

Dans l’ordre où elles apparaissent

Explication

Une séquence exécute les instructions l’une après l’autre, dans l’ordre où elles apparaissent. L’ordre inverse, l’exécution simultanée et un ordre dépendant des valeurs ne décrivent pas cette règle.

2. Si a vaut 3 et b vaut 7 au départ, quelles valeurs obtient-on après l’exécution successive de « b = a » puis « a = b » ?

a vaut 3 et b vaut 3
a vaut 7 et b vaut 7
a vaut 7 et b vaut 3
a vaut 3 et b vaut 7

a vaut 3 et b vaut 3

Explication

D’abord, « b = a » donne à b la valeur 3; ensuite, « a = b » donne aussi 3 à a. Le résultat a = 7 et b = 7 correspond à l’ordre inverse, tandis que les autres résultats ne suivent pas les affectations exécutées.

3. Dans un programme Python, une ligne d’introduction se termine par deux-points et est suivie de plusieurs lignes indentées : quel rôle joue chacun de ces éléments ?

Les deux-points délimitent le bloc et l’indentation l’annonce
Les deux-points et l’indentation servent tous deux à annoncer le bloc
Les deux-points annoncent le bloc et l’indentation le délimite
Les deux-points terminent le bloc et l’indentation le rend facultatif

Les deux-points annoncent le bloc et l’indentation le délimite

Explication

Les deux-points signalent qu’un bloc doit suivre, et l’indentation permet à Python de reconnaître ses limites. Dire que les deux-points délimitent le bloc inverse les rôles; les deux-points ne le terminent pas et l’indentation n’est pas facultative.

4. Dans un programme, deux instructions sont indentées au même niveau après une ligne d’introduction, puis une troisième instruction revient à la marge : laquelle appartient au bloc introduit ?

Les deux instructions indentées et celle à la marge
L’instruction à la marge seulement
La dernière instruction indentée seulement
Les deux instructions indentées

Les deux instructions indentées

Explication

Les instructions au même niveau d’indentation appartiennent au même bloc, qui prend fin lorsque l’indentation diminue. L’instruction à la marge se trouve hors du bloc; des niveaux différents ne sont pas requis pour regrouper les deux autres.

5. Que désigne une condition en Python ?

Une instruction composée qui définit un bloc indenté
Une séquence d’instructions exécutées dans un ordre donné
Une expression booléenne dont la valeur est True ou False
Une opération arithmétique qui produit un nombre entier

Une expression booléenne dont la valeur est True ou False

Explication

Une condition est une expression de type bool, qui prend la valeur True ou False. Une instruction composée définit plutôt un bloc d’instructions à l’aide de l’indentation.

6. Dans l’expression `(21 > 42) or (42 == (48/0))`, quel comportement entraîne l’évaluation de `or` ?

La seconde expression n’est pas évaluée puisque la première est fausse.
L’opérateur `or` transforme la première expression fausse en valeur vraie.
La seconde expression est évaluée, mais la division par zéro renvoie zéro.
La seconde expression est évaluée et provoque une erreur de division par zéro.

La seconde expression est évaluée et provoque une erreur de division par zéro.

Explication

Comme la première expression est fausse, `or` doit évaluer la seconde pour déterminer le résultat, ce qui déclenche une division par zéro. À l’inverse, une première expression vraie aurait permis à `or` de renvoyer True sans évaluer la suite.

7. Quel est le rôle de la loi de Morgan lorsqu’on nie une conjonction logique ?

Transformer sa négation en disjonction des négations de chaque terme
Inverser l’ordre des termes sans modifier les opérateurs logiques
Transformer sa négation en conjonction des négations de chaque terme
Remplacer chaque négation par une conjonction des termes initiaux

Transformer sa négation en disjonction des négations de chaque terme

Explication

La loi de Morgan exprime que nier une conjonction revient à nier chacun de ses termes et à les relier par une disjonction. La conjonction des négations est une transformation incorrecte, car elle ne préserve pas l’équivalence logique dans tous les cas.

8. Quelle différence distingue les blocs `if` et `else` dans une alternative simple ?

Le bloc `if` s’exécute si la condition est fausse, tandis que le bloc `else` s’exécute si elle est vraie.
Le bloc `if` s’exécute si la condition est vraie, tandis que le bloc `else` s’exécute si elle est fausse.
Les deux blocs s’exécutent lorsque la condition est vraie, mais dans un ordre différent.
Le bloc `if` choisit une condition, tandis que le bloc `else` la transforme en valeur booléenne.

Le bloc `if` s’exécute si la condition est vraie, tandis que le bloc `else` s’exécute si elle est fausse.

Explication

Dans une alternative, la condition détermine le choix : le conséquent associé à `if` est exécuté si elle est vraie, et l’alternant associé à `else` si elle est fausse. Inverser ces rôles, comme le fait une option plausible, attribuerait chaque bloc à la mauvaise valeur de vérité.

9. Dans une chaîne `if/elif/else`, quel effet produit une condition vraie sur l’exécution des branches suivantes ?

Toutes les branches dont la condition est vraie s’exécutent successivement.
La branche correspondante s’exécute et les branches suivantes sont ignorées.
La branche `else` s’exécute avant que les autres conditions soient évaluées.
La branche correspondante s’exécute, puis toutes les branches suivantes sont testées.

La branche correspondante s’exécute et les branches suivantes sont ignorées.

Explication

Les conditions sont examinées dans l’ordre, et l’exécution s’arrête après la première branche correspondante. Contrairement à plusieurs instructions `if` indépendantes, une chaîne `if/elif/else` ne poursuit pas les tests après avoir trouvé une condition vraie.

10. Un programme doit afficher une seule catégorie d’âge selon des seuils successifs : quelle structure faut-il utiliser pour éviter que plusieurs messages s’affichent lorsque plusieurs tests sont vrais ?

Une instruction `if` suivie de plusieurs blocs `else`
Plusieurs instructions `if` indépendantes, chacune avec son propre message
Une suite d’instructions sans condition, exécutée dans l’ordre
Une chaîne `if/elif`, qui retient la première branche vraie

Une chaîne `if/elif`, qui retient la première branche vraie

Explication

Dans une chaîne `if/elif`, les conditions sont examinées dans l’ordre et une seule branche correspondante est exécutée, ce qui convient à l’affichage d’une catégorie unique. Des `if` indépendants peuvent tous être vrais et afficher plusieurs messages.

11. Si a vaut 3 et b vaut 7 au départ, quelles valeurs obtient-on après l’exécution successive de « a = b » puis « b = a » ?

a vaut 3 et b vaut 3
a vaut 3 et b vaut 7
a vaut 7 et b vaut 7
a vaut 7 et b vaut 3

a vaut 7 et b vaut 7

Explication

La première affectation donne à a la valeur 7, puis la seconde copie cette nouvelle valeur dans b. À l’inverse, commencer par « b = a » ferait perdre la valeur initiale 7 de b.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Instructions conditionnelles en Python.

Dans quel ordre une séquence d’instructions exécute-t-elle ses instructions ?

Dans leur ordre d’apparition.

De quoi se compose une instruction composée en Python ?

D’une ligne d’introduction terminée par deux-points et d’un bloc indenté.

Après a = b puis b = a, quelles valeurs obtient-on si a = 3 et b = 7 au départ ?

a = 7 et b = 7.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Instructions conditionnelles en 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