\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}