<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/SNT/3. Entrées et sorties</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Afficher avec print : plusieurs valeurs, texte et variables, ordre des<br/>
affichages ; saisir avec input, qui renvoie toujours une chaîne, et<br/>
convertir la saisie ; lire les messages d'erreur les plus courants.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q01 : Afficher plusieurs valeurs</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>largeur = 640
hauteur = 480
print(largeur, hauteur)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>print</code> accepte plusieurs arguments séparés par des virgules et les<br/>
affiche sur une même ligne, séparés par une espace. C'est la façon la<br/>
plus simple de mêler texte et nombres.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>640 480</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>print</code> affiche ses arguments les uns après les<br/>
autres, séparés par une espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>640480</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule entre les arguments fait insérer une espace<br/>
entre les valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>640, 480</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule sépare les arguments de <code>print</code>, elle n'est<br/>
pas affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>largeur hauteur</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>print</code> affiche les valeurs des variables, pas leurs<br/>
noms.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q02 : Texte et variable</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>nom = "Lina"
print("Bonjour", nom)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Entre guillemets, un texte est affiché tel quel ; sans guillemets, un<br/>
nom désigne une variable dont on affiche la valeur. Les guillemets<br/>
eux-mêmes n'apparaissent jamais.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Bonjour Lina</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le texte entre guillemets est affiché tel quel,<br/>
puis la valeur de <code>nom</code>, avec une espace entre les deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Bonjour nom</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>nom</code> désigne la variable, dont<br/>
<code>print</code> affiche la valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>BonjourLina</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : deux arguments séparés par une virgule sont affichés<br/>
avec une espace entre eux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"Bonjour", "Lina"</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les guillemets délimitent la chaîne dans le programme,<br/>
ils ne sont pas affichés.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q03 : Le type d'une saisie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>reponse = input("Combien de photos ? ")
print(type(reponse))</code></pre>
<p>L'utilisateur tape 12 puis Entrée. Qu'affiche la deuxième ligne ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Quoi que tape l'utilisateur, <code>input</code> renvoie une chaîne de<br/>
caractères. Pour obtenir un nombre, il faut convertir la saisie avec<br/>
<code>int</code> ou <code>float</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>&lt;class 'str'&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>input</code> renvoie toujours une chaîne, ici <code>"12"</code>,<br/>
même si l'utilisateur a tapé des chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;class 'int'&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>input</code> ne devine pas que le texte représente un<br/>
nombre. Il renvoie la chaîne <code>"12"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>type</code> affiche le type de la valeur, pas la valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;class 'float'&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune conversion n'a lieu, la saisie reste une chaîne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q04 : Une multiplication surprenante</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>n = input("Nombre de copies : ")
print(n * 2)</code></pre>
<p>L'utilisateur tape 4. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comme <code>input</code> renvoie une chaîne, <code>n * 2</code> répète le texte au lieu de<br/>
multiplier le nombre. Il fallait écrire <code>n = int(input(...))</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>44</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>n</code> est la chaîne <code>"4"</code>, et une chaîne<br/>
multipliée par 2 est répétée 2 fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>8</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 8 exigerait un entier. Sans conversion, <code>n</code> est la<br/>
chaîne <code>"4"</code>, qui est répétée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, on ne multiplie pas une chaîne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une chaîne multipliée par un entier est répétée, sans<br/>
erreur. C'est un piège classique.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4 4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la répétition colle les copies sans espace.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q05 : Convertir la saisie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>On veut que <code>n</code> soit un entier utilisable dans un calcul. Quelle<br/>
ligne est correcte ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'ordre est toujours le même : <code>input</code> d'abord, pour lire la chaîne,<br/>
puis <code>int</code> ou <code>float</code> autour, pour la convertir. La question posée<br/>
reste l'argument de <code>input</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>n = int(input("Nombre : "))</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>input</code> lit la chaîne, puis <code>int</code> la convertit<br/>
en entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>n = input(int("Nombre : "))</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int("Nombre : ")</code> tente de convertir le texte de la<br/>
question en nombre, ce qui échoue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>n = input("Nombre : ") + 0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ajouter 0 à une chaîne provoque une erreur. Il faut<br/>
convertir avec <code>int</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>n = int("Nombre : ")</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : rien n'est saisi, et la conversion du texte échoue.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q06 : Une saisie qui n'est pas un nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>age = int(input("Âge : "))</code></pre>
<p>L'utilisateur tape <code>quinze</code>. Que se passe-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int</code> convertit une chaîne seulement si elle représente un entier.<br/>
Sinon, une erreur <code>ValueError</code> arrête le programme : un programme<br/>
sérieux doit prévoir une saisie inattendue.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>age</code> vaut 15, Python reconnaît le mot</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> ne lit que des chiffres. Il ne connaît pas les<br/>
nombres écrits en lettres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Python signale une erreur, <code>int</code> ne convertit pas <code>quinze</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le message est <code>ValueError</code>. La conversion ne<br/>
réussit que si la chaîne représente un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>age</code> vaut 0, valeur par défaut en cas d'échec</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une conversion impossible arrête le programme, elle ne<br/>
renvoie pas 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>age</code> vaut la chaîne <code>quinze</code>, sans conversion</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> ne renvoie jamais une chaîne. Il échoue et le<br/>
programme s'arrête.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q07 : Avec ou sans guillemets</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>ville = "Lyon"
print("ville")
print(ville)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les guillemets font toute la différence : <code>"ville"</code> est un texte,<br/>
<code>ville</code> est une variable. Confondre les deux est une erreur<br/>
fréquente au début.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>ville</code> puis <code>Lyon</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre guillemets, <code>ville</code> est un texte affiché<br/>
tel quel ; sans guillemets, c'est la variable, qui vaut <code>Lyon</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Lyon</code> puis <code>Lyon</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le premier <code>print</code> reçoit une chaîne, pas la variable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ville</code> puis <code>ville</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le second <code>print</code> affiche la valeur de la variable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Lyon</code> puis <code>ville</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'inverse, les guillemets sont sur la première<br/>
ligne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q08 : Construire un message</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>nb = 3
print("Il reste " + str(nb) + " places")</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour insérer un nombre dans un message par concaténation, on le<br/>
convertit avec <code>str</code> et on n'oublie pas les espaces dans les textes.<br/>
<code>print("Il reste", nb, "places")</code> donnerait le même affichage.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Il reste 3 places</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>str(nb)</code> donne <code>"3"</code>, et les trois chaînes sont<br/>
collées bout à bout, avec les espaces prévues dans les textes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Il reste nb places</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>nb</code> sans guillemets désigne la valeur 3, convertie en<br/>
chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, on ne colle pas un nombre à un texte</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est précisément le rôle de <code>str(nb)</code>, qui transforme<br/>
le nombre en chaîne avant la concaténation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Il reste 3places</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'espace avant <code>places</code> fait partie de la chaîne<br/>
<code>" places"</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q09 : Deux print, deux lignes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>print("Pile")
print("Face")</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chaque <code>print</code> écrit une ligne complète et passe à la suivante. Pour<br/>
afficher plusieurs valeurs sur une même ligne, on les passe au même<br/>
<code>print</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Pile</code> sur une ligne, <code>Face</code> sur la suivante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque appel de <code>print</code> termine sa ligne. Deux<br/>
appels donnent deux lignes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Pile Face</code> sur une seule ligne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait <code>print("Pile", "Face")</code>. Deux appels séparés<br/>
produisent deux lignes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>PileFace</code>, collés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un <code>print</code> revient à la ligne après son affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Seulement <code>Face</code>, le premier affichage est écrasé</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un affichage n'efface pas le précédent, les lignes se<br/>
suivent.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q10 : L'ordre des affichages</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>print("Début")
n = int(input("Valeur : "))
print(n + 1)
print("Fin")</code></pre>
<p>L'utilisateur tape 9. Qu'affiche le programme, dans l'ordre ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le programme attend la saisie au moment où il rencontre <code>input</code>, puis<br/>
continue. Les affichages apparaissent dans l'ordre des instructions.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Début</code>, <code>10</code>, <code>Fin</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les lignes s'exécutent dans l'ordre, et <code>n + 1</code><br/>
vaut 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Début</code>, <code>9</code>, <code>Fin</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche <code>n + 1</code>, pas <code>n</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>10</code>, <code>Début</code>, <code>Fin</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>Début</code> est affiché avant la saisie, donc avant le<br/>
calcul.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Début</code>, <code>Fin</code>, <code>10</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les affichages suivent l'ordre des lignes du programme.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q11 : Une saisie décimale</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>t = float(input("Température : "))
print(t + 1)</code></pre>
<p>L'utilisateur tape 19.5. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour une saisie décimale, on convertit avec <code>float</code>, et le point est<br/>
le séparateur décimal. <code>int</code> échouerait sur <code>"19.5"</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>20.5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>float</code> convertit <code>"19.5"</code> en nombre à virgule,<br/>
auquel on ajoute 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>19.51</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait une concaténation de chaînes. La conversion<br/>
en <code>float</code> permet une vraie addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>float</code> ne lit pas un point</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le point est justement le séparateur décimal attendu<br/>
par <code>float</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>20</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat garde ses décimales, 19.5 plus 1 fait 20.5.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q12 : Lire un message d'erreur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un programme s'arrête avec le message :</p>
<pre><code>NameError: name 'prix' is not defined</code></pre>
<p>Que signifie-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le type de l'erreur renseigne sur la cause : <code>NameError</code> pour un nom<br/>
inconnu, <code>TypeError</code> pour des types incompatibles, <code>ValueError</code> pour<br/>
une conversion impossible. Lire le message est la première étape du<br/>
débogage.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La variable <code>prix</code> est utilisée avant d'avoir reçu une valeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>NameError</code> signale un nom inconnu. Soit<br/>
l'affectation manque, soit le nom est mal orthographié.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le mot <code>prix</code> est interdit en Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>prix</code> est un nom valide. Le message dit qu'il n'a pas<br/>
de valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La valeur de <code>prix</code> n'est pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un problème de type donnerait <code>TypeError</code> ou<br/>
<code>ValueError</code>. Ici, la variable n'existe pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le programme n'a pas trouvé le fichier <code>prix</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le message parle d'un nom de variable, pas d'un<br/>
fichier.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q13 : Un autre message d'erreur</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un programme s'arrête avec le message :</p>
<pre><code>TypeError: can only concatenate str (not "int") to str</code></pre>
<p>Quelle instruction a pu le provoquer ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le message cite les deux types en conflit, <code>str</code> et <code>int</code>, et<br/>
l'opération, la concaténation. La correction consiste à convertir<br/>
l'entier avec <code>str</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un <code>+</code> entre une chaîne et un entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : Python explique qu'il ne peut coller à une<br/>
chaîne qu'une autre chaîne, pas un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une division par zéro</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une division par zéro donne <code>ZeroDivisionError</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une variable jamais définie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce cas donne <code>NameError</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une parenthèse manquante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une parenthèse manquante donne <code>SyntaxError</code>, avant<br/>
même l'exécution.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q14 : Une parenthèse oubliée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>print("Résultat :", 4 * 5</code></pre>
<p>Que se passe-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une erreur de syntaxe est détectée avant l'exécution : le programme<br/>
ne démarre pas. Parenthèses, guillemets et deux-points oubliés en<br/>
sont les causes les plus fréquentes.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche <code>Résultat : 20</code>, la parenthèse est facultative</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : toute parenthèse ouverte doit être fermée. Python ne<br/>
devine pas où elle manque.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Python signale une erreur de syntaxe, la parenthèse n'est pas fermée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : c'est une <code>SyntaxError</code>, détectée avant<br/>
l'exécution. Rien n'est affiché.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche <code>Résultat : 4 * 5</code> sans calculer</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme n'est même pas exécuté, faute d'une<br/>
syntaxe correcte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche <code>Résultat :</code> puis s'arrête au calcul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une erreur de syntaxe empêche tout affichage.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q15 : Afficher un calcul</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>print(7 * 6)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>print</code> évalue d'abord ce qu'on lui donne : un calcul est effectué,<br/>
et seul son résultat est affiché.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>42</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sans guillemets, <code>7 * 6</code> est un calcul, et<br/>
<code>print</code> affiche son résultat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7 * 6</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait l'affichage de la chaîne <code>"7 * 6"</code>, avec<br/>
guillemets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>76</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>*</code> multiplie deux nombres, il ne colle pas des<br/>
chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"42"</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>print</code> n'ajoute jamais de guillemets autour d'un<br/>
nombre.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q16 : Chaîne ou calcul</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>print("7 * 6")</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Ce qui est entre guillemets n'est jamais évalué. <code>"7 <em> 6"</code> est un<br/>
texte de cinq caractères, <code>7 </em> 6</code> un calcul qui vaut 42.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>7 * 6</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre guillemets, c'est un texte, affiché tel<br/>
quel, sans aucun calcul.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>42</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python ne calcule pas à l'intérieur d'une chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>76</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : rien n'est calculé, le texte est affiché tel quel.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, une chaîne ne contient pas d'opérateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une chaîne peut contenir n'importe quel caractère, y<br/>
compris <code>*</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q17 : Deux saisies additionnées</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>a = input("a : ")
b = input("b : ")
print(int(a) + int(b), a + b)</code></pre>
<p>L'utilisateur tape 5 puis 6. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même <code>+</code> additionne des entiers et concatène des chaînes. Cet<br/>
exemple montre les deux comportements côte à côte, à partir des<br/>
mêmes saisies.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>11 56</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : convertis en entiers, 5 et 6 s'additionnent en<br/>
11 ; en chaînes, <code>"5" + "6"</code> donne <code>"56"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>11 11</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>a</code> et <code>b</code> restent des chaînes, <code>a + b</code> les concatène.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>56 56</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int(a) + int(b)</code> est une vraie addition, qui vaut 11.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>56 11</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est l'ordre inverse, l'addition d'entiers vient en<br/>
premier.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q18 : Une valeur calculée puis affichée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>prix = 12
prix = prix * 3
print("Total :", prix)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>print("Total :", prix)</code> affiche le texte, puis la valeur de la<br/>
variable, séparés par une espace. On affiche toujours la valeur<br/>
courante, après les modifications.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Total : 36</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>prix</code> vaut 36 au moment de l'affichage, et<br/>
<code>print</code> sépare ses deux arguments par une espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Total : 12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la deuxième ligne a multiplié <code>prix</code> par 3 avant<br/>
l'affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Total : prix</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>prix</code> est la variable, dont la valeur<br/>
est affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Total :36</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>print</code> insère une espace entre ses arguments.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q19 : Une saisie qui n'est pas un nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un robot reçoit ses commandes sous la forme d'une lettre et d'un<br/>
nombre, comme <code>A50</code>.</p>
<pre><code>commande = input("Commande : ")
print("Reçu :", commande)</code></pre>
<p>L'utilisateur tape <code>A50</code>. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>input</code> accepte n'importe quel texte et le renvoie sans le modifier.<br/>
Ce n'est qu'en appelant <code>int</code> ou <code>float</code> que le contenu doit être un<br/>
nombre.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Reçu : A50</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>input</code> renvoie la chaîne saisie, quelle qu'elle<br/>
soit, et <code>print</code> l'affiche après le texte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Commande : A50</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>Commande :</code> est la question posée par <code>input</code>, pas ce<br/>
qu'affiche <code>print</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>A50</code> n'est pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune conversion n'est demandée, <code>input</code> accepte<br/>
n'importe quel texte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Reçu : commande</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>commande</code> est la variable, dont la<br/>
valeur est affichée.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q20 : Afficher un flottant arrondi</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>moyenne = 14.6667
print(round(moyenne, 1))</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>round(x, n)</code> arrondit <code>x</code> à <code>n</code> décimales, au plus proche. Sans<br/>
second argument, <code>round(x)</code> arrondit à l'entier. C'est utile pour<br/>
afficher un résultat lisible.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>14.7</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>round(x, 1)</code> arrondit à une décimale. 14.6667<br/>
est plus proche de 14.7 que de 14.6.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>14.6</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>round</code> arrondit au plus proche, il ne tronque pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>15</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 15 serait <code>round(moyenne)</code>, sans décimale. Le second<br/>
argument demande une décimale.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>14.67</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 14.67 serait l'arrondi à deux décimales.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q21 : Deux textes dans un même print</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print("Bonjour", "Lou")</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Séparer les arguments de <code>print</code> par des virgules affiche tout sur<br/>
une ligne, avec un espace entre chaque valeur.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Bonjour Lou</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>print</code> affiche ses arguments les uns après les<br/>
autres, séparés par un espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>BonjourLou</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule de <code>print</code> insère un espace entre les<br/>
valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Bonjour, Lou</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule sépare les arguments, elle n'est pas<br/>
affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Bonjour</code> puis <code>Lou</code> sur deux lignes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un seul <code>print</code> produit une seule ligne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q22 : Un texte et un nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print("Total :", 12)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec des virgules, <code>print</code> affiche des valeurs de types différents<br/>
sans conversion.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Total : 12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>print</code> accepte un texte et un nombre, et les<br/>
affiche séparés par un espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Total :12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule ajoute un espace entre les deux valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Total : n</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 12 est écrit sans guillemets, c'est un nombre dont la<br/>
valeur est affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, car on ne peut pas mélanger texte et nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est <code>+</code> qui refuse le mélange, pas la virgule de<br/>
<code>print</code>.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q23 : Une saisie doublée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>L'utilisateur tape <code>7</code> puis Entrée. Qu'affiche ce programme ?<br/>
<pre><code>n = int(input("Nombre ? "))
print(n * 2)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int(input(...))</code> est le schéma habituel pour lire un entier au<br/>
clavier.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>14</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>int</code> transforme la saisie <code>"7"</code> en entier,<br/>
et <code>n * 2</code> vaut 14.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>77</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat sans <code>int</code>, la chaîne <code>"7"</code><br/>
répétée deux fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>n * 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>print</code> affiche le résultat du calcul, pas son<br/>
écriture.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>input</code> ne renvoyant pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>input</code> renvoie une chaîne, mais <code>int</code> la convertit<br/>
aussitôt en nombre.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q24 : Une multiplication affichée en toutes lettres</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print(3, "fois", 4, "=", 3 * 4)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>print</code> évalue chaque argument, texte ou calcul, puis affiche le<br/>
tout sur une ligne.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>3 fois 4 = 12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : cinq valeurs sont affichées, séparées par des<br/>
espaces, la dernière étant le résultat du calcul <code>3 * 4</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3 fois 4 = 3 * 4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>3 * 4</code> sans guillemets est un calcul, dont seul le<br/>
résultat est affiché.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3fois4=12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque virgule ajoute un espace dans l'affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3 fois 4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le signe <code>=</code> et le résultat du calcul sont affichés<br/>
aussi.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q25 : Un nombre collé à un texte</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que produit <code>print("Il reste " + 3 + " places")</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour insérer un nombre dans un message, soit on le convertit avec<br/>
<code>str</code>, soit on sépare les arguments de <code>print</code> par des virgules.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une erreur, <code>+</code> refusant d'assembler texte et nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>+</code> concatène deux chaînes ou additionne deux<br/>
nombres, mais refuse le mélange. Il faudrait <code>str(3)</code>, ou des<br/>
virgules.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Il reste 3 places</code>, le nombre étant converti automatiquement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat avec <code>str(3)</code> ou avec des<br/>
virgules à la place des <code>+</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Il reste + 3 + places</code>, les signes étant affichés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les <code>+</code> ne sont pas affichés, et le programme échoue<br/>
avant tout affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Il reste places</code>, le nombre étant ignoré</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le nombre n'est pas ignoré, c'est lui qui provoque<br/>
l'erreur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q26 : Deux saisies affichées à l'envers</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>L'utilisateur tape <code>Lyon</code> puis <code>Paris</code>. Qu'affiche ce programme ?<br/>
<pre><code>premier = input("Premier ? ")
second = input("Second ? ")
print(second, premier)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'ordre d'affichage est celui des arguments de <code>print</code>, pas celui<br/>
des saisies.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>Paris Lyon</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les saisies sont rangées dans l'ordre, mais<br/>
<code>print(second, premier)</code> les affiche dans l'ordre inverse.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Lyon Paris</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : regarde l'ordre des variables dans le <code>print</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>second premier</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>second</code> et <code>premier</code> sont des<br/>
variables, remplacées par leur valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>Premier ? Second ?</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ces textes sont les invites affichées pendant la<br/>
saisie, pas le résultat du <code>print</code> final.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q27 : Deux chaînes de chiffres converties</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print(int("3") + int("4"))</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Convertir avant de calculer : c'est la règle pour toute valeur<br/>
venue d'une saisie ou d'un texte.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>7</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les deux chaînes sont converties en entiers<br/>
avant l'addition, qui donne 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>34</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>"3" + "4"</code> collerait les chaînes, mais ici elles<br/>
sont converties en nombres avant le <code>+</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'7'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat d'une addition d'entiers est un entier,<br/>
affiché sans guillemets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>int</code> refusant les chaînes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> accepte une chaîne de chiffres et la convertit.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q28 : Deux divisions sur deux lignes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche ce programme ?<br/>
<pre><code>print(10 / 4)
print(10 // 4)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chaque appel de <code>print</code> termine sa ligne. Les deux divisions, <code>/</code><br/>
et <code>//</code>, ne donnent ni le même type ni la même valeur.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>2.5</code> puis <code>2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>/</code> donne le flottant 2.5, <code>//</code> le quotient<br/>
entier 2, et chaque <code>print</code> occupe sa ligne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code> puis <code>2.5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'ordre des lignes suit l'ordre des <code>print</code>, la<br/>
division réelle d'abord.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2.5 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : deux <code>print</code> produisent deux lignes, pas une seule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2</code> puis <code>2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>/</code> ne tronque pas, il renvoie un flottant.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q29 : Un prix saisi puis majoré</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>L'utilisateur tape <code>10</code>. Qu'affiche ce programme ?<br/>
<pre><code>prix = float(input("Prix ? "))
print(prix * 1.2)</code></pre></p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>float(input(...))</code> lit un nombre à virgule. Le résultat d'un<br/>
calcul avec un flottant est un flottant, affiché avec son point.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>12.0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la saisie est convertie en flottant, et le<br/>
produit par 1.2 est affiché avec sa partie décimale.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le même nombre, mais Python affiche toujours<br/>
un flottant avec un point décimal, même si sa valeur est entière.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>101.2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait une concaténation ; après <code>float</code>, <code>prix</code><br/>
est un nombre et <code>*</code> multiplie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>input</code> ne renvoyant pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>float</code> convertit la chaîne saisie en nombre à virgule<br/>
avant le calcul.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q30 : Un plus et une virgule dans le même print</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Qu'affiche <code>print("a" + "b", "c")</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Deux façons d'assembler dans un <code>print</code> : <code>+</code> concatène sans<br/>
espace, la virgule sépare par un espace.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>ab c</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>+</code> colle <code>"a"</code> et <code>"b"</code> sans espace, puis la<br/>
virgule sépare ce résultat de <code>"c"</code> par un espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>a b c</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>+</code> n'ajoute aucun espace entre les deux premières<br/>
chaînes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>abc</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule, elle, insère un espace avant <code>"c"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>a + b c</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le <code>+</code> est un opérateur, il n'est pas affiché.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
