\documentclass[a4paper,11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais,bloc,completemulti]{automultiplechoice}
\usepackage[french]{babel}
\usepackage{amsmath, amssymb}

\title{Variables et types de base}
\date{Numérique et sciences informatiques}

\begin{document}

\noindent\textbf{Variables et types de base} \hfill \textit{Numérique et sciences informatiques}\\[0.4em]
Nom~: \dotfill\ Prénom~: \dotfill

\bigskip

\element{premierevariablestypesdebase}{
  \begin{question}{q01}
    Quelle est la signification de l'instruction
\texttt{x = 5} en Python ?
    \begin{choices}
    \correctchoice{Affecter la valeur 5 à la variable \texttt{x}}
    \wrongchoice{Tester si \texttt{x} est égal à 5}
    \wrongchoice{Définir une fonction \texttt{x} qui renvoie 5}
    \wrongchoice{Multiplier \texttt{x} par 5}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q02}
    Quel est le type de la valeur \texttt{42} en Python ?
    \begin{choices}
    \correctchoice{\texttt{int}}
    \wrongchoice{\texttt{str}}
    \wrongchoice{\texttt{bool}}
    \wrongchoice{\texttt{float}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q03}
    Que renvoie \texttt{type(3.14)} en Python ?
    \begin{choices}
    \wrongchoice{\texttt{<class 'int'>}}
    \wrongchoice{\texttt{<class 'decimal'>}}
    \correctchoice{\texttt{<class 'float'>}}
    \wrongchoice{\texttt{<class 'str'>}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q04}
    Quel est le type de \texttt{"hello"} en Python ?
    \begin{choices}
    \correctchoice{\texttt{str}}
    \wrongchoice{\texttt{int}}
    \wrongchoice{\texttt{bool}}
    \wrongchoice{\texttt{char}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q05}
    Quelles sont les \textbf{deux seules} valeurs du type
\texttt{bool} en Python ?
    \begin{choices}
    \correctchoice{\texttt{True} et \texttt{False}}
    \wrongchoice{\texttt{oui} et \texttt{non}}
    \wrongchoice{\texttt{yes} et \texttt{no}}
    \wrongchoice{\texttt{0} et \texttt{1}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q06}
    Que renvoie \texttt{int("42")} ?
    \begin{choices}
    \wrongchoice{La chaîne \texttt{"42"}}
    \correctchoice{L'entier \texttt{42}}
    \wrongchoice{Une erreur}
    \wrongchoice{Le flottant \texttt{42.0}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q07}
    Que renvoie \texttt{7 / 2} en Python 3 ?
    \begin{choices}
    \wrongchoice{3}
    \wrongchoice{Une erreur}
    \wrongchoice{4}
    \correctchoice{3.5}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q08}
    Que renvoie \texttt{7 // 2} ?
    \begin{choices}
    \wrongchoice{0}
    \wrongchoice{4}
    \wrongchoice{3.5}
    \correctchoice{3}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q09}
    Que renvoie \texttt{7 \% 2} ?
    \begin{choices}
    \correctchoice{1}
    \wrongchoice{3.5}
    \wrongchoice{0}
    \wrongchoice{3}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q10}
    Que fait l'instruction \texttt{print("bonjour")} ?
    \begin{choices}
    \wrongchoice{Définit une variable nommée \texttt{bonjour}}
    \wrongchoice{Ne fait rien}
    \correctchoice{Affiche \texttt{bonjour} dans la console}
    \wrongchoice{Imprime sur l'imprimante de l'ordinateur}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q11}
    \begin{lstlisting}
x = 5
x = "hello"
\end{lstlisting}
Cette suite d'instructions est-elle valide ?
    \begin{choices}
    \wrongchoice{Non, il faut redéclarer \texttt{x}}
    \wrongchoice{Oui, mais Python affiche un avertissement}
    \wrongchoice{Non, \texttt{x} est figé en entier}
    \correctchoice{Oui, parce que Python est typé dynamiquement : une variable peut changer de type au cours du programme}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q12}
    Que se passe-t-il avec \texttt{int("abc")} ?
    \begin{choices}
    \wrongchoice{Renvoie \texttt{0}}
    \wrongchoice{Renvoie \texttt{None}}
    \wrongchoice{Renvoie \texttt{"abc"}}
    \correctchoice{Lève \texttt{ValueError}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q13}
    Que renvoie \texttt{"abc" + "def"} ?
    \begin{choices}
    \wrongchoice{\texttt{abc def}}
    \wrongchoice{\texttt{9} (somme alphabétique)}
    \wrongchoice{Une erreur}
    \correctchoice{\texttt{abcdef}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q14}
    Que renvoie \texttt{"ab" * 3} ?
    \begin{choices}
    \correctchoice{\texttt{ababab}}
    \wrongchoice{Une erreur}
    \wrongchoice{\texttt{6} (longueur)}
    \wrongchoice{\texttt{ab3}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q15}
    Que renvoie \texttt{input("Âge ?")} après que
l'utilisateur a tapé \texttt{17} ?
    \begin{choices}
    \wrongchoice{Le flottant \texttt{17.0}}
    \wrongchoice{Le booléen \texttt{True}}
    \wrongchoice{L'entier \texttt{17}}
    \correctchoice{La chaîne \texttt{"17"}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q16}
    Que renvoie \texttt{2 < 3 < 5} en Python ?
    \begin{choices}
    \wrongchoice{\texttt{False}}
    \wrongchoice{\texttt{5}}
    \wrongchoice{Une erreur de syntaxe}
    \correctchoice{\texttt{True} (équivalent à \texttt{2 < 3 and 3 < 5})}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q17}
    Que renvoie \texttt{bool(0)} ?
    \begin{choices}
    \wrongchoice{\texttt{True}}
    \wrongchoice{\texttt{0}}
    \correctchoice{\texttt{False}}
    \wrongchoice{Une erreur}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q18}
    Que renvoie \texttt{len("hello")} ?
    \begin{choices}
    \wrongchoice{\texttt{hello}}
    \wrongchoice{1}
    \wrongchoice{5.0}
    \correctchoice{5}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q19}
    Que renvoie \texttt{int(3.9)} ?
    \begin{choices}
    \wrongchoice{4 (arrondi)}
    \wrongchoice{Une erreur}
    \correctchoice{3 (troncature vers 0)}
    \wrongchoice{3.9}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q20}
    Que renvoie \texttt{"hello"[0]} ?
    \begin{choices}
    \correctchoice{\texttt{h}}
    \wrongchoice{\texttt{e}}
    \wrongchoice{Une erreur}
    \wrongchoice{\texttt{hello}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q21}
    Que renvoie \texttt{0.1 + 0.2 == 0.3} ?
    \begin{choices}
    \wrongchoice{\texttt{0.3}}
    \wrongchoice{\texttt{True}}
    \wrongchoice{Une erreur}
    \correctchoice{\texttt{False}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q22}
    Que vaut \texttt{2 ** 10} ?
    \begin{choices}
    \wrongchoice{100}
    \correctchoice{1024 (= 2¹⁰)}
    \wrongchoice{Une erreur}
    \wrongchoice{20}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q23}
    \begin{lstlisting}
a, b = 1, 2
a, b = b, a
\end{lstlisting}
Que valent \texttt{a} et \texttt{b} à la fin ?
    \begin{choices}
    \wrongchoice{a = 2, b = 2}
    \wrongchoice{Une erreur}
    \wrongchoice{a = 1, b = 2 (inchangé)}
    \correctchoice{a = 2, b = 1 (échangés)}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q24}
    Que renvoie \texttt{print("a", "b", "c")} ?
    \begin{choices}
    \wrongchoice{Affiche \texttt{[a, b, c]}}
    \wrongchoice{Affiche \texttt{abc}}
    \correctchoice{Affiche \texttt{a b c} (espaces entre les arguments)}
    \wrongchoice{Lève une exception}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q25}
    Parmi les affirmations suivantes, laquelle est
\textbf{fausse} ?
    \begin{choices}
    \wrongchoice{Python est typé dynamiquement}
    \correctchoice{La chaîne vide \texttt{""} est considérée comme vraie dans une condition}
    \wrongchoice{\texttt{/} produit toujours un flottant en Python 3}
    \wrongchoice{Les indices Python commencent à 0}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q26}
    Quelle est la façon la plus idiomatique d'échanger
les valeurs de deux variables \texttt{a} et \texttt{b} en Python ?
    \begin{choices}
    \wrongchoice{\texttt{swap(a, b)}}
    \wrongchoice{\texttt{a = b = a}}
    \wrongchoice{\texttt{a = b} puis \texttt{b = a}}
    \correctchoice{\texttt{a, b = b, a}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q27}
    On exécute le code suivant :

\begin{lstlisting}
prix = 12.5
quantite = 3
print(f"Total : {prix * quantite} €")
\end{lstlisting}

Que va afficher le programme ?
    \begin{choices}
    \correctchoice{\texttt{Total : 37.5 €}}
    \wrongchoice{\texttt{Total : 12.5 * 3 €}}
    \wrongchoice{\texttt{Total : \{prix * quantite\} €}}
    \wrongchoice{Le code provoque une erreur de syntaxe}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q28}
    Que vaut l'expression \texttt{"NSI".lower()} en Python ?
    \begin{choices}
    \wrongchoice{\texttt{'Nsi'}}
    \wrongchoice{La méthode \texttt{lower} n'existe pas}
    \correctchoice{\texttt{'nsi'}}
    \wrongchoice{\texttt{'NSI'}}
    \end{choices}
  \end{question}
}

\element{premierevariablestypesdebase}{
  \begin{question}{q29}
    En Python, quelle est la différence entre les
opérateurs \texttt{==} et \texttt{is} ?
    \begin{choices}
    \wrongchoice{\texttt{==} renvoie un nombre, \texttt{is} renvoie un booléen}
    \wrongchoice{Les deux sont strictement équivalents}
    \wrongchoice{\texttt{==} ne fonctionne que sur les nombres ; \texttt{is} ne fonctionne que sur les chaînes}
    \correctchoice{\texttt{==} compare les valeurs ; \texttt{is} teste si les deux références désignent le même objet en mémoire}
    \end{choices}
  \end{question}
}


\onecopy{1}{
  \shufflegroup{premierevariablestypesdebase}
  \insertgroup{premierevariablestypesdebase}
}

\end{document}
