<?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[<p>`<code>python<br/>
largeur = 640<br/>
hauteur = 480<br/>
print(largeur, hauteur)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>print 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="0" format="html">
    <text><![CDATA[<p>640, 480</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule sépare les arguments de print, elle n'est<br/>
pas affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>640 480</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : print 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>largeur hauteur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : print affiche les valeurs des variables, pas leurs<br/>
noms.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>640480</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>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q02 : Texte et variable</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
nom = "Lina"<br/>
print("Bonjour", nom)<br/>
</code>`</p>
<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="0" format="html">
    <text><![CDATA[<p>Bonjour nom</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, nom désigne la variable, dont<br/>
print affiche la valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>"Bonjour", "Lina"</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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Bonjour Lina</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le texte entre guillemets est affiché tel quel,<br/>
puis la valeur de nom, avec une espace entre les deux.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>BonjourLina</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>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q03 : Le type d'une saisie</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
reponse = input("Combien de photos ? ")<br/>
print(type(reponse))<br/>
</code>`</p>
<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, input renvoie une chaîne de<br/>
caractères. Pour obtenir un nombre, il faut convertir la saisie avec<br/>
int ou float.</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>&lt;class 'float'&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune conversion n'a lieu, la saisie reste une chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;class 'int'&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : input ne devine pas que le texte représente un<br/>
nombre. Il renvoie la chaîne "12".</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;class 'str'&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : input renvoie toujours une chaîne, ici "12",<br/>
même si l'utilisateur a tapé des chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : type affiche le type de la valeur, pas la valeur.</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[<p>`<code>python<br/>
n = input("Nombre de copies : ")<br/>
print(n * 2)<br/>
</code>`</p>
<p>L'utilisateur tape 4. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Comme input renvoie une chaîne, n * 2 répète le texte au lieu de<br/>
multiplier le nombre. Il fallait écrire n = int(input(...)).</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>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="100" format="html">
    <text><![CDATA[<p>44</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : n est la chaîne "4", 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>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 8 exigerait un entier. Sans conversion, n est la<br/>
chaîne "4", qui est répétée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4 4</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 n 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 : input d'abord, pour lire la chaîne,<br/>
puis int ou float autour, pour la convertir. La question posée<br/>
reste l'argument de input.</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>n = input("Nombre : ") + 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ajouter 0 à une chaîne provoque une erreur. Il faut<br/>
convertir avec int.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n = input(int("Nombre : "))</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int("Nombre : ") tente de convertir le texte de la<br/>
question en nombre, ce qui échoue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>n = int(input("Nombre : "))</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : input lit la chaîne, puis int la convertit<br/>
en entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n = int("Nombre : ")</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[<p>`<code>python<br/>
age = int(input("Âge : "))<br/>
</code></p>
<p>L'utilisateur tape quinze`. Que se passe-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int convertit une chaîne seulement si elle représente un entier.<br/>
Sinon, une erreur ValueError 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="100" format="html">
    <text><![CDATA[<p>Python signale une erreur, int ne convertit pas quinze</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le message est ValueError. 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>age 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>age vaut 15, Python reconnaît le mot</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int ne lit que des chiffres. Il ne connaît pas les<br/>
nombres écrits en lettres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>age vaut la chaîne quinze, sans conversion</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int 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[<p>`<code>python<br/>
ville = "Lyon"<br/>
print("ville")<br/>
print(ville)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les guillemets font toute la différence : "ville" est un texte,<br/>
ville 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="0" format="html">
    <text><![CDATA[<p>Lyon puis Lyon</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le premier print reçoit une chaîne, pas la variable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>ville puis ville</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le second print affiche la valeur de la variable.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>ville puis Lyon</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre guillemets, ville est un texte affiché<br/>
tel quel ; sans guillemets, c'est la variable, qui vaut Lyon.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lyon puis ville</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[<p>`<code>python<br/>
nb = 3<br/>
print("Il reste " + str(nb) + " places")<br/>
</code>`</p>
<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 str et on n'oublie pas les espaces dans les textes.<br/>
print("Il reste", nb, "places") 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="0" format="html">
    <text><![CDATA[<p>Il reste 3places</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'espace avant places fait partie de la chaîne<br/>
" places".</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il reste nb places</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : nb sans guillemets désigne la valeur 3, convertie en<br/>
chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Il reste 3 places</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : str(nb) donne "3", 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>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 str(nb), qui transforme<br/>
le nombre en chaîne avant la concaténation.</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[<p>`<code>python<br/>
print("Pile")<br/>
print("Face")<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chaque print é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/>
print.</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>Seulement Face, 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>PileFace, collés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un print revient à la ligne après son affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Pile sur une ligne, Face sur la suivante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : chaque appel de print termine sa ligne. Deux<br/>
appels donnent deux lignes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Pile Face sur une seule ligne</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait print("Pile", "Face"). Deux appels séparés<br/>
produisent deux lignes.</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[<p>`<code>python<br/>
print("Début")<br/>
n = int(input("Valeur : "))<br/>
print(n + 1)<br/>
print("Fin")<br/>
</code>`</p>
<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 input, 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>Début, 10, Fin</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les lignes s'exécutent dans l'ordre, et n + 1<br/>
vaut 10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Début, 9, Fin</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le programme affiche n + 1, pas n.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Début, Fin, 10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les affichages suivent l'ordre des lignes du programme.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10, Début, Fin</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Début est affiché avant la saisie, donc avant le<br/>
calcul.</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[<p>`<code>python<br/>
t = float(input("Température : "))<br/>
print(t + 1)<br/>
</code>`</p>
<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 float, et le point est<br/>
le séparateur décimal. int échouerait sur "19.5".</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>19.51</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait une concaténation de chaînes. La conversion<br/>
en float permet une vraie addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>20</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, float 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 float.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>20.5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : float convertit "19.5" en nombre à virgule,<br/>
auquel on ajoute 1.</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>
<p>`<code><br/>
NameError: name 'prix' is not defined<br/>
</code>`</p>
<p>Que signifie-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le type de l'erreur renseigne sur la cause : NameError pour un nom<br/>
inconnu, TypeError pour des types incompatibles, ValueError 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="0" format="html">
    <text><![CDATA[<p>Le programme n'a pas trouvé le fichier prix</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>La valeur de prix n'est pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un problème de type donnerait TypeError ou<br/>
ValueError. Ici, la variable n'existe pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Le mot prix est interdit en Python</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : prix est un nom valide. Le message dit qu'il n'a pas<br/>
de valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>La variable prix est utilisée avant d'avoir reçu une valeur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : NameError signale un nom inconnu. Soit<br/>
l'affectation manque, soit le nom est mal orthographié.</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>
<p>`<code><br/>
TypeError: can only concatenate str (not "int") to str<br/>
</code>`</p>
<p>Quelle instruction a pu le provoquer ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le message cite les deux types en conflit, str et int, et<br/>
l'opération, la concaténation. La correction consiste à convertir<br/>
l'entier avec str.</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>Une variable jamais définie</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce cas donne NameError.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Un + 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 parenthèse manquante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une parenthèse manquante donne SyntaxError, avant<br/>
même l'exécution.</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 ZeroDivisionError.</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[<p>`<code>python<br/>
print("Résultat :", 4 * 5<br/>
</code>`</p>
<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 Résultat : 4 * 5 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="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 SyntaxError, 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 Résultat : 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche Résultat : 20, 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>
</question>

<question type="multichoice">
  <name>
    <text>3. Entrées et sorties — Q15 : Afficher un calcul</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print(7 * 6)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>print é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="0" format="html">
    <text><![CDATA[<p>"42"</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : print n'ajoute jamais de guillemets autour d'un<br/>
nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>42</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : sans guillemets, 7 * 6 est un calcul, et<br/>
print affiche son résultat.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>76</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : * multiplie deux nombres, il ne colle pas des<br/>
chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>7 * 6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait l'affichage de la chaîne "7 * 6", avec<br/>
guillemets.</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[<p>`<code>python<br/>
print("7 * 6")<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Ce qui est entre guillemets n'est jamais évalué. "7 <em> 6" est un<br/>
texte de cinq caractères, 7 </em> 6 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="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 *.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>42</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="100" format="html">
    <text><![CDATA[<p>7 * 6</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>76</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : rien n'est calculé, le texte est affiché tel quel.</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[<p>`<code>python<br/>
a = input("a : ")<br/>
b = input("b : ")<br/>
print(int(a) + int(b), a + b)<br/>
</code>`</p>
<p>L'utilisateur tape 5 puis 6. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même + 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="0" format="html">
    <text><![CDATA[<p>11 11</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : a et b restent des chaînes, a + b les concatène.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>56 11</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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>56 56</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int(a) + int(b) est une vraie addition, qui vaut 11.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>11 56</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, "5" + "6" donne "56".</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[<p>`<code>python<br/>
prix = 12<br/>
prix = prix * 3<br/>
print("Total :", prix)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>print("Total :", prix) 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="0" format="html">
    <text><![CDATA[<p>Total :36</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : print insère une espace entre ses arguments.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Total : prix</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, prix est la variable, dont la valeur<br/>
est affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Total : 12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la deuxième ligne a multiplié prix par 3 avant<br/>
l'affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Total : 36</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : prix vaut 36 au moment de l'affichage, et<br/>
print sépare ses deux arguments par une espace.</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 A50.</p>
<p>`<code>python<br/>
commande = input("Commande : ")<br/>
print("Reçu :", commande)<br/>
</code></p>
<p>L'utilisateur tape A50`. Qu'affiche le programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>input accepte n'importe quel texte et le renvoie sans le modifier.<br/>
Ce n'est qu'en appelant int ou float 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="0" format="html">
    <text><![CDATA[<p>Commande : A50</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Commande : est la question posée par input, pas ce<br/>
qu'affiche print.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Reçu : commande</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, commande est la variable, dont la<br/>
valeur est affichée.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Reçu : A50</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : input renvoie la chaîne saisie, quelle qu'elle<br/>
soit, et print l'affiche après le texte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, A50 n'est pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune conversion n'est demandée, input accepte<br/>
n'importe quel texte.</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[<p>`<code>python<br/>
moyenne = 14.6667<br/>
print(round(moyenne, 1))<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>round(x, n) arrondit x à n décimales, au plus proche. Sans<br/>
second argument, round(x) 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="0" format="html">
    <text><![CDATA[<p>14.67</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 14.67 serait l'arrondi à deux décimales.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>15</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 15 serait round(moyenne), sans décimale. Le second<br/>
argument demande une décimale.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>14.6</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : round arrondit au plus proche, il ne tronque pas.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>14.7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : round(x, 1) arrondit à une décimale. 14.6667<br/>
est plus proche de 14.7 que de 14.6.</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 print("Bonjour", "Lou") ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Séparer les arguments de print 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>Bonjour Lou</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : print 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>Bonjour puis Lou sur deux lignes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un seul print produit une seule ligne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>BonjourLou</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule de print insère un espace entre les<br/>
valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Bonjour, Lou</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>
</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 print("Total :", 12) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Avec des virgules, print 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="0" format="html">
    <text><![CDATA[<p>Total : n</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>Total :12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule ajoute un espace entre les deux valeurs.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Total : 12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : print 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>Une erreur, car on ne peut pas mélanger texte et nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est + qui refuse le mélange, pas la virgule de<br/>
print.</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 7 puis Entrée. Qu'affiche ce programme ?<br/>
`<code>python<br/>
n = int(input("Nombre ? "))<br/>
print(n * 2)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int(input(...)) 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>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : int transforme la saisie "7" en entier,<br/>
et n * 2 vaut 14.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>77</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat sans int, la chaîne "7"<br/>
répétée deux fois.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, input ne renvoyant pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : input renvoie une chaîne, mais int la convertit<br/>
aussitôt en nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n * 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : print affiche le résultat du calcul, pas son<br/>
écriture.</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 print(3, "fois", 4, "=", 3 * 4) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>print é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="0" format="html">
    <text><![CDATA[<p>3fois4=12</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : chaque virgule ajoute un espace dans l'affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>3 fois 4 = 12</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 3 * 4.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3 fois 4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le signe = et le résultat du calcul sont affichés<br/>
aussi.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3 fois 4 = 3 * 4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 * 4 sans guillemets est un calcul, dont seul le<br/>
résultat est affiché.</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 print("Il reste " + 3 + " places") ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Pour insérer un nombre dans un message, soit on le convertit avec<br/>
str, soit on sépare les arguments de print 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="0" format="html">
    <text><![CDATA[<p>Il reste places, 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>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une erreur, + refusant d'assembler texte et nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : + concatène deux chaînes ou additionne deux<br/>
nombres, mais refuse le mélange. Il faudrait str(3), ou des<br/>
virgules.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il reste 3 places, le nombre étant converti automatiquement</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le résultat avec str(3) ou avec des<br/>
virgules à la place des +.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Il reste + 3 + places, les signes étant affichés</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les + ne sont pas affichés, et le programme échoue<br/>
avant tout affichage.</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 Lyon puis Paris. Qu'affiche ce programme ?<br/>
`<code>python<br/>
premier = input("Premier ? ")<br/>
second = input("Second ? ")<br/>
print(second, premier)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'ordre d'affichage est celui des arguments de print, 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="0" format="html">
    <text><![CDATA[<p>second premier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, second et premier sont des<br/>
variables, remplacées par leur valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Lyon Paris</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : regarde l'ordre des variables dans le print.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Premier ? Second ?</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 print final.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Paris Lyon</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les saisies sont rangées dans l'ordre, mais<br/>
print(second, premier) les affiche dans l'ordre inverse.</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 print(int("3") + int("4")) ?</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="0" format="html">
    <text><![CDATA[<p>'7'</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, int refusant les chaînes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int accepte une chaîne de chiffres et la convertit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>34</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : "3" + "4" collerait les chaînes, mais ici elles<br/>
sont converties en nombres avant le +.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>7</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>
</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/>
`<code>python<br/>
print(10 / 4)<br/>
print(10 // 4)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Chaque appel de print termine sa ligne. Les deux divisions, /<br/>
et //, 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="0" format="html">
    <text><![CDATA[<p>2.5 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : deux print produisent deux lignes, pas une seule.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 puis 2.5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'ordre des lignes suit l'ordre des print, la<br/>
division réelle d'abord.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 puis 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : / ne tronque pas, il renvoie un flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>2.5 puis 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : / donne le flottant 2.5, // le quotient<br/>
entier 2, et chaque print occupe sa ligne.</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 10. Qu'affiche ce programme ?<br/>
`<code>python<br/>
prix = float(input("Prix ? "))<br/>
print(prix * 1.2)<br/>
</code>`</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>float(input(...)) 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="0" format="html">
    <text><![CDATA[<p>101.2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait une concaténation ; après float, prix<br/>
est un nombre et * multiplie.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>12.0</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>12</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>Une erreur, input ne renvoyant pas un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : float 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 print("a" + "b", "c") ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Deux façons d'assembler dans un print : + 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>ab c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : + colle "a" et "b" sans espace, puis la<br/>
virgule sépare ce résultat de "c" par un espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>abc</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la virgule, elle, insère un espace avant "c".</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a + b c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le + est un opérateur, il n'est pas affiché.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>a b c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : + n'ajoute aucun espace entre les deux premières<br/>
chaînes.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
