\makeatletter
\@ifundefined{complet}
{\documentclass[10pt]{report}
\title{Python}
\newcommand{\categorie}{Python}
\input{latex_entete_perso}

\begin{document} %Cours

\setcounter{chapter}{1}
% xelatex -shell-escape cours_python
}
{}
\makeatother

\IfFileExists{mm_principe.png}{}{\write18{wget https://doc.infoforall.fr/activite/python/images/dictionnaire/mm_principe.png}}

\chapter{Expressions numériques}

\section{Expression comportant un opérateur}

\begin{multicols}{2}


\subsection{DEFINITIONS}

Une \remarque{expression} caractérise une séquence de \remarque{valeurs}
associées à des \remarque{opérateurs}. L'interpréteur Python évalue l'expression et fournit sa valeur associée. Cette action se nomme une \remarque{évaluation}.

\small{
\begin{minted}{python}
>>> 4 + 5  # 4 et 5 : valeurs
9          # + opérateur
           # 9 : résultat de l'évaluation
\end{minted}
}

Symboles Python des {opérations arithmétiques}~:
\small{
\begin{itemize}
\item  {$+$} addition, {$-$} soustraction,
\item  {$*$} multiplication, {$/$} division,
\item  {$**$} puissance.
\end{itemize}
}


\subsection{Priorités}

L'évaluation d'une expression est \gras{séquentielle} : 

\begin{enumerate}
\item les parenthèses d'abord.
\item ensuite, l'opérateur de puissance {**}
\item puis, les opérateurs {*} {/}
\item enfin, les opérateurs {+} {-}
\item En cas d'égalité de priorité : le plus à
  gauche d'abord
\end{enumerate}

\remarque{Exemples}

\small{
\begin{minted}{python}
10 + (5 + 3) * 2  # parenthèses
10 + 8 * 2        # multiplication
10 + 16           # addition
26

\end{minted}
}

\subsection{Quotient et reste}

\paragraph{Divisions euclidiennes} : on divise a par b, en trouvant~:

\begin{itemize}
\item le \gras{quotient}, nombre de paquets égaux qu'on peut faire.
\item le \gras{reste}, nombre d'éléments restants hors des paquets.
\end{itemize}



\paragraph{Opérateur Python \fo{//}}

La syntaxe pour obtenir le \gras{quotient} de la division
entière de 10 par 5 est {10 // 5}.

\paragraph{Opérateur Python \fo{\%}}

La syntaxe pour obtenir le \gras{reste} de la division
entière de 10 par 5 est {10 \% 5}.

\small{
\begin{minted}{python}
>>> 10 // 5       >>> 14 // 3
2                 4 

>>> 10 % 5        >>> 14 % 3
0                 2
\end{minted}
}

\begin{multicols}{2}

\opidiv[displayintermediary=all,voperation=top]{10}{5}

\opidiv[displayintermediary=all,voperation=top]{14}{3}

\end{multicols}

\paragraph{Priorité}

\gras{//} et \gras{\%} possèdent la même priorité que \gras{*}. 

\small{
\begin{minted}{python}
1407 % 5 // 2          1407 // 2 % 5
2 // 2                 703 % 5
1                      3
\end{minted}
}

\end{multicols}



\section{Application à la résolution de problèmes}

\begin{multicols}{3}

\subsection{Extraire les chiffres}

\small{
\begin{minted}{python}
# chiffre de l'UNITE
>>> 1234 % 10       
4
\end{minted}
}

\small{
\begin{minted}{python}
# chiffre de la DIZAINE
>>> 1234 // 10 % 10   
3
\end{minted}
}

\small{
\begin{minted}{python}
# chiffre de la CENTAINE
>>> 1234 // 100 % 10   
2
\end{minted}
}


\subsection{Position d'une case}

\subsubsection{Description du plateau}

20 cases numérotées de 0 à 19. 4 cases par lignes.

\small{
\begin{minted}{python}
#      C0 C1 C2 C3
# L0   00 01 02 03
# L1   04 05 06 07
# L2   08 09 10 11
# L3   12 13 14 15
# L4   16 17 18 19 
\end{minted}
}

\subsubsection{Numéro de ligne}

La ligne est le quotient du numéro de la case par 4.

\small{
\begin{minted}{python}
>>> 4 // 4       >>> 7 // 4
1                1
\end{minted}
}

\subsubsection{Numéro de colonne}

La colonne est le reste du numéro de la case par 4.

\small{
\begin{minted}{python}
>>> 4 % 4       >>> 7 % 4
0               3
\end{minted}
}


\end{multicols}





\makeatletter
\@ifundefined{complet}
{\end{document}}

{}
\makeatother

