Skip to content
Snippets Groups Projects
Commit de989c6d authored by Vincent Namy (EDU_GE)'s avatar Vincent Namy (EDU_GE)
Browse files

Fix error

parent c81c4069
Branches
No related tags found
No related merge requests found
{ {"cells":[{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert alert-danger\"> \n \nAttention: **veillez à bien sauvegarder votre travail** dans le bon dossier du disque réseau (dossier document) avec le bon nom (et l'extension *.ipynb*), **sinon toutes les modifications seront perdues!**\n\nPour reprendre votre travail, il suffit d'ouvrir le fichier .ipynb en cliquant sur *Fichier ouvrir*\n</div>"},{"metadata":{},"cell_type":"markdown","source":"# Complément sur les cercles\n\n**Rappel** :\n\n- la fonction `circle(r)` dessine un cercle de rayon `r`, vers la gauche,\n- la fonction `circle(-r)` dessine un cercle de rayon `r`, vers la droite,\n- la fonction `circle(r, a)` dessine un arc de cercle de rayon `r` avec un angle `a`.\n\n"},{"metadata":{},"cell_type":"markdown","source":"## Fonction `circle()`\n\nLa fonction `circle(r)` dessine un cercle de rayon `r`.\nCe cercle est dessiné :\n\n- vers la gauche si `r` est positif,\n- vers la droite si `r` est négatif.\n\n"},{"metadata":{},"cell_type":"markdown","source":"**Rappel** de quelques fonction Turtle avec des exemples qui pourront vous servir\n\n| Fonction |Exemple|Commentaire|\n|:-------- |:------|:----------|\n|forward(x)|forward(150)|Trace un trait de 150 points|\n|backward(x)|backward(150)|Trace un trait “à reculons” de 150 points|\n|left(n)|left(60)|Tourne sur place la tortue de 60° à gauche|\n|right(n)|right(60)|Tourne sur place la tortue de 60° à droite|\n|width(x)|width(5)|Change l’épaisseur à 5 points|\n|color(\"c\")|color(\"yellow\")|Change la couleur du trait (mais aucun trait n’est tracé à ce moment). Notez les guillemets !|\n|penup()|penup()|Lève la tortue (permet de se déplacer sans dessiner)|\n|pendown()|pendown()|Baisse le stylo|"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nleft(90)\ncircle(20)\ncircle(40)\ncircle(60)\ncircle(80)\n\ncircle(-20)\ncircle(-40)\ncircle(-60)\ncircle(-80)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Fleur\n\nDessinons des cercles dans une boucle, et tournons chaque fois.\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 1 </h3>Modifiez le nombre de répétitions et l'angle de rotation.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nfor _ in range(6):\n circle(50)\n left(60)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Arc de cercle\n\nCette fonction peut avoir un deuxième paramètre sous la forme `circle(r, angle)`,\noù `angle` représente l'angle de l'arc de cercle dessiné.\nPar défaut, l'angle est de 360°, donc un cercle entier.\n\nVoici un exemple qui utilise deux demi-cercles de 180°.\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 2 </h3>\n\nDessinez un bonhomme de neige et utilisez `dot()` pour les yeux.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nforward(100)\ncircle(40, 180)\nforward(50)\ncircle(-30)\nforward(50)\ncircle(40, 180)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Carré arrondi\n\nAvec la fonction `circle()`, il est maintenant possible de dessiner un carré dont les coins sont arrondis.\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 3 </h3>Dessinez maintenant un rectangle avec des coins arrondis.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nfor _ in range(4):\n forward(100)\n circle(20, 90)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Pac-Man\n\nPac-Man est un jeu vidéo créé par l’entreprise japonaise Namco, sorti au Japon en 1980. Le jeu consiste à déplacer Pac-Man, un personnage qui ressemble à un diagramme circulaire à l’intérieur d’un labyrinthe, afin de lui faire manger toutes les pac-gommes qui s’y trouvent en évitant d’être touchées par des fantômes.\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 4 </h3>Ajoutez l'œil de Pac-Man, et les points qu'il mange.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nfillcolor('yellow')\nbegin_fill()\nleft(30)\nforward(100)\nleft(90)\ncircle(100, 300)\nleft(90)\nforward(100)\nend_fill()\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Cœur\n\nLe cœur est le symbole de l'amour : on donne de façon métaphorique son cœur à la personne que l'on aime pour lui signifier qu'on lui confie sa vie.\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 5 </h3>Coloriez le cœur en rouge, ajoutez une flèche.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\nr = 50\n\nleft(90)\ncircle(r, 225)\nforward(2.4*r)\nleft(90)\nforward(2.4*r)\ncircle(r, 225)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Infini — ∞\n\nLe mot **infini** (du latin in-, préfixe négatif, et finitus, *limité*) est un adjectif servant à qualifier quelque chose qui n'a pas de limite en nombre ou en taille. L'infini est représenté par le symbole ∞. Nous allons le dessiner.\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 6 </h3>Augmentez un des rayons à `2*r` et ajustez la longueur des segments droits.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nright(45)\nforward(50)\ncircle(50, 270) # aumentez le rayon à 2*r\nforward(2*50)\ncircle(-50, 270)\nforward(50)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Bretzel - ⌘\n\nLe pictogramme ⌘ (Unicode 2318), parfois appelé *Gordon loop* ou *bretzel*, a été dessiné par Susan Kare lors de la création du premier Macintosh pour sa touche de commande. Il sert de préfixe à d'autres touches pour construire des raccourcis tels que :\n\n- ⌘-X pour couper\n- ⌘-C pour copier\n- ⌘-V pour coller\n\n"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 7 </h3>Modifiez le bretzel pour avoir 3 ou 4 boucles.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nfor _ in range(4):\n circle(40, 270)\n forward(3*40)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"\n \n\n"},{"metadata":{},"cell_type":"markdown","source":"---\n\n#### Remarque générale\n\nCe document est une adaptation d'un ressource pédagogique tiré du catalogue modulo https://modulo-info.ch/. Il est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n![Licence Creative Commons](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)\n\n "}],"metadata":{"kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.10.12"}},"nbformat":4,"nbformat_minor":2}
"cells": [ \ No newline at end of file
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class = \"alert alert-danger\"> \n",
" \n",
"Attention: **veillez à bien sauvegarder votre travail** dans le bon dossier du disque réseau (dossier document) avec le bon nom (et l'extension *.ipynb*), **sinon toutes les modifications seront perdues!**\n",
"\n",
"Pour reprendre votre travail, il suffit d'ouvrir le fichier .ipynb en cliquant sur *Fichier ouvrir*\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Rappel de quelques fonction de Turtle avec des exemples qui pourront vous servir\n",
"\n",
"| Fonction |Exemple|Commentaire|\n",
"|:-------- |:------|:----------|\n",
"|forward(x)|forward(150)|Trace un trait de 150 points|\n",
"|backward(x)|backward(150)|Trace un trait “à reculons” de 150 points|\n",
"|left(n)|left(60)|Tourne sur place la tortue de 60° à gauche|\n",
"|right(n)|right(60)|Tourne sur place la tortue de 60° à droite|\n",
"|width(x)|width(5)|Change l’épaisseur à 5 points|\n",
"|color(\"c\")|color(\"yellow\")|Change la couleur du trait (mais aucun trait n’est tracé à ce moment). Notez les guillemets !|\n",
"|penup()|penup()|Lève la tortue (permet de se déplacer sans dessiner)|\n",
"|pendown()|pendown()|Baisse le stylo|"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. Répéter - `for`\n",
"\n",
"Dans ce chapitre, nous découvrons comment utiliser une boucle `for` pour répéter un bloc d'instructions un certain nombre de fois. Nous allons voir que :\n",
"\n",
"* la boucle `for` permet de répéter des instructions,\n",
"* la structure `for _ in range(n):` permet de répéter un bloc un nombre `n` fois,\n",
"* les instructions, qui sont répétées, sont celles qui suivent le `:` et qui sont indentées (décalées à droite). En effet, le langage python, n'a pas de end for pour indiquer la fin de la boucle. Le langage utilise l'indentation pour signifier qu'une suite d'instruction fait partie de la boucle.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n",
" \n",
"```\n",
"Une boucle informatique est\n",
"\n",
"A) une instruction\n",
"B) un passage ondulé\n",
"C) une section de code répétée\n",
"D) une protection thermique\n",
"E) un cercle dessiné par \"Turtle\"\n",
"```"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Ta réponse : "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details>\n",
"<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \n",
"Réponse (Cliquer pour dévoiler)\n",
"</summary> \n",
"\n",
"<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n",
"\n",
"C) une section de code répétée\n",
"</div>\n",
"</details>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.1 La répétition\n",
"\n",
"Revenons vers un exemple simple : dessiner un carré.\n",
"\n",
"Si nous regardons le code de près, nous pouvons voir que nous répétons 4 fois les mêmes deux instructions `forward()` et `left()`.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"forward(100)\n",
"left(90)\n",
"forward(100)\n",
"left(90)\n",
"forward(100)\n",
"left(90)\n",
"forward(100)\n",
"left(90)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ne serait-ce pas pratique de pouvoir dire à la tortue de répéter ces instructions 4 fois ?\n",
"Ceci est possible avec une boucle `for`. \n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 1 </h3>Transformez le rectangle en triangle.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(4):\n",
" forward(100)\n",
" left(90)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-warning\"><b>A savoir:</b> \n",
" \n",
"Pour distinguer les instructions qui seront répétées de celles qui ne le seront pas, on <b>indente</b> le code, c'est-à-dire que toutes les instructions qui suivent le `for` qui commencent par un espacement seront répétées le nombre de fois explicité dans le `range`. Après les répétitions le programme exécutera la permière instruction qui n'est pas indentée.\n",
"\n",
"NB: Vous être libre de choisir l'espace d'indentation mais soyez rigoureux avec votre choix et garder la même valeur pour tout votre programme. Nous utilisons en général un espace de 4 caractères ou la <b>touche Tabulation</b> pour rendre les codes plus lisibles.\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n",
" \n",
"```\n",
"\n",
"Une indentation de texte est\n",
"\n",
"A) un décalage vers la gauche\n",
"B) un décalage vers la droite\n",
"C) une mise en paragraphe\n",
"D) une mise en sous-section\n",
"```"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Ta réponse : "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details>\n",
"<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \n",
"Réponse (Cliquer pour dévoiler)\n",
"</summary> \n",
"\n",
"<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n",
"\n",
"B) un décalage vers la droite\n",
"</div>\n",
"</details>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n",
" \n",
"```\n",
"Avez-vous compris la notion d'indentation ?\n",
"Dans l'exemple ci-dessous (juste après la question/réponses) combien de fois le texte \"Au revoir\" va être affiché ?\n",
"Essayer de répondre puis exécuter le programme qui suit pour vérifier votre réponse\n",
"\n",
"A) 0 fois\n",
"B) 1 fois\n",
"C) 5 fois\n",
"D) le code fera une une erreur à cause de l'indentation dans la boucle for\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Dans cette exemple l'instruction B ne fait pas partie de la boucle.\n",
"\n",
"for _ in range(5):\n",
" print(\"Hello\")\n",
" print(\"----------\")\n",
"print(\"Au revoir\")"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"Ta réponse : "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<details>\n",
"<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \n",
"Réponse (Cliquer pour dévoiler)\n",
"</summary> \n",
"\n",
"<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n",
"\n",
"B) 1 fois\n",
"</div>\n",
"</details>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.3 Faire des figures avec les boucles\n",
"\n",
"### Polygone régulier\n",
"Avec une boucle `for`, nous pouvons simplifier le dessin des formes symétriques."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 2 </h3>\n",
"\n",
"1. Utiliser une boucle pour réécrire le programme ci-dessous \n",
"2. Quelle est la figure dessinée ?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"forward(100)\n",
"left(60)\n",
"forward(100)\n",
"left(60)\n",
"forward(100)\n",
"left(60)\n",
"forward(100)\n",
"left(60)\n",
"forward(100)\n",
"left(60)\n",
"forward(100)\n",
"left(60)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 3 </h3>\n",
"\n",
"Compléter le programme ci-dessous pour tracer un octogone. Un octogone est un polygone à huit sommets, donc huit côtés."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"forward(100)\n",
"left(45)\n",
"\n",
"# à compléter\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Escalier\n",
"\n",
"Pour dessiner un escalier, il faut simplement répéter dans une boucle le dessin pour une seule marche.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(5):\n",
" forward(20)\n",
" left(90)\n",
" forward(20)\n",
" right(90)\n",
"\n",
"forward(100)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pour dessiner des dents de scie, il faut simplement répéter dans une boucle le dessin pour une seule dent.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 4 </h3>\n",
"\n",
"Dessinez une usine avec un toit en dents de scie.\n",
"![Image de losange](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap2/Toit_dent_de_scie.svg)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(4):\n",
" left(45)\n",
" forward(71)\n",
" right(135)\n",
" forward(50)\n",
" left(90)\n",
"\n",
"forward(80)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Éventail\n",
"\n",
"Que se passe-t-il si nous dessinons une ligne (`forward()`/`backward()`) et tournons chaque fois d'un petit angle ?\n",
"C'est un peu comme un éventail qui s'ouvre.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 5 </h3>\n",
"\n",
"Doublez l'angle de rotation dans `left()`."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(18):\n",
" forward(100)\n",
" backward(100)\n",
" left(10)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 6 </h3>\n",
"\n",
"Que se passe-t-il si nous avançons plus que nous reculons ?\n",
"Une toute petite modification du programme peut faire une chouette différence.\n",
"\n",
"Modifiez les valeurs dans `forward()` et `backward()`.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(18):\n",
" forward(100)\n",
" backward(90)\n",
" left(20)\n",
"\n",
"done()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Étoile\n",
"\n",
"Voici une autre façon de toujours avancer, mais en tournant chaque fois d'un angle un peu plus petit que 180°.\n",
"Essayons !\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 7 </h3>\n",
"\n",
"Essayez de changer le nombre de pics de l'étoile."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(9):\n",
" forward(200)\n",
" left(160)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Cercle\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 8 </h3>\n",
"\n",
"Compléter la boucle for pour dessiner trois cercles rouge de rayon 50 collés les uns aux autres comme sur le dessin:\n",
"![Image de losange](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap2/3cercles.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Rappel: \n",
"\n",
"La fonction circle(R, A) permet de dessiner un arc de cercle de rayon R et d'angle A.\n",
"\n",
"Exemple: circle(100, 360) dessine un cercle de rayon 100.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"color('red')\n",
"for _ in range(3):\n",
" \n",
"\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.4 Explorer \"La tortue\"\n",
"\n",
"Voici quelques fonctions de la tortue.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Estampe\n",
"\n",
"Vous pouvez laisser une impression de la tortue à sa position actuelle avec la fonction `stamp()`.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"shape('turtle')\n",
"\n",
"for _ in range(6):\n",
" forward(100)\n",
" left(60)\n",
" stamp()\n",
"\n",
"done()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Forme\n",
"\n",
"Vous pouvez changer la forme de votre tortue avec la fonction `shape()`.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 9 </h3>Essayez les formes 'triangle', 'arrow', 'circle' et 'square'.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"shape('turtle')\n",
"\n",
"for _ in range(6):\n",
" forward(100)\n",
" left(60)\n",
" stamp()\n",
"\n",
"done()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.5 Les erreurs\n",
"\n",
"Il est important de bien lire et comprendre les messages d'erreur.\n",
"Dans cette section, vous allez découvrir les différentes catégories d'erreur et comment les corriger.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### ImportError\n",
"\n",
"Cette erreur survient lorsque vous essayez d'importer un module qui n'existe pas.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 10 </h3>Corrigez l'erreur d'importation.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtl import *\n",
"\n",
"for i in range(3):\n",
" forward(100)\n",
" left(120)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### <font color='red'>SyntaxError</font>\n",
"\n",
"Cette erreur survient lorsque vous écrivez mal un mot-clé, ou si vous oubliez une ponctuation. Dans ce cas, le mot-clé mal écrit n'est pas reconnu et il n'est pas colorié correctement dans votre code.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 11 </h3>Corrigez les trois erreurs de syntaxe et remarquez les éventuelles différences de stylisation.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"fro turtle import *\n",
"\n",
"fore i in range(3)\n",
" forward(100)\n",
" left(120)\n",
"\n",
"done()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### <font color='red'>NameError</font>\n",
"\n",
"Cette erreur survient lorsque vous écrivez mal le nom d'une variable ou fonction.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 12 </h3>Corrigez les trois erreurs de nom.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range(n):\n",
" forwarde(100)\n",
" lefft(120)\n",
"\n",
"done()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### <font color='red'>TypeError</font>\n",
"\n",
"Cette erreur survient lorsque vous ne mettez pas le nombre d'arguments corrects pour une fonction.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 13 </h3>Corrigez les trois erreurs de type.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"for _ in range():\n",
" forward()\n",
" left(100, 120)\n",
"\n",
"done()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercices d'entraînement "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 14 </h3>\n",
"\n",
"Réécrire le code suivant en remplaçant par une boucle `for` partout où c’est possible.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from turtle import *\n",
"\n",
"forward(20)\n",
"right(40)\n",
"forward(20)\n",
"right(40)\n",
"forward(20)\n",
"right(40)\n",
"forward(20)\n",
"right(40)\n",
"forward(-40)\n",
"left(30)\n",
"forward(-40)\n",
"left(30)\n",
"forward(20)\n",
"right(40)\n",
"forward(20)\n",
"right(40)\n",
"forward(-40)\n",
"left(30)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 15 </h3>\n",
"\n",
"Utiliser votre identifiant EEL et le mot de passe *Sismondi2024* pour faire les exercices de la **série B** de la plateforme [AlgoPython](https://www.algopython.fr/login). [![A mushroom-head robot](https://www.algopython.fr/css/img/navbar-logo.png 'AlgoPython')](https://www.algopython.fr/login)\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"\n",
"#### Remarque générale\n",
"\n",
"Ce document est une adaptation d'un ressource pédagogique tiré du catalogue modulo https://modulo-info.ch/. Il est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n",
"![Licence Creative Commons](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)\n"
]Update
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment