Bertrand Benjamin
4882eb6a66
All checks were successful
continuous-integration/drone/push Build is passing
182 lines
3.6 KiB
TeX
Executable File
182 lines
3.6 KiB
TeX
Executable File
\documentclass[a4paper,10pt]{article}
|
|
\usepackage{myXsim}
|
|
\usepackage{minted}
|
|
|
|
\author{Benjamin Bertrand}
|
|
\title{Python et micro:bit - Cours}
|
|
\date{Septembre 2022}
|
|
|
|
\pagestyle{empty}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\setcounter{section}{1}
|
|
\section{Corpus élémentaire de Python (suite)}
|
|
\setcounter{subsection}{4}
|
|
\subsection{Boucle non bornée}
|
|
|
|
\begin{definition}[Boucle while]
|
|
Lorsque l'on veut répéter des actions \textbf{tant que} quelque chose est vrai, on utilise une boucle \mintinline{python}{while}.
|
|
|
|
\begin{center}
|
|
\begin{minipage}{0.5\linewidth}
|
|
\begin{minted}[bgcolor=base3,linenos]{python}
|
|
while condition:
|
|
instruction 1
|
|
instruction 2
|
|
instruction 3
|
|
\end{minted}
|
|
\end{minipage}
|
|
\end{center}
|
|
|
|
|
|
La condition doit être de type booléen ou sera considéré comme tel.
|
|
\end{definition}
|
|
|
|
\textbf{Exemple:}
|
|
|
|
On veut écrire un programme qui modélise la situation suivante: une ville compte 3 millions d'habitants. Sa population augmente de 2\% par an. Combien d'année faudra-t-il attendre pour que la population ait doublée.
|
|
|
|
\begin{multicols}{2}
|
|
\begin{minted}[bgcolor=base3,linenos]{python}
|
|
population = 3
|
|
double = population * 2
|
|
taux = 2/100
|
|
annee = 0
|
|
while population < double:
|
|
population = population * (1 + taux)
|
|
annee = annee + 1
|
|
print("La population a doublé après ", annee, "ans")
|
|
\end{minted}
|
|
|
|
\columnbreak
|
|
|
|
Tableau d'états
|
|
|
|
\begin{tabular}{|*{4}{p{1.5cm}|}}
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
& & & \\
|
|
\hline
|
|
\end{tabular}
|
|
|
|
\end{multicols}
|
|
|
|
\afaire{compléter le tableau d'états en prenant une colonne par variable. Que va afficher le programme?}
|
|
|
|
\subsection{Boucle bornée}
|
|
|
|
\begin{definition}[Boucle for]
|
|
Lorsque que l'on veut répéter des actions sur un ensemble de valeurs données, on utilise la boucle \mintinline{python}{for}.
|
|
|
|
\begin{center}
|
|
\begin{minipage}{0.5\linewidth}
|
|
\begin{minted}[bgcolor=base3,linenos]{python}
|
|
for element in iterateur:
|
|
instruction 1
|
|
instruction 2
|
|
instruction 3
|
|
\end{minted}
|
|
\end{minipage}
|
|
\end{center}
|
|
À chaque tour de boucle, la variable \mintinline{python}{element} prendra les valeurs successives de l'itérateur.
|
|
\end{definition}
|
|
|
|
\pagebreak
|
|
|
|
\textbf{Quelques itérateurs:}
|
|
\begin{multicols}{3}
|
|
Range(n):
|
|
|
|
\begin{minted}[bgcolor=base3,linenos]{python}
|
|
for i in range(3):
|
|
print(i)
|
|
\end{minted}
|
|
|
|
Table d'états
|
|
|
|
\begin{tabular}{|p{2cm}|}
|
|
\hline
|
|
i \\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\end{tabular}
|
|
|
|
\columnbreak
|
|
Chaine de caractères:
|
|
|
|
\begin{minted}[bgcolor=base3,linenos]{python}
|
|
for lettre in "AZERTY":
|
|
print(lettre)
|
|
\end{minted}
|
|
|
|
Table d'états
|
|
|
|
\begin{tabular}{|p{2cm}|}
|
|
\hline
|
|
lettre \\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\end{tabular}
|
|
|
|
\columnbreak
|
|
Liste:
|
|
|
|
\begin{minted}[bgcolor=base3,linenos]{python}
|
|
for chose in ["a", 3, True, 5]:
|
|
print(chose)
|
|
\end{minted}
|
|
Table d'états
|
|
|
|
\begin{tabular}{|p{2cm}|}
|
|
\hline
|
|
chose \\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\\
|
|
\hline
|
|
\end{tabular}
|
|
|
|
\end{multicols}
|
|
|
|
|
|
\end{document}
|