<?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 <code>19.0</code> en Python ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Python distingue les entiers (<code>int</code>) des nombres à virgule (<code>float</code>).<br/>
Le point décimal suffit à faire un flottant : <code>19.0</code> est un <code>float</code>,<br/>
<code>19</code> un <code>int</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>float</code>, un nombre à virgule</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la présence du point fait de <code>19.0</code> un flottant,<br/>
même si sa partie décimale est nulle.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>int</code>, un nombre entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>19</code> serait un entier. Avec le point, <code>19.0</code> est un<br/>
flottant, et <code>19 == 19.0</code> est vrai mais les types diffèrent.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>str</code>, une chaîne de caractères</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une chaîne s'écrit entre guillemets, comme <code>"19.0"</code>.<br/>
Sans guillemets, c'est un nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>bool</code>, un booléen</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : les booléens sont seulement <code>True</code> et <code>False</code>.</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[<pre><code>code = "2026"</code></pre>
<p>Quel est le type de <code>code</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Les guillemets décident du type : <code>"2026"</code> est une chaîne, <code>2026</code> un<br/>
entier. Une chaîne de chiffres ne permet pas de calculer tant qu'on<br/>
ne l'a pas convertie avec <code>int</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>str</code></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><code>int</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>2026</code> serait un entier. Entre<br/>
guillemets, c'est un texte de quatre caractères.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>float</code></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><code>bool</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : un booléen ne vaut que <code>True</code> ou <code>False</code>.</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[<pre><code>print(type(7 / 2))</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>La fonction <code>type</code> renvoie le type d'une valeur. La division <code>/</code><br/>
produit toujours un <code>float</code>, 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="100" format="html">
    <text><![CDATA[<p><code>&lt;class 'float'&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la division <code>/</code> donne toujours un flottant, ici<br/>
3.5.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;class 'int'&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : même <code>8 / 2</code> donne le flottant <code>4.0</code>. Seule la division<br/>
entière <code>//</code> donne un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3.5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.5 est le résultat de la division, mais <code>type</code> affiche<br/>
le type de ce résultat, pas sa valeur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;class 'str'&gt;</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : aucune chaîne n'intervient, seulement des nombres.</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[<pre><code>print(17 // 5, 17 % 5)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>//</code> donne le quotient entier et <code>%</code> 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="100" format="html">
    <text><![CDATA[<p><code>3 2</code></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><code>3.4 2</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.4 est le résultat de <code>17 / 5</code>. La division entière<br/>
<code>//</code> ne garde que le quotient entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2 3</code></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><code>3 0</code></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 <code>True</code> exactement quand l'entier <code>n</code> est<br/>
pair ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le reste <code>%</code> teste la divisibilité : <code>n % k == 0</code> signifie que <code>n</code> est<br/>
un multiple de <code>k</code>. Pour la parité, on prend <code>k</code> é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><code>n % 2 == 0</code></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><code>n // 2 == 0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>n // 2</code> est le quotient. Il vaut 0 seulement pour 0 et<br/>
1, ce qui ne dit rien de la parité.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>n / 2 == 0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>n / 2</code> vaut 0 seulement si <code>n</code> vaut 0.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>n % 2 == 1</code></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>
</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 <code>2 ** 10</code> octets.</p>
<pre><code>print(2 ** 10)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>L'opérateur <code><strong></code> calcule une puissance : <code>2 </strong> 10</code> 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="100" format="html">
    <text><![CDATA[<p><code>1024</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>**</code> est l'opérateur puissance, 2 multiplié dix<br/>
fois par lui-même donne 1024.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>20</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 20 serait <code>2 <em> 10</code>. L'opérateur <code></em>*</code> élève à la<br/>
puissance.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>100</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 100 serait <code>10 ** 2</code>. Ici la base est 2 et l'exposant<br/>
10.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2048</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 2048 est <code>2 ** 11</code>. Dix facteurs 2 donnent 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[<pre><code>print(2 + 3 * 4 ** 2)</code></pre>
<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="100" format="html">
    <text><![CDATA[<p><code>50</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : la puissance d'abord, <code>4 ** 2</code> vaut 16, puis la<br/>
multiplication, 48, puis l'addition, 50.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>80</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 80 serait <code>(2 + 3) * 16</code>. Sans parenthèses, la<br/>
multiplication passe avant l'addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>196</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 196 serait <code>(2 + 3 <em> 4) </em>* 2</code>. La puissance est<br/>
calculée en premier, sur 4 seulement.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>26</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 26 serait <code>2 + 3 <em> 8</code>, comme si <code>4 </em>* 2</code><br/>
valait 8. Une puissance n'est pas une multiplication.</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[<pre><code>a = "12"
b = "3"
print(a + b)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même signe <code>+</code> additionne des nombres et concatène des chaînes.<br/>
Le type des valeurs décide de l'opération : <code>"12" + "3"</code> donne<br/>
<code>"123"</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>123</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : entre deux chaînes, <code>+</code> colle les textes bout à<br/>
bout. C'est la concaténation.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>15</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 15 serait la somme des nombres 12 et 3. Ici ce sont des<br/>
chaînes, <code>+</code> les concatène.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>12 3</code></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>
  <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 : <code>+</code> est défini entre chaînes, il les met bout à bout.</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[<pre><code>age = 15
print("Âge : " + age)</code></pre>
<p>Que se passe-t-il ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>+</code> 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 <code>str</code>, ou<br/>
on passe plusieurs arguments à <code>print</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche <code>Âge : 15</code>, 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 <code>+</code> entre une chaîne et un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="100" format="html">
    <text><![CDATA[<p>Python signale une erreur, <code>+</code> ne colle pas une chaîne et un entier</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : le message est <code>TypeError</code>. Il faut écrire<br/>
<code>"Âge : " + str(age)</code>, ou <code>print("Âge :", age)</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche <code>Âge : </code> puis 15 sur la ligne suivante</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>+</code> ne produit pas deux affichages. L'opération est<br/>
refusée avant tout affichage.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Python affiche <code>Âge : age</code>, le nom de la variable</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>age</code> désigne la valeur 15, et<br/>
l'opération entre chaîne et entier échoue.</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><code>age</code> vaut 15. Quelle ligne affiche <code>Âge : 15</code> sans erreur ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>str</code> convertit une valeur en chaîne, <code>int</code> en entier, <code>float</code> en<br/>
flottant. Avant de concaténer un nombre à un texte, on le passe par<br/>
<code>str</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>print("Âge : " + str(age))</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>str(age)</code> donne la chaîne <code>"15"</code>, que l'on peut<br/>
coller à <code>"Âge : "</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>print("Âge : " + int(age))</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int(age)</code> reste un entier, et le <code>+</code> entre chaîne et<br/>
entier échoue.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>print("Âge : " + age)</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>age</code> est un entier, la concaténation avec une chaîne<br/>
provoque une erreur.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>print("Âge : " + float(age))</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>float(age)</code> est un nombre à virgule, toujours pas une<br/>
chaîne.</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[<pre><code>n = int("40") + 2
print(n)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int("40")</code> 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><code>42</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>int("40")</code> donne l'entier 40, auquel on ajoute<br/>
2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>402</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 402 serait la concaténation de deux chaînes. Ici <code>int</code><br/>
a transformé <code>"40"</code> en nombre avant l'addition.</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 <code>int</code>. La conversion rend<br/>
l'addition possible.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"42"</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat est un entier, <code>print</code> l'affiche sans<br/>
guillemets.</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[<pre><code>print(int(7.9))</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int(7.9)</code> vaut 7 : la conversion vers l'entier supprime les<br/>
décimales. Pour arrondir au plus proche, on utilise <code>round</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>7</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>int</code> supprime la partie décimale, il n'arrondit<br/>
pas au plus proche.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>8</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 8 serait un arrondi. <code>int</code> tronque : il garde la partie<br/>
entière 7.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7.9</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> 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 : <code>int</code> accepte un flottant et en garde la partie entière.</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[<pre><code>x = 10
print(x &gt; 3)</code></pre>
<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, <code>True</code><br/>
ou <code>False</code>. 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><code>True</code></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 <code>True</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>10</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>print</code> affiche le résultat de la comparaison, pas la<br/>
valeur de <code>x</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>x &gt; 3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>x &gt; 3</code> est évalué, pas affiché tel<br/>
quel.</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 <code>print</code> affiche.</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[<pre><code>print(8 / 2)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Il existe deux divisions : <code>/</code> renvoie un flottant, <code>//</code> un quotient<br/>
entier. <code>8 / 2</code> vaut <code>4.0</code> et <code>8 // 2</code> vaut <code>4</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>4.0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>/</code> renvoie toujours un flottant, même quand la<br/>
division est exacte.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 4 serait le résultat de <code>8 // 2</code>. La division <code>/</code> donne<br/>
un flottant, affiché <code>4.0</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4,0</code></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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>04</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le résultat est le flottant 4.0.</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[<pre><code>duree = 125
minutes = duree // 60
secondes = duree % 60
print(minutes, secondes)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le couple quotient et reste convertit une durée : <code>//</code> donne les<br/>
minutes entières, <code>%</code> 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="100" format="html">
    <text><![CDATA[<p><code>2 5</code></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><code>2.08 5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>//</code> donne un quotient entier, sans décimales.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>2 05</code></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><code>2 25</code></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>
</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[<pre><code>mot = "SNT 2026"
print(len(mot))</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>len</code> 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="100" format="html">
    <text><![CDATA[<p><code>8</code></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><code>7</code></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><code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len</code> compte les caractères, pas les lettres du premier<br/>
mot.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len</code> 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[<pre><code>print("ab" * 3 + "c")</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Entre une chaîne et un entier, <code><em></code> répète le texte. Les priorités<br/>
sont les mêmes qu'avec les nombres : <code></em></code> avant <code>+</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>abababc</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>*</code> répète la chaîne trois fois, puis <code>+</code> colle<br/>
<code>c</code> à la fin. La multiplication passe avant l'addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>ababab c</code></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><code>abcabcabc</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce serait <code>("ab" + "c") * 3</code>. Sans parenthèses, la<br/>
répétition est faite d'abord.</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, <code>*</code> 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[<pre><code>x = "7"
y = int(x) * 2
z = str(y) + "0"
print(z)</code></pre>
<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/>
<code>x</code> est une chaîne, <code>y</code> un entier, <code>z</code> 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="100" format="html">
    <text><![CDATA[<p><code>140</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>y</code> vaut l'entier 14, puis <code>str(y)</code> donne<br/>
<code>"14"</code>, collé à <code>"0"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>14</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 14 est <code>y</code>. La dernière ligne lui colle encore le<br/>
caractère <code>0</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>770</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 770 supposerait que <code>"7" * 2</code> répète la chaîne. Mais<br/>
<code>int(x)</code> en a fait un nombre avant la multiplication.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>7070</code></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>
</question>

<question type="multichoice">
  <name>
    <text>2. Types de base et calculs — Q19 : Une moyenne mal écrite</text>
  </name>
  <questiontext format="html">
    <text><![CDATA[<pre><code>a = 12
b = 15
moyenne = a + b / 2
print(moyenne)</code></pre>
<p>Qu'affiche ce programme ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Sans parenthèses, <code>a + b / 2</code> divise seulement <code>b</code>. Une moyenne<br/>
s'écrit <code>(a + b) / 2</code>. 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="100" format="html">
    <text><![CDATA[<p><code>19.5</code></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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>13.5</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 13.5 est la moyenne attendue, mais il faudrait écrire<br/>
<code>(a + b) / 2</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>13</code></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="0" format="html">
    <text><![CDATA[<p><code>27</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 27 est la somme seule, or une division a bien lieu, sur<br/>
<code>b</code>.</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 <code>bool</code> n'a que deux valeurs, <code>True</code> et <code>False</code>, é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="100" format="html">
    <text><![CDATA[<p><code>True</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>True</code> et <code>False</code>, avec la majuscule, sont les<br/>
deux seules valeurs du type <code>bool</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>"True"</code></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="0" format="html">
    <text><![CDATA[<p><code>1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>1</code> est un entier. Il se comporte parfois comme <code>True</code>,<br/>
mais son type est <code>int</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>vrai</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans guillemets, <code>vrai</code> serait un nom de variable, et<br/>
Python n'a pas de mot-clé <code>vrai</code>.</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 <code>type(3.0)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int</code> et <code>float</code> 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="100" format="html">
    <text><![CDATA[<p><code>&lt;class 'float'&gt;</code>, à cause du point décimal</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>3.0</code> 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>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;class 'int'&gt;</code>, 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. <code>3</code> est<br/>
un entier, <code>3.0</code> un flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>&lt;class 'str'&gt;</code>, car il contient un point</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une chaîne s'écrit entre guillemets. Sans guillemets,<br/>
<code>3.0</code> est un nombre.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>3.0</code> n'étant pas une écriture valide</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>3.0</code> est une écriture tout à fait valide d'un<br/>
flottant.</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 <code>10 % 3</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>//</code> et <code>%</code> 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="100" format="html">
    <text><![CDATA[<p><code>1</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>%</code> 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><code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 est le quotient entier, donné par <code>//</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3.3333333333333335</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3.3333333333333335 est le résultat de la division <code>/</code>, pas le reste.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>10</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : le reste est toujours plus petit que le diviseur 3.</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 <code>int("12") + 3</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int</code> 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="100" format="html">
    <text><![CDATA[<p><code>15</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>int("12")</code> 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><code>123</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : après conversion en entier, <code>+</code> additionne, il ne colle<br/>
plus les chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'123'</code></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 <code>int</code> d'éviter cette<br/>
erreur en convertissant la chaîne avant l'addition.</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 <code>float("3,5")</code> ?</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="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, <code>"3,5"</code> n'est pas l'écriture d'un<br/>
nombre. Seul <code>"3.5"</code> se convertit en flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3.5</code>, 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 <code>"3.5"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>35</code>, 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><code>3</code>, 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 <code>round(3.7)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>round</code> arrondit, <code>int</code> 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><code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>round</code> arrondit à l'entier le plus proche et<br/>
renvoie un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4.0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : sans second argument, <code>round</code> renvoie un entier, pas<br/>
un flottant.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : 3 serait le résultat de <code>int(3.7)</code>, qui coupe la<br/>
partie décimale au lieu d'arrondir.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>3.7</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>round</code> change la valeur dès qu'il y a une partie<br/>
décimale.</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 <code>"5" == 5</code> ?</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="100" format="html">
    <text><![CDATA[<p><code>False</code>, les types étant différents</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>"5"</code> 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><code>True</code>, 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 <code>"5"</code> et le nombre 5 restent différents.</p>]]></text>
    </feedback>
  </answer>
  <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/>
<code>False</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>5</code>, la valeur commune aux deux écritures</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : une comparaison renvoie un booléen, <code>True</code> ou <code>False</code>.</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 <code>len(str(1234))</code> ?</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><code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>str(1234)</code> donne la chaîne <code>"1234"</code>, dont <code>len</code><br/>
compte les caractères, c'est-à-dire les chiffres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1234</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>len</code> ne renvoie pas le nombre lui-même mais sa<br/>
longueur une fois écrit.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>len</code> ne s'appliquant pas aux nombres</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : c'est vrai pour un entier, mais <code>str</code> l'a d'abord<br/>
transformé en chaîne.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1</code></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>
</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 <code>int(-3.7)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p><code>int</code> tronque vers zéro : <code>int(3.7)</code> donne <code>3</code> et <code>int(-3.7)</code> donne<br/>
<code>-3</code>. Pour arrondir, on utilise <code>round</code>.</p>]]></text>
  </generalfeedback>
  <defaultgrade>1.0</defaultgrade>
  <penalty>0.0</penalty>
  <hidden>0</hidden>
  <single>true</single>
  <shuffleanswers>true</shuffleanswers>
  <answernumbering>abc</answernumbering>
  <answer fraction="100" format="html">
    <text><![CDATA[<p><code>-3</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>int</code> 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><code>-4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : -4 serait l'entier inférieur. <code>int</code> ne descend pas, il<br/>
coupe les décimales.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>-3.7</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> renvoie toujours un entier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>int</code> ne s'appliquant pas aux négatifs</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>int</code> accepte tout flottant, positif ou négatif.</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 <code>10 / 4 * 2</code> ?</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="100" format="html">
    <text><![CDATA[<p><code>5.0</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>/</code> et <code>*</code> ont la même priorité et s'évaluent de<br/>
gauche à droite : d'abord <code>10 / 4</code>, puis le résultat<br/>
multiplié par 2.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>1.25</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : ce résultat correspond à <code>10 / (4 * 2)</code>. Sans<br/>
parenthèses, la division est faite en premier.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>4</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>/</code> 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 <code>str(2 + 3) + str(4)</code> ?</p>]]></text>
  </questiontext>
  <generalfeedback format="html">
    <text><![CDATA[<p>Le même <code>+</code> 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><code>'54'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Bonne réponse : <code>2 + 3</code> est calculé entre nombres, donne<br/>
5, puis <code>str</code> le transforme en texte, collé à <code>"4"</code>.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>9</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : après <code>str</code>, le <code>+</code> central est une concaténation de<br/>
chaînes, pas une addition.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p><code>'234'</code></p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : l'addition <code>2 + 3</code> est faite avant la conversion,<br/>
entre nombres.</p>]]></text>
    </feedback>
  </answer>
  <answer fraction="0" format="html">
    <text><![CDATA[<p>Une erreur, <code>str</code> ne s'appliquant pas à un calcul</p>]]></text>
    <feedback format="html">
      <text><![CDATA[<p>Erreur : <code>str</code> reçoit le résultat du calcul, un entier, et le<br/>
convertit sans difficulté.</p>]]></text>
    </feedback>
  </answer>
</question>

</quiz>
