\begin{questions}
\item Dans la fonction \og Delta \fg, le test \og \texttt{x in (A or B)} \fg{} renvoie \textit{True} car le caractère \og K \fg{} apparaît dans l'une des chaînes \texttt{A} ou \texttt{B}.

Le test \og \texttt{x in (A and B)} \fg{} renvoie \textit{True} car \og K \fg{} apparaît dans les deux chaînes, donc \texttt{not(x in (A and B))} vaut \textit{False}.

Ainsi, le test \og \texttt{(x in (A or B)) and not(x in (A and B))} \fg{} est équivalent au test \og True and False \fg{} et renvoie donc la valeur \textit{False}.

\Par

Le programme affiche donc : \og False \fg.

\item Nous l'avons vu à la question précédente, \og K \fg{} apparaît dans les deux chaînes; ceci nous pousse à prendre un caractère qui n'apparaît que dans l'une d'elle. Prenons par exemple : \og A \fg. Alors :
\begin{itemize}
\item \og \texttt{x in (A or B)} \fg{} renvoie \textit{True};
\item \og \texttt{x in (A and B)} \fg{} renvoie \textit{False} donc \og \texttt{not(x in (A and B))} \fg{} renvoie \textit{True};
\item \og \texttt{(x in (A and B)) and not(x in (A and B))} \fg{} est équivalent au test \og True and True \fg{} et renvoie \textit{True}.
\end{itemize}

\item Dans cette nouvelle définition, on a enlevé les parenthèses aux deux \og \texttt{(A or/and B)} \fg; il n'y a donc plus de priorité aux opérateurs logiques \texttt{or} et \texttt{and}.

Pour \texttt{x = 'A'}, le test \og \texttt{x in A or B} \fg{} n'a pas de sens car on fait avant tout le test \og \texttt{x in A} \fg{} (qui renvoie \textit{True}) et on effectue le test \og True or B \fg, qui n'est pas un test sur booléens. Python renvoie à cela : \og \texttt{'OKLM'} \fg, et ce n'est pas ce que nous attendions (on n'attendait pas grand-chose d'ailleurs...).

\Par

Ainsi, enlever les parenthèses est une erreur.
\end{questions}
\enlargethispage*{5em}
