<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<question type="category">
  <category>
    <text>$course$/QCM de NSI/SNT/2. Types de base et calculs</text>
  </category>
  <info format="html">
    <text><![CDATA[<p>Entiers, flottants, chaînes de caractères et booléens ; la fonction<br/>
type ; les opérateurs arithmétiques dont la division entière, le reste<br/>
et la puissance ; la priorité des opérations ; les conversions entre<br/>
types ; la concaténation et la répétition de chaînes.</p>]]></text>
  </info>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q01 : Entier ou flottant</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quel est le type de la valeur 19.0 en Python ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Python distingue les entiers (int) des nombres à virgule (float).<br/>
Le point décimal suffit à faire un flottant : 19.0 est un float,<br/>
19 un int.</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>float, un nombre à virgule</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la présence du point fait de 19.0 un flottant,<br/>
même si sa partie décimale est nulle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>str, une chaîne de caractères</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une chaîne s'écrit entre guillemets, comme "19.0".<br/>
Sans guillemets, c'est un nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>bool, un booléen</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les booléens sont seulement True et False.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>int, un nombre entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 19 serait un entier. Avec le point, 19.0 est un<br/>
flottant, et 19 == 19.0 est vrai mais les types diffèrent.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q02 : Des chiffres entre guillemets</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
code = "2026"<br/>
</code></p>
<p>Quel est le type de code` ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les guillemets décident du type : "2026" est une chaîne, 2026 un<br/>
entier. Une chaîne de chiffres ne permet pas de calculer tant qu'on<br/>
ne l'a pas convertie avec int.</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>bool</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un booléen ne vaut que True ou False.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>str</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : les guillemets font une chaîne de caractères,<br/>
même si elle ne contient que des chiffres. On ne peut pas<br/>
calculer avec sans la convertir.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>float</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : il n'y a ni point décimal ni nombre : c'est un texte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>int</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, 2026 serait un entier. Entre<br/>
guillemets, c'est un texte de quatre caractères.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q03 : Le type d'une division</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print(type(7 / 2))<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La fonction type renvoie le type d'une valeur. La division /<br/>
produit toujours un float, même quand le résultat tombe juste.</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>3.5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.5 est le résultat de la division, mais type affiche<br/>
le type de ce résultat, pas sa valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;class 'str'&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune chaîne n'intervient, seulement des nombres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;class 'float'&gt;</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la division / donne toujours un flottant, ici<br/>
3.5.</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 : même 8 / 2 donne le flottant 4.0. Seule la division<br/>
entière // donne un entier.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q04 : Quotient et reste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print(17 // 5, 17 % 5)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>// donne le quotient entier et % le reste de la division<br/>
euclidienne. Ce sont deux opérateurs très utiles pour compter des<br/>
paquets ou tester la divisibilité.</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>3.4 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.4 est le résultat de 17 / 5. La division entière<br/>
// ne garde que le quotient entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>3 2</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 17 contient 3 fois 5, et il reste 2. C'est la<br/>
division euclidienne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le quotient est 3 et le reste 2, dans cet ordre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 fois 5 font 15, il reste 2 pour atteindre 17.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q05 : Reconnaître un nombre pair</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Quelle expression vaut True exactement quand l'entier n est<br/>
pair ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le reste % teste la divisibilité : n % k == 0 signifie que n est<br/>
un multiple de k. Pour la parité, on prend k égal à 2.</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>n % 2 == 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : un nombre pair a un reste nul dans la division<br/>
par 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n % 2 == 1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un reste de 1 dans la division par 2 caractérise un<br/>
nombre impair.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n / 2 == 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : n / 2 vaut 0 seulement si n vaut 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>n // 2 == 0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : n // 2 est le quotient. Il vaut 0 seulement pour 0 et<br/>
1, ce qui ne dit rien de la parité.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q06 : La puissance</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Un kibioctet contient 2 ** 10 octets.</p>
<p>`<code>python<br/>
print(2 ** 10)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'opérateur <strong> calcule une puissance : 2 </strong> 10 vaut 1024. On le<br/>
retrouve partout en informatique, où les tailles sont des puissances<br/>
de 2.</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>2048</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 2048 est 2 ** 11. Dix facteurs 2 donnent 1024.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>100</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 100 serait 10 ** 2. Ici la base est 2 et l'exposant<br/>
10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>20</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 20 serait 2 <em> 10. L'opérateur </em>* élève à la<br/>
puissance.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>1024</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : ** est l'opérateur puissance, 2 multiplié dix<br/>
fois par lui-même donne 1024.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q07 : La priorité des opérations</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print(2 + 3 <em> 4 </em>* 2)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Python suit les priorités usuelles : puissance, puis multiplication et<br/>
division, puis addition et soustraction. Les parenthèses forcent un<br/>
autre ordre.</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>80</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 80 serait (2 + 3) * 16. Sans parenthèses, la<br/>
multiplication passe avant l'addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>50</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la puissance d'abord, 4 ** 2 vaut 16, puis la<br/>
multiplication, 48, puis l'addition, 50.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>26</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 26 serait 2 + 3 <em> 8, comme si 4 </em>* 2<br/>
valait 8. Une puissance n'est pas une multiplication.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>196</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 196 serait (2 + 3 <em> 4) </em>* 2. La puissance est<br/>
calculée en premier, sur 4 seulement.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q08 : Additionner deux chaînes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
a = "12"<br/>
b = "3"<br/>
print(a + b)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même signe + additionne des nombres et concatène des chaînes.<br/>
Le type des valeurs décide de l'opération : "12" + "3" donne<br/>
"123".</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>123</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre deux chaînes, + colle les textes bout à<br/>
bout. C'est la concaténation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>15</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 15 serait la somme des nombres 12 et 3. Ici ce sont des<br/>
chaînes, + les concatène.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, on n'additionne pas des textes</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : + est défini entre chaînes, il les met bout à bout.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>12 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la concaténation ne place aucun espace entre les deux<br/>
chaînes.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q09 : Mélanger texte et nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
age = 15<br/>
print("Âge : " + age)<br/>
</code>`</p>
<p>Que se passe-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>+ exige deux valeurs de même nature : deux nombres ou deux chaînes.<br/>
Pour insérer un nombre dans un texte, on le convertit avec str, ou<br/>
on passe plusieurs arguments à 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>Python affiche Âge : 15, l'entier est converti tout seul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python ne convertit pas automatiquement un entier en<br/>
chaîne. Il refuse le + entre une chaîne et un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche Âge : age, le nom de la variable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, age désigne la valeur 15, et<br/>
l'opération entre chaîne et entier échoue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Python signale une erreur, + ne colle pas une chaîne et un entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le message est TypeError. Il faut écrire<br/>
"Âge : " + str(age), ou print("Âge :", age).</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche Âge :  puis 15 sur la ligne suivante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : + ne produit pas deux affichages. L'opération est<br/>
refusée avant tout affichage.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q10 : Convertir pour concaténer</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>age vaut 15. Quelle ligne affiche Âge : 15 sans erreur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>str convertit une valeur en chaîne, int en entier, float en<br/>
flottant. Avant de concaténer un nombre à un texte, on le passe par<br/>
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="100" format="html">
    <text><![CDATA[<p>print("Âge : " + str(age))</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : str(age) donne la chaîne "15", que l'on peut<br/>
coller à "Âge : ".</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>print("Âge : " + int(age))</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int(age) reste un entier, et le + entre chaîne et<br/>
entier échoue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>print("Âge : " + float(age))</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : float(age) est un nombre à virgule, toujours pas une<br/>
chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>print("Âge : " + age)</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : age est un entier, la concaténation avec une chaîne<br/>
provoque une erreur.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q11 : De la chaîne au nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
n = int("40") + 2<br/>
print(n)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int("40") lit la chaîne et renvoie l'entier 40. Le résultat d'une<br/>
conversion est un nombre ordinaire, avec lequel on calcule.</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>42</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : int("40") donne l'entier 40, auquel on ajoute<br/>
2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, on n'additionne pas une chaîne et un entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait le cas sans int. La conversion rend<br/>
l'addition possible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>"42"</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat est un entier, print l'affiche sans<br/>
guillemets.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>402</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 402 serait la concaténation de deux chaînes. Ici int<br/>
a transformé "40" en nombre avant l'addition.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q12 : Un flottant converti en entier</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print(int(7.9))<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int(7.9) vaut 7 : la conversion vers l'entier supprime les<br/>
décimales. Pour arrondir au plus proche, on utilise round.</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>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 8 serait un arrondi. int tronque : il garde la partie<br/>
entière 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>7.9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int renvoie un entier, la partie décimale disparaît.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, 7.9 n'est pas un entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int accepte un flottant et en garde la partie entière.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : int supprime la partie décimale, il n'arrondit<br/>
pas au plus proche.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q13 : Le résultat d'une comparaison</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
x = 10<br/>
print(x &gt; 3)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Une comparaison est un calcul dont le résultat est un booléen, True<br/>
ou False. On peut l'afficher, le ranger dans une variable ou s'en<br/>
servir dans une condition.</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>True</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : une comparaison produit un booléen. Comme 10 est<br/>
plus grand que 3, elle vaut True.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : print affiche le résultat de la comparaison, pas la<br/>
valeur de x.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, on ne peut pas afficher une comparaison</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une comparaison est une valeur comme une autre, un<br/>
booléen, que print affiche.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>x &gt; 3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, x &gt; 3 est évalué, pas affiché tel<br/>
quel.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q14 : Une division qui tombe juste</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print(8 / 2)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Il existe deux divisions : / renvoie un flottant, // un quotient<br/>
entier. 8 / 2 vaut 4.0 et 8 // 2 vaut 4.</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>04</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat est le flottant 4.0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 4 serait le résultat de 8 // 2. La division / donne<br/>
un flottant, affiché 4.0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>4.0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : / renvoie toujours un flottant, même quand la<br/>
division est exacte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4,0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python écrit les décimales avec un point, jamais avec<br/>
une virgule.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q15 : Convertir des secondes</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
duree = 125<br/>
minutes = duree // 60<br/>
secondes = duree % 60<br/>
print(minutes, secondes)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le couple quotient et reste convertit une durée : // donne les<br/>
minutes entières, % les secondes restantes. C'est le même calcul<br/>
pour les heures, les jours ou les paquets.</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 25</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 2 minutes font 120 secondes, il en reste 5, pas<br/>
25 ; une minute ne fait pas cent secondes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>2 5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 125 secondes font 2 minutes entières, et il<br/>
reste 5 secondes.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2 05</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le reste est le nombre 5, affiché sans zéro devant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>2.08 5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : // donne un quotient entier, sans décimales.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q16 : Longueur d'une chaîne</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
mot = "SNT 2026"<br/>
print(len(mot))<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>len renvoie le nombre de caractères d'une chaîne, espaces compris.<br/>
On la retrouvera pour compter les éléments d'une liste.</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 : l'espace est un caractère comme un autre, il compte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len compte les caractères, pas les lettres du premier<br/>
mot.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>8</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : trois lettres, une espace et quatre chiffres<br/>
font huit caractères.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len ne compte pas seulement les chiffres.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q17 : Répéter une chaîne</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
print("ab" * 3 + "c")<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Entre une chaîne et un entier, <em> répète le texte. Les priorités<br/>
sont les mêmes qu'avec les nombres : </em> avant +.</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>ababab c</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la concaténation n'ajoute aucune espace.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>abcabcabc</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait ("ab" + "c") * 3. Sans parenthèses, la<br/>
répétition est faite d'abord.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>abababc</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : * répète la chaîne trois fois, puis + colle<br/>
c à la fin. La multiplication passe avant l'addition.</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 : entre une chaîne et un entier, * répète la chaîne.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q18 : Deux conversions successives</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
x = "7"<br/>
y = int(x) * 2<br/>
z = str(y) + "0"<br/>
print(z)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Suivre le type de chaque variable est aussi important que sa valeur :<br/>
x est une chaîne, y un entier, z une chaîne. Chaque conversion<br/>
change l'effet des opérateurs.</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>7070</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la multiplication porte sur l'entier 7, pas sur la<br/>
chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>770</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 770 supposerait que "7" * 2 répète la chaîne. Mais<br/>
int(x) en a fait un nombre avant la multiplication.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>14</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 14 est y. La dernière ligne lui colle encore le<br/>
caractère 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>140</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : y vaut l'entier 14, puis str(y) donne<br/>
"14", collé à "0".</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q19 : Une moyenne mal écrite</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>`<code>python<br/>
a = 12<br/>
b = 15<br/>
moyenne = a + b / 2<br/>
print(moyenne)<br/>
</code>`</p>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sans parenthèses, a + b / 2 divise seulement b. Une moyenne<br/>
s'écrit (a + b) / 2. Toujours vérifier les priorités quand un<br/>
résultat surprend.</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>27</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 27 est la somme seule, or une division a bien lieu, sur<br/>
b.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>13.5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 13.5 est la moyenne attendue, mais il faudrait écrire<br/>
(a + b) / 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>13</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ni les parenthèses ni la division entière ne sont là.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>19.5</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la division passe avant l'addition, donc Python<br/>
calcule 12 plus 7.5. Il manquait des parenthèses.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q20 : Reconnaître un booléen</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Laquelle de ces valeurs est un booléen ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le type bool n'a que deux valeurs, True et False, écrites avec<br/>
une majuscule. Elles résultent des comparaisons et pilotent les<br/>
conditions.</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>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 1 est un entier. Il se comporte parfois comme True,<br/>
mais son type est int.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>vrai</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, vrai serait un nom de variable, et<br/>
Python n'a pas de mot-clé vrai.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>"True"</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : entre guillemets, c'est une chaîne de quatre lettres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>True</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : True et False, avec la majuscule, sont les<br/>
deux seules valeurs du type bool.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q21 : Le type d'un nombre à virgule</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que renvoie type(3.0) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int et float sont deux types distincts : le point décimal fait<br/>
la différence, pas la 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>&lt;class 'int'&gt;, car sa valeur est entière</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le type dépend de l'écriture, pas de la valeur. 3 est<br/>
un entier, 3.0 un flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>&lt;class 'str'&gt;, car il contient un point</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une chaîne s'écrit entre guillemets. Sans guillemets,<br/>
3.0 est un nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, 3.0 n'étant pas une écriture valide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.0 est une écriture tout à fait valide d'un<br/>
flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>&lt;class 'float'&gt;, à cause du point décimal</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 3.0 s'écrit avec un point décimal, c'est donc<br/>
un flottant, même si sa valeur est entière.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q22 : Le reste d'une division</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 10 % 3 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>// et % décomposent une division : quotient entier d'un côté,<br/>
reste de l'autre. Ici 10 = 3 × 3 + 1.</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>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 est le quotient entier, donné par //.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : % donne le reste de la division entière. 3<br/>
entre 3 fois dans 10, et il reste 1.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>10</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le reste est toujours plus petit que le diviseur 3.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3.3333333333333335</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.3333333333333335 est le résultat de la division /, pas le reste.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q23 : Une chaîne convertie puis additionnée</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut int("12") + 3 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int convertit une chaîne de chiffres en entier. Après conversion,<br/>
les opérations sont celles des 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>'123'</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat est un entier, pas une chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, une chaîne ne pouvant être additionnée à un nombre</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est précisément le rôle de int d'éviter cette<br/>
erreur en convertissant la chaîne avant l'addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>15</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : int("12") transforme la chaîne en l'entier<br/>
12, qui s'additionne normalement avec 3.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>123</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : après conversion en entier, + additionne, il ne colle<br/>
plus les chiffres.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q24 : Une virgule qui gêne la conversion</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que produit float("3,5") ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>En Python, le séparateur décimal est le point. Une saisie française<br/>
avec virgule doit être transformée avant 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>3.5, la virgule étant acceptée comme séparateur</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la conversion échoue à cause de la virgule. Il faudrait<br/>
la chaîne "3.5".</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Une erreur, le point décimal étant obligatoire</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : pour Python, "3,5" n'est pas l'écriture d'un<br/>
nombre. Seul "3.5" se convertit en flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>35, la virgule étant simplement ignorée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python ne supprime pas la virgule, il refuse la<br/>
chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3, la partie après la virgule étant tronquée</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : rien n'est tronqué, la conversion n'a pas lieu du tout.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q25 : Un arrondi</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut round(3.7) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>round arrondit, int tronque. Les deux ne donnent pas toujours<br/>
le même résultat.</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>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : round arrondit à l'entier le plus proche et<br/>
renvoie un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 serait le résultat de int(3.7), qui coupe la<br/>
partie décimale au lieu d'arrondir.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>3.7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : round change la valeur dès qu'il y a une partie<br/>
décimale.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4.0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans second argument, round renvoie un entier, pas<br/>
un flottant.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q26 : Une chaîne comparée à un nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut "5" == 5 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'égalité tient compte du type. C'est pourquoi une saisie, toujours<br/>
une chaîne, doit être convertie avant d'être comparée à un 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>Une erreur, les types étant incompatibles</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la comparaison est permise, elle répond simplement<br/>
False.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>False, les types étant différents</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : "5" est un texte, 5 un nombre. Deux valeurs<br/>
de types différents ne sont jamais égales, même si elles se<br/>
ressemblent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>5, la valeur commune aux deux écritures</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une comparaison renvoie un booléen, True ou False.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>True, les deux écritures désignant cinq</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : Python ne convertit pas les types pour comparer. Le<br/>
texte "5" et le nombre 5 restent différents.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q27 : Compter les chiffres d'un nombre</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut len(str(1234)) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Convertir un nombre en chaîne permet de le traiter comme du texte :<br/>
compter ses chiffres, lire le premier, et ainsi de suite.</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>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : str(1234) donne la chaîne "1234", dont len<br/>
compte les caractères, c'est-à-dire les chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, len ne s'appliquant pas aux nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est vrai pour un entier, mais str l'a d'abord<br/>
transformé en chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : la chaîne contient autant de caractères que le nombre<br/>
a de chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>1234</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : len ne renvoie pas le nombre lui-même mais sa<br/>
longueur une fois écrit.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q28 : Un flottant négatif converti en entier</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut int(-3.7) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>int tronque vers zéro : int(3.7) donne 3 et int(-3.7) donne<br/>
-3. Pour arrondir, on utilise round.</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>-4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : -4 serait l'entier inférieur. int ne descend pas, il<br/>
coupe les décimales.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, int ne s'appliquant pas aux négatifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int accepte tout flottant, positif ou négatif.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>-3</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : int supprime la partie décimale, sans<br/>
arrondir. Pour un négatif, cela rapproche de zéro.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>-3.7</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : int renvoie toujours un entier.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q29 : Division et multiplication à la suite</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut 10 / 4 * 2 ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>À priorité égale, Python évalue de gauche à droite. Des<br/>
parenthèses lèvent toute ambiguïté.</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>1.25</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce résultat correspond à 10 / (4 * 2). Sans<br/>
parenthèses, la division est faite en premier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>5.0</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : / et * ont la même priorité et s'évaluent de<br/>
gauche à droite : d'abord 10 / 4, puis le résultat<br/>
multiplié par 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>4</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : / est la division réelle, le résultat est un<br/>
flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, car on ne peut pas enchaîner deux opérateurs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : enchaîner des opérateurs est permis, l'ordre<br/>
d'évaluation suit les règles de priorité.</p>]]></text>
    </feedback>
  </answer>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q30 : Deux conversions et une concaténation</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<p>Que vaut str(2 + 3) + str(4) ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même + additionne des nombres et concatène des chaînes. Tout<br/>
dépend du type des valeurs au moment où il est appliqué.</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>'54'</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : 2 + 3 est calculé entre nombres, donne<br/>
5, puis str le transforme en texte, collé à "4".</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, str ne s'appliquant pas à un calcul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : str reçoit le résultat du calcul, un entier, et le<br/>
convertit sans difficulté.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>9</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : après str, le + central est une concaténation de<br/>
chaînes, pas une addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>'234'</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'addition 2 + 3 est faite avant la conversion,<br/>
entre nombres.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
