tp d’intro au python V2

This commit is contained in:
Adrian Amaglio 2021-09-21 00:41:46 +02:00
parent 3bd4c21cca
commit 243fbafb3f
2 changed files with 60 additions and 62 deletions

Binary file not shown.

View File

@ -11,7 +11,7 @@ Durée : 1h
% --- % ---
\section{La tortue de Python} \section{La tortue de Python}
Pour pouvoir utiliser la tortue de Python, nous allons écrire la ligne suivante tout en haut de notre fichier python : Pour activer la tortue de Python, nous allons écrire la ligne suivante tout en haut de notre fichier python ; veillez à la garder tout le long de lexercice :
\begin{minted}{python} \begin{minted}{python}
from turtle import * from turtle import *
\end{minted} \end{minted}
@ -35,30 +35,26 @@ Pour tourner sur la gauche de 45° :
left(45) left(45)
\end{minted} \end{minted}
Pour tourner sur la droite de 45° :
\begin{minted}{python}
right(45)
\end{minted}
\section{Triangles, carrés et plus si affinités} \section{Triangles, carrés et plus si affinités}
Voici un programme Python qui trace un triangle équilatéral de côté 50px Voici un programme Python qui trace deux traits de 100 pixels
\begin{example} \begin{example}
\begin{minted}{python} \begin{minted}{python}
forward(50) forward(50)
left(120) left(120)
forward(50)
left(120)
forward(50) forward(50)
\end{minted} \end{minted}
\end{example} \end{example}
\begin{exercice} \begin{exercice}
Copiez collez ce programme dans votre éditeur python et exécutez le pour vérifier quil trace bien un triangle.\\ Copiez collez ce programme dans votre éditeur python et exécutez le pour vérifier quil trace bien deux traits.\\
Noubliez pas la première ligne (import) qui doit être en haut de chaque programme. Noubliez pas la première ligne (import) qui doit être en haut de chaque programme.
\end{exercice} \end{exercice}
\begin{exercice}
Complétez ce programme pour quil affiche un triangle.
\end{exercice}
\begin{exercice} \begin{exercice}
Modifiez ce programme Python pour quil dessine un carré (polygone régulier à 4 côtés). Modifiez ce programme Python pour quil dessine un carré (polygone régulier à 4 côtés).
\end{exercice} \end{exercice}
@ -67,72 +63,77 @@ forward(50)
Une fois que vous arrivez à tracer un carré à lécran, adaptez le programme pour dessiner un octogone (polygone régulier à 8 côtés). Une fois que vous arrivez à tracer un carré à lécran, adaptez le programme pour dessiner un octogone (polygone régulier à 8 côtés).
\end{exercice} \end{exercice}
%
\section{Répétons des instructions}
\begin{example}
Vous aurez remarqué que pour tracer des polygones, on copie colle les instructions forward et left.
Pour éviter cette pratique inefficace, nous allons utiliser une boucle pour répéter des instructions.
Par exemple, le programme suivant trace un triangle en répétant trois fois les instructions forward et left.
\begin{minted}{python}
for compteur in range(3):
forward(100)
left(120)
\end{minted}
\textbf{Pour que des actions soient répétées, il faut quelles soient sous la ligne « for » et quelles soient précédées de 4 espaces.}
\end{example}
\begin{exercice}
Recopiez ce programme et exécutez le. Vérifiez quil trace bien un triangle.
\end{exercice}
\begin{exercice}
Modifiez ce programme pour quil trace un carré, puis un hexagone. Quelles modifications faites vous ?
\end{exercice}
%
\section{Des variables} \section{Des variables}
Il commence à être fatigant de recopier toujours les mêmes chiffres.\\ Nous allons essayer de modifier le programme pour quil soit capable de tracer nimporte quel polygone.
Nous allons utiliser deux variables qui nous permettent de stocker une valeur en mémoire pour la réutiliser plus tard.\\ Nous aurons besoin dune variable, contenant le nombre de côtés du polygone.
Ici, la variable $angle$ contiendra langle en degrés entre chaque côtés du polygone et la variable $longueur\_cote$ contiendra la longueur dun côté en pixels. Le reste du programme tracera ce polygone.
\begin{example} \begin{example}
Ce programme python trace un triangle équilatéral de côté 50px Ce programme python trace un triangle équilatéral.
\begin{minted}{python} \begin{minted}{python}
# Dans un premier temps, on fixe les valeurs de nos variables nb_cotes = 3
angle = 120 for compteur in range(nb_cotes):
longueur_cote = 50 forward(100)
# Dans un second temps, on les utilise pour notre programme left(360/nb_cotes)
forward(longueur_cote)
left(angle)
forward(longueur_cote)
left(angle)
forward(longueur_cote)
\end{minted} \end{minted}
Il est strictement équivalent au programe de lexemple 1.
Mais il est maintenant possible de changer tous les angles dun coup en modifiant la valeur de la variable $angle$ à la ligne 2 !\\
\end{example} \end{example}
\begin{exercice} \begin{exercice}
À laide des deux variables de lexemple précédent, tracez un polygone régulier à 16 côtés. Recopiez ce programme et vérifiez quil trace bien un triangle.
\\\textbf{Faites vérifier le programme par le professeur}\\
\end{exercice} \end{exercice}
\section{Des boucles} \begin{exercice}
Modifiez la valeur stockée dans la variable nb\_cotes (vous pouvez par exemple mettre 4, 6, 8 ou 180). Que se passe til ?
\end{exercice}
\section{Écrire un sous-programme}
Pour tracer plusieurs polygone, il nous faudrait copier-coller notre programme.
Le résultat serait difficile à lire et donc à comprendre…
Nous allons créer une fonction (cest un sous-programme) capable de tracer nimporte quel polygone.
Nous pourrons alors exécuter ce sous-programme dès que besoin.
\begin{example} \begin{example}
Une boucle sert à répéter une instruction un nombre précis de fois.
Par exemple, la boucle suivante sert à répéter laction « avancer de 10 pixels » 180 fois :
\begin{minted}{python} \begin{minted}{python}
for compteur in range(180): def polygone(nb_cotes):
forward(10) for compteur in range(nb_cotes):
forward(100)
left(360/nb_cotes)
polygone(3)
polygone(5)
\end{minted} \end{minted}
\textbf{Pour quune action soit répétée, il faut quelle soit sous la ligne « for » et quelle soit précédée de 4 espaces.}
\end{example} \end{example}
\begin{exercice} \begin{exercice}
Tracez maintenant un polygone régulier à 180 côtés. Recopiez ce programme et vérifier quil trace bien deux polygone. Vous pouvez maintenant en une seule ligne, tracer le polygone de votre choix.
Vous vous aiderez dune boucle.
\end{exercice} \end{exercice}
\section{Polygones en folie}
Nous allons ajouter une dernière variable à notre programme python. Elle se nome $nombre_cotes$ et représente le nombre de côtés du polygone que lon veut tracer.
\begin{exercice}
Écrivez un programme python qui est capable de tracer nimporte quel polygone ayant un nombre de côtés définis par la variable $nombre\_cotes$.
\\
\textbf{Faites vérifier le programme par le professeur}\\
Le programme commencera par ces lignes :
\begin{minted}{python}
nombre_cotes = 6
longueur_cote = 20
\end{minted}
\end{exercice}
% Le damier est assez dur à faire sans fonctions, il a occupé tous les élèves rapides que jai eu.
\section{Damier (Bonus)} \section{Damier (Bonus)}
On peut colorier nos polygones à laide des fonctions « begin\_fill » et « end\_fill ». On peut colorier nos polygones à laide des fonctions « begin\_fill » et « end\_fill ».
Voici lexemple dun triangle que lon remplit : Voici lexemple dun triangle que lon remplit :
\begin{minted}{python} \begin{minted}{python}
begin_fill() begin_fill()
forward(50) polygone(4)
left(120)
forward(50)
left(120)
forward(50)
end_fill() end_fill()
\end{minted} \end{minted}
@ -142,12 +143,9 @@ end_fill()
\\\textbf{Faites vérifier le programme par le professeur} \\\textbf{Faites vérifier le programme par le professeur}
\\Indices : \\Indices :
\begin{itemize} \begin{itemize}
\item La première ligne du damier peut être vue comme la répétition dun couple « case blanche + case noire ». \item Écrivez une fonction carre() traçant un carré et carreN() traçant un carré noir. Vous pourrez ainsi construire le damier à laide de ces deux fonctions.
\item La seconde ligne du damier est la répétition dun couple « Case noire + case blanche ». \item Écrivez une fonction ligne() qui trace une ligne de damier.
\item On peut faire dans un premier temps une boucle qui dessine la première ligne. \item Essayez ensuite dexécuter la fonction ligne() pour tracer le damier.
\item On peut ensuite écrire les instructions permettant de se placer pour pouvoir dessiner la seconde ligne.
\item Dans un troisième temps on peut faire la boucle qui dessine la seconde ligne.
\item Finalement, on peut répéter les opérations précédentes 3 fois pour tracer tout le damier.
\end{itemize} \end{itemize}
\end{exercice} \end{exercice}