diff --git a/Notebooks/05_Les_variables.ipynb b/Notebooks/05_Les_variables.ipynb
index 75848a22a9ebc4f8b1f9ba406b9d5971745e1d5d..a4f02a264aeafe20fe7b341f699cc485de656f8a 100644
--- a/Notebooks/05_Les_variables.ipynb
+++ b/Notebooks/05_Les_variables.ipynb
@@ -1 +1,370 @@
-{"cells":[{"metadata":{},"cell_type":"markdown","source":"<div style=\"padding:20px;background-color:papayawhip;\" >\n    \n<h3 style=\"color:chocolate\"> <i class=\"fa fa-info\" aria-hidden=\"true\"> </i> &nbsp; Remarque introductive &nbsp;  <i class=\"fa fa-info\" aria-hidden=\"true\"></h3> \n<p> Ce fichier est fait pour être lu sur le site <a href=\"https://notebook.basthon.fr/\"><img src='https://notebook.basthon.fr/assets/efede5218c9087496f16.png' style=\"border: 0; display:inline; margin: 0 5px; height:30px\" alt=\"Basthon\"/></a>. <br>\n    \nSi vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>\nVeuillez cliquez sur <a href=\"https://notebook.basthon.fr/\">ce lien</a> et y charger ce fichier à l'aide du bouton \"Ouvrir\"  &nbsp; <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> \n</div>"},{"metadata":{},"cell_type":"markdown","source":"# 5. Les variables 1, premières notions\n\nDans cette leçon, nous allons étudier le concept de variables. Dans la leçon 4 sur les fonctions avec paramètres, nous avons vu qui'il était possible de paramètrer les fonctions afin que leur comportement varient. Ces paramètres permettent d'indiquer, par exemple, \n\n- qu'une fonction `rect(d, e)` trace un rectangle où les paramètres `d, e` donnent les dimensions du rectangle.\n- qu'une fonction `maison(c)` dessine une maison où `c` permet de spécifier la couleur du rectangle.\n\n## Qu'est-ce qu'une variable ?\n\n<blockquote class=\"alert alert-info\" style=\"background-color:rgb(220,240,255); margin:10px 10%;\">\n    <p><span style=\"font-size:1.5em\">❔</span> C'est quoi une variable ? Exécutez la cellule ci-dessous pour voir une petite introduction à la notion de variable</p>\n</blockquote>\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from IPython.display import HTML\nHTML(\"\"\"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ckP-MPyGhow?si=aJMea7YJIl_i_8Rq\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>\"\"\")","execution_count":1,"outputs":[{"output_type":"execute_result","execution_count":1,"data":{"text/plain":"<IPython.display.HTML object at 0x1219880>","text/html":"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ckP-MPyGhow?si=aJMea7YJIl_i_8Rq\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"En programmation, une variable est un espace réservé en mémoire pour stocker des valeurs qui peuvent être utilisées et modifiées dans vos programmes. Pensez-y comme une boîte avec un nom que vous pouvez utiliser pour stocker et récupérer des informations.\n\n<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n\n```\n✍️  Qu'est-ce qu'une variable en Python ?\n\nA) Un type de données\nB) Un opérateur de mathématiques\nC) Un espace réservé pour stocker des valeurs\nD) Une fonction\n```"},{"metadata":{},"cell_type":"raw","source":"Votre réponse: "},{"metadata":{},"cell_type":"markdown","source":"<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nLa solution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC) Un espace réservé pour stocker des valeurs\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"## Règles de Nommage\n1. Le nom d'une variable doit commencer par une lettre ou un underscore (_).\n2. Le nom ne peut pas commencer par un chiffre.\n3. Le nom peut contenir uniquement des lettres, des chiffres et des underscores.\n4. Les noms de variables sont sensibles à la casse (age, Age et AGE sont différents).\n\n<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n \n```\n✍️ Quel nom de variable est invalide en Python ?\n\nA) nom\nB) _var3\nC) 3variable\nD) variableNom\n```"},{"metadata":{},"cell_type":"raw","source":"Votre réponse: "},{"metadata":{},"cell_type":"markdown","source":"<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nLa solution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC) 3variable\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"## Création et Affectation de Variables\n\nPour créer une variable en Python, il vous suffit de choisir un nom et de lui affecter une valeur à l'aide du signe égal `=`.\n\n```python\n# Exemple de création de variables\nage = 17\nnom = \"Alice\"\npi = 3.14159\n```\n\n## Exemples d'utilisation de variables\n\n### Exemple 1 : Faire des calculs\nLes variables permettent de stocker des données et de les faire évoluer. Lorsque les variables contiennent des données numériques, il est possible de faire des caculs en tutilisant les opérateurs `+`, `-`, `*`, `/` et `**`ainis que `%` et `//` si ce sont des valeurs entières. Par exemple, si on teste le programme suivant"},{"metadata":{"trusted":true},"cell_type":"code","source":"r = 2\npi = 3.14159\nA = pi*r**2\nprint(\"L'aire d'un disque de rayon \",r,\" vaut \", A)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On obtient un programme qui affiche l'aire d'un disque de rayon 2.\n\n### Exemple 2 : Apporter des variations à des répétitions\n\nOn peut modifier une variable à chaque itération d'une boucle `for`. On peut, par exemple, utiliser une variable pour afficher une table de mutiliplication. Vérifier que le programme suivant affiche bien la table de multiplication de 7:"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"n = 1\nfor _ in range(10):\n    print(n, \" x 7 =\", n*7)\n    n = n + 1","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Pour ajouter 1 à la variable `n`, on écrit `n = n + 1` qui consiste à remplacer la valeur de `n` par son ancienne valeur plus 1.\n\nOn peut utiliser un procéder similaire pour tracer une spirales, comme le fait le programme suivant:"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"from turtle import *\n        \nx = 20\nfor _ in range(30):\n    forward(x)\n    left(90)\n    x = x + 10\n    \ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Exemple 3 : Variables avec une fonction avec paramètre. \n\nOn peut utiliser la valeur d'une variable comme argument d'une fonction. Le programme suivant va permettre de dessiner des triangles de plus en plus grands:"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\ndef triangle(l):\n    for _ in range(3):\n        forward(l)\n        left(120)\n        \nx = 20\nfor _ in range(4):\n    triangle(x)\n    forward(x + 10)\n    x = x + 20\n    \ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Exercices\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 1 </h3>\n\nOn considère le programme Python suivant :\n\n```python\na = 4\nb = 5\nc = a + b\nd = c / 2\n```\n\n✍️ **Question 1** : Déterminez mentalement la valeur de la variable `d` à l'issue de ce programme ? "},{"metadata":{},"cell_type":"raw","source":"Votre réponse : "},{"metadata":{},"cell_type":"markdown","source":"🐍 **Question 2** : Recopiez ce programme dans la cellule ci-dessous, puis ajouter un dernière ligne où vous utilisez la fonction `print` pour afficher la valeur de la variable `d` et ainsi valider votre réponse."},{"metadata":{"trusted":true},"cell_type":"code","source":"# recopiez votre programme ici","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"🐍 **Question 3** : Exécutez la cellule ci-dessous puis exécutez le programme ligne par ligne avec les boutons <button class='fa'>Forward ></button> et <button class='fa'>&lt; Back</button> pour bien comprendre son fonctionnement.\n\n> On utilise ici les fonctionnalités de la bibliothèque `tutor` qui permet d'exécuter un programme ligne par ligne."},{"metadata":{"trusted":true},"cell_type":"code","source":"from tutor import tutor  # on importe la fonction tutor de la bibliothèque tutor\n\na = 4\nb = 5\nc = a + b\nd = c / 2\n\ntutor()  # on utilise cette fonction pour visualiser le programme ligne par ligne","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"🐍 **Question 4** : On considère maintenant que `a` et `b` correspondent à des notes. Réécrivez le programme en utilisant des noms de variables plus représentatifs (pour les 4 variables)."},{"metadata":{"trusted":true},"cell_type":"code","source":"# recopiez votre programme ici","execution_count":null,"outputs":[]},{"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\nOn considère le programme Python suivant :\n\n```python\na = 10\nb = 3\na = a - 4\nb = 2 * b\na = a + b\nprint(a)\n```\n\n✍️ **Question 1** : Combien de variables sont utilisées ? Donnez leurs noms."},{"metadata":{},"cell_type":"raw","source":"Votre réponse : "},{"metadata":{},"cell_type":"markdown","source":"<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nLa solution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n    \nIl y a deux variable `a` et `b`\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"✍️ **Question 2** : Déterminez mentalement la valeur finale de la variable `a` ?"},{"metadata":{},"cell_type":"raw","source":"Votre réponse : "},{"metadata":{},"cell_type":"markdown","source":"🐍 **Question 3** : Vérifiez votre réponse en recopiant le programme dans la cellule ci-dessous puis en exécutant ce programme."},{"metadata":{"trusted":true},"cell_type":"code","source":"# recopiez votre programme ici","execution_count":null,"outputs":[]},{"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>\n\nOn doit écrire un programme Python qui effectue le opérations suivantes.\n\n-   Créer une variables `A` qui prend la valeur 5\n-   Multiplier A par 3\n-   Soustraire 4 au résultat\n-   Elever le résultat au carré\n-   Afficher le résultat\n\nChaque ligne correspond à une ligne de code Python.\n\n🐍 **Question** : Écrivez un programme Python permettant de coder ce programme. Vérifiez ensuite en l'exécutant.  **Le programme doit faire 5 lignes de code et afficher 121**"},{"metadata":{"trusted":true},"cell_type":"code","source":"# recopiez votre programme ici","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"!!! info Nom des variables\nIl n'y avait pas de contexte particulier dans les deux dernier exercices, c’est pourquoi on a utilisé des noms de variables peu représentatifs. Le but principal de ces exercces était  de faire ancrer les notions étudiées plus haut dans le document.\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>\n\nComplétez les programme ci-dessous (remplacez les `...`)  afin qu’ils effectuent la bonne tâche.\n\n**Programme A** <br>\nLe programme A doit afficher les nombre des 10 à 60, de 10 en 10"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = ...\nfor _ in range(...):\n    print(x)\n    x = ...","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**  <br>\nLe programme B doit faire un compte-à-rebours de 10 à 0:"},{"metadata":{"trusted":true},"cell_type":"code","source":"...\nfor _ in range(...):\n    print(...)\n    ...\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C** <br>\nLe programme C écrit les 8 premiers multiples de 7:"},{"metadata":{"trusted":true},"cell_type":"code","source":"...\nfor _ in range(...):\n    print()\n    ...","execution_count":null,"outputs":[]},{"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>\n\nInspirez vous de l'exemple 2 ci-dessus pour compléter le programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_spirale.png)\n\n*Indications:*\n- *On supposera que le côté d’un carré est 50 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la spirale.*\n- **Vous ne devez par rajouter plus de 5 lignes de code**"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"from turtle import *\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(-200, -200)\npendown()\n\n# mettre le bon style de trait\nwidth(5)\ncolor(\"red\")\n\n# à compléter avec maximum 5 lignes\n\ndone()","execution_count":null,"outputs":[]},{"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>\n\nInspirer de l'exemple 2 ci-dessus pour compléter le programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_2spirales.png)\n\n*Indications:*\n- *On supposera que le côté d’un carré est 50 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la figure.*\n- **Vous ne devez par rajouter plus de 13 lignes de code**"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"from turtle import *\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(0, -100)\npendown()\n\n\nwidth(5) # trait épais\n\n# à compléter avec maximum 13 lignes\n\ndone()","execution_count":null,"outputs":[]},{"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>\n\n1. Testez le programme suivant (voir plus bas pour tester) :\n\n```Python\nfrom turtle import *\n\n# pour être à gauche du canevas\nbackward(250)\n\n# Code à factoriser\nfor k in range(3):\n    forward(30)\n    right(120)\nforward(30)\nfor k in range(3):\n    forward(60)\n    right(120)\nforward(60)\nfor k in range(3):\n    forward(90)\n    right(120)\nforward(90)\nfor k in range(3):\n    forward(120)\n    right(120)\nforward(120)\nfor k in range(3):\n    forward(150)\n    right(120)\n\ndone()\n```\n2. Définissez une fonction `triangle(l)`, qui permet de tracer des triangles équilatéraux de longueur `l`, et utilisez-là pour réduire le nombre d’instructions du programme.\n\n**NB**: Le nombre d'instructions du programme doit être au moins divisé par 2."},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\n# pour être à gauche du canevas\nbackward(250)\n\n# Code à factoriser\nfor _ in range(3):\n    forward(30)\n    right(120)\nforward(30)\nfor _ in range(3):\n    forward(60)\n    right(120)\nforward(60)\nfor _ in range(3):\n    forward(90)\n    right(120)\nforward(90)\nfor _ in range(3):\n    forward(120)\n    right(120)\nforward(120)\nfor _ in range(3):\n    forward(150)\n    right(120)\n\ndone()\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 8 </h3>\n\nInspirez vous de l'exemple 3 ci-dessus pour écrire un programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_carres.png)\n\nVotre programme définira une fonction `carre(longueur)` où le paramètre longueur représente la longueur du carré. Puis, le programme utilisera cette fonction dans une boucle.\n\n*Indications:*\n- *On supposera que le côté d’un carré est de 50 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la figure.*\n- **Vous ne devez par rajouter plus de 8 lignes de code**"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"from turtle import *\n\ndef carre(longueur):\n    # code de la fonction à compléter\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(-200, -200)\npendown()\n\n# mettre le bon style de trait\nwidth(5)\ncolor(\"red\")\n\n# à compléter avec une boucle\n\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 9 </h3>\n\nInspirez vous de l'exemple 3 ci-dessus pour écrire un programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_triangles.png)\n\nVotre programme définira une fonction `triangles(longueur)` où le paramètre longueur représente la longueur du carré. Puis, le programme utilisera cette fonction dans une boucle.\n\n*Indications:*\n- *On supposera que le côté d’un carré est de 25 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la figure.*\n- *La taille des triangles diminue de 25 pixels entre chaque triangle.*\n- **Vous ne devez par rajouter plus de 9 lignes de code**"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"from turtle import *\n\ndef triangle(longueur):\n    # code de la fonction à compléter\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(-200, -200)\npendown()\n\n# mettre le bon style de trait\nwidth(3)\ncolor(\"red\")\n\n# à compléter avec une boucle\n\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## L'indice d'un boucle `for`, une variable gratuite\n\nIl est possible de remplacer le symbole `_` dans une boucle `for` par le nom d'une variable qu'on appelle l'indice de la boucle. Cette variable sera intitialisée à `0` puis sera incrémenté de `1` après chaque itération. Par exemple le programme \n```python\nk = 0\nfor _ in range(10):\n    print(k)\n    k = k + 1\n```\n\nest équivalent au programme suivant:\n```python\nfor k in range(10):\n    print(k)\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>\n\nRécrire l'exemple 2 de la table de mutliplication de 7 en utilisant un indice de boucle `for`.\n\n```python\nn = 1\nfor _ in range(10):\n    print(n, \" x 7 =\", n*7)\n    n = n + 1\n```\n\n*Indication:*\n- **Votre programme dois contenir seulement 2 lignes**"},{"metadata":{"trusted":true},"cell_type":"code","source":"# votre programme","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"markdown","source":"# 🟥  Fin\n\n<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n    \n- **Ne pas Oublier de sauvegarder son travail.**\n    \n- **Pour effectuer** une sauvegarde personnelle du document obtenu :\n   - utilisez le menu `Fichier / Enregistrer sous…`.\n   - nomez le fichier `variables1.ipynb`\n   - choisissez de sauver votre fichier dans `Documents/1IN/Programmation/Les_variables`.\n\n    </div>\n\n---\n\n#### Remarque générale\n\nCe document c'est inspiré des notebook trouvé sur\n- Les ressources pédagogiques du [Lycée Levavasseur](https://www.levavasseur.xyz/NSI_P/Python/Python.html) \n- Les ressources pédagogiques du [Lycée Mounier](https://info-mounier.fr/snt/python/) \n\nLe notebook 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)"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "<div style=\"padding:20px;background-color:papayawhip;\" >\n    \n<h3 style=\"color:chocolate\"> <i class=\"fa fa-info\" aria-hidden=\"true\"> </i> &nbsp; Remarque introductive &nbsp;  <i class=\"fa fa-info\" aria-hidden=\"true\"></h3> \n<p> Ce fichier est fait pour être lu sur le site <a href=\"https://notebook.basthon.fr/\"><img src='https://notebook.basthon.fr/assets/efede5218c9087496f16.png' style=\"border: 0; display:inline; margin: 0 5px; height:30px\" alt=\"Basthon\"/></a>. <br>\n    \nSi vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>\nVeuillez cliquez sur <a href=\"https://notebook.basthon.fr/\">ce lien</a> et y charger ce fichier à l'aide du bouton \"Ouvrir\"  &nbsp; <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> \n</div>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "# 5.1 Les variables, premières notions\n\nDans cette leçon, nous allons étudier le concept de variables. Dans la leçon 4 sur les fonctions avec paramètres, nous avons vu qui'il était possible de paramètrer les fonctions afin que leur comportement varient. Ces paramètres permettent d'indiquer, par exemple, \n\n- qu'une fonction `rect(d, e)` trace un rectangle où les paramètres `d, e` donnent les dimensions du rectangle.\n- qu'une fonction `maison(c)` dessine une maison où `c` permet de spécifier la couleur du rectangle.\n\n## Qu'est-ce qu'une variable ?\n\n<blockquote class=\"alert alert-info\" style=\"background-color:rgb(220,240,255); margin:10px 10%;\">\n    <p><span style=\"font-size:1.5em\">❔</span> C'est quoi une variable ? Regarder cette petite introduction à la notion de variable</p>\n</blockquote>\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "trusted": true
+   },
+   "source": "<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ckP-MPyGhow?si=aJMea7YJIl_i_8Rq\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "En programmation, une variable est un espace réservé en mémoire pour stocker des valeurs qui peuvent être utilisées et modifiées dans vos programmes. Pensez-y comme une boîte avec un nom que vous pouvez utiliser pour stocker et récupérer des informations.\n\n<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n\n```\n✍️  Qu'est-ce qu'une variable en Python ?\n\nA) Un type de données\nB) Un opérateur de mathématiques\nC) Un espace réservé pour stocker des valeurs\nD) Une fonction\n```"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Votre 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\"> \nLa solution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC) Un espace réservé pour stocker des valeurs\n</div>\n</details>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Règles de Nommage\n1. Le nom d'une variable doit commencer par une lettre ou un underscore (_).\n2. Le nom ne peut pas commencer par un chiffre.\n3. Le nom peut contenir uniquement des lettres, des chiffres et des underscores.\n4. Les noms de variables sont sensibles à la casse (age, Age et AGE sont différents).\n\n<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n \n```\n✍️ Quel nom de variable est invalide en Python ?\n\nA) nom\nB) _var3\nC) 3variable\nD) variableNom\n```"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Votre 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\"> \nLa solution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC) 3variable\n</div>\n</details>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Création et Affectation de Variables\n\nPour créer une variable en Python, il vous suffit de choisir un nom et de lui affecter une valeur à l'aide du signe égal `=`.\n\n```python\n# Exemple de création de variables\nage = 17\nnom = \"Alice\"\npi = 3.14159\n```\n\n## Exemples d'utilisation de variables\n\n### Exemple 1 : Faire des calculs\nLes variables permettent de stocker des données et de les faire évoluer. Lorsque les variables contiennent des données numériques, il est possible de faire des caculs en tutilisant les opérateurs `+`, `-`, `*`, `/` et `**`ainis que `%` et `//` si ce sont des valeurs entières. Par exemple, si on teste le programme suivant"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "r = 2\npi = 3.14159\nA = pi*r**2\nprint(\"L'aire d'un disque de rayon \",r,\" vaut \", A)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "On obtient un programme qui affiche l'aire d'un disque de rayon 2.\n\n### Exemple 2 : Apporter des variations à des répétitions\n\nOn peut modifier une variable à chaque itération d'une boucle `for`. On peut, par exemple, utiliser une variable pour afficher une table de mutiliplication. Vérifier que le programme suivant affiche bien la table de multiplication de 7:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "n = 1\nfor _ in range(10):\n    print(n, \" x 7 =\", n*7)\n    n = n + 1"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Pour ajouter 1 à la variable `n`, on écrit `n = n + 1` qui consiste à remplacer la valeur de `n` par son ancienne valeur plus 1.\n\nOn peut utiliser un procéder similaire pour tracer une spirales, comme le fait le programme suivant:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": true,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n        \nx = 20\nfor _ in range(30):\n    forward(x)\n    left(90)\n    x = x + 10\n    \ndone()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Exemple 3 : Variables avec une fonction avec paramètre. \n\nOn peut utiliser la valeur d'une variable comme argument d'une fonction. Le programme suivant va permettre de dessiner des triangles de plus en plus grands:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\ndef triangle(l):\n    for _ in range(3):\n        forward(l)\n        left(120)\n        \nx = 20\nfor _ in range(4):\n    triangle(x)\n    forward(x + 10)\n    x = x + 20\n    \ndone()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Exercices\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 1 </h3>\n\nOn considère le programme Python suivant :\n\n```python\na = 4\nb = 5\nc = a + b\nd = c / 2\n```\n\n✍️ **Question 1** : Déterminez mentalement la valeur de la variable `d` à l'issue de ce programme ? "
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Votre réponse : "
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "🐍 **Question 2** : Recopiez ce programme dans la cellule ci-dessous, puis ajouter un dernière ligne où vous utilisez la fonction `print` pour afficher la valeur de la variable `d` et ainsi valider votre réponse."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# recopiez votre programme ici"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "🐍 **Question 3** : Exécutez la cellule ci-dessous puis exécutez le programme ligne par ligne avec les boutons <button class='fa'>Forward ></button> et <button class='fa'>&lt; Back</button> pour bien comprendre son fonctionnement.\n\n> On utilise ici les fonctionnalités de la bibliothèque `tutor` qui permet d'exécuter un programme ligne par ligne."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from tutor import tutor  # on importe la fonction tutor de la bibliothèque tutor\n\na = 4\nb = 5\nc = a + b\nd = c / 2\n\ntutor()  # on utilise cette fonction pour visualiser le programme ligne par ligne"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "🐍 **Question 4** : On considère maintenant que `a` et `b` correspondent à des notes. Réécrivez le programme en utilisant des noms de variables plus représentatifs (pour les 4 variables)."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# recopiez votre programme ici"
+  },
+  {
+   "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\nOn considère le programme Python suivant :\n\n```python\na = 10\nb = 3\na = a - 4\nb = 2 * b\na = a + b\nprint(a)\n```\n\n✍️ **Question 1** : Combien de variables sont utilisées ? Donnez leurs noms."
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Votre 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\"> \nLa solution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n    \nIl y a deux variable `a` et `b`\n</div>\n</details>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "✍️ **Question 2** : Déterminez mentalement la valeur finale de la variable `a` ?"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Votre réponse : "
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "🐍 **Question 3** : Vérifiez votre réponse en recopiant le programme dans la cellule ci-dessous puis en exécutant ce programme."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# recopiez votre programme ici"
+  },
+  {
+   "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\nOn doit écrire un programme Python qui effectue le opérations suivantes.\n\n-   Créer une variables `A` qui prend la valeur 5\n-   Multiplier A par 3\n-   Soustraire 4 au résultat\n-   Elever le résultat au carré\n-   Afficher le résultat\n\nChaque ligne correspond à une ligne de code Python.\n\n🐍 **Question** : Écrivez un programme Python permettant de coder ce programme. Vérifiez ensuite en l'exécutant.  **Le programme doit faire 5 lignes de code et afficher 121**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# recopiez votre programme ici"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "!!! info Nom des variables\nIl n'y avait pas de contexte particulier dans les deux dernier exercices, c’est pourquoi on a utilisé des noms de variables peu représentatifs. Le but principal de ces exercces était  de faire ancrer les notions étudiées plus haut dans le document.\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\nComplétez les programme ci-dessous (remplacez les `...`)  afin qu’ils effectuent la bonne tâche.\n\n**Programme A** <br>\nLe programme A doit afficher les nombre des 10 à 60, de 10 en 10"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "x = ...\nfor _ in range(...):\n    print(x)\n    x = ..."
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme B**  <br>\nLe programme B doit faire un compte-à-rebours de 10 à 0:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "...\nfor _ in range(...):\n    print(...)\n    ...\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme C** <br>\nLe programme C écrit les 8 premiers multiples de 7:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "...\nfor _ in range(...):\n    print()\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\nInspirez vous de l'exemple 2 ci-dessus pour compléter le programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_spirale.png)\n\n*Indications:*\n- *On supposera que le côté d’un carré est 50 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la spirale.*\n- **Vous ne devez par rajouter plus de 5 lignes de code**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": false,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(-200, -200)\npendown()\n\n# mettre le bon style de trait\nwidth(5)\ncolor(\"red\")\n\n# à compléter avec maximum 5 lignes\n\ndone()"
+  },
+  {
+   "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\nInspirer de l'exemple 2 ci-dessus pour compléter le programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_2spirales.png)\n\n*Indications:*\n- *On supposera que le côté d’un carré est 50 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la figure.*\n- **Vous ne devez par rajouter plus de 13 lignes de code**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": false,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(0, -100)\npendown()\n\n\nwidth(5) # trait épais\n\n# à compléter avec maximum 13 lignes\n\ndone()"
+  },
+  {
+   "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\n1. Testez le programme suivant (voir plus bas pour tester) :\n\n```python\nfrom turtle import *\n\n# pour être à gauche du canevas\nbackward(250)\n\n# Code à factoriser\nfor k in range(3):\n    forward(30)\n    right(120)\nforward(30)\nfor k in range(3):\n    forward(60)\n    right(120)\nforward(60)\nfor k in range(3):\n    forward(90)\n    right(120)\nforward(90)\nfor k in range(3):\n    forward(120)\n    right(120)\nforward(120)\nfor k in range(3):\n    forward(150)\n    right(120)\n\ndone()\n```\n2. Définissez une fonction `triangle(l)`, qui permet de tracer des triangles équilatéraux de longueur `l`, et utilisez-là pour réduire le nombre d’instructions du programme.\n\n**NB**: Le nombre d'instructions du programme doit être au moins divisé par 2."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\n# pour être à gauche du canevas\nbackward(250)\n\n# Code à factoriser\nfor _ in range(3):\n    forward(30)\n    right(120)\nforward(30)\nfor _ in range(3):\n    forward(60)\n    right(120)\nforward(60)\nfor _ in range(3):\n    forward(90)\n    right(120)\nforward(90)\nfor _ in range(3):\n    forward(120)\n    right(120)\nforward(120)\nfor _ in range(3):\n    forward(150)\n    right(120)\n\ndone()\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\nInspirez vous de l'exemple 3 ci-dessus pour écrire un programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_carres.png)\n\nVotre programme définira une fonction `carre(longueur)` où le paramètre longueur représente la longueur du carré. Puis, le programme utilisera cette fonction dans une boucle.\n\n*Indications:*\n- *On supposera que le côté d’un carré est de 50 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la figure.*\n- **Vous ne devez par rajouter plus de 8 lignes de code**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": false,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\ndef carre(longueur):\n    # code de la fonction à compléter\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(-200, -200)\npendown()\n\n# mettre le bon style de trait\nwidth(5)\ncolor(\"red\")\n\n# à compléter avec une boucle\n\n\ndone()"
+  },
+  {
+   "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>\n\nInspirez vous de l'exemple 3 ci-dessus pour écrire un programme Python ci-dessous afin qu'il trace la figure suivante.\n![Image carres colorés](https://githepia.hesge.ch/info_sismondi/exercices-1ere/-/raw/main/Notebooks/imgs_chap5/img_exo_triangles.png)\n\nVotre programme définira une fonction `triangle(longueur)` où le paramètre longueur représente la longueur du carré. Puis, le programme utilisera cette fonction dans une boucle.\n\n*Indications:*\n- *On supposera que le côté d’un carré est de 25 pixels.*\n- *La flèche représente la position initiale de la tortue.*\n- *Le quadrillage ne doit pas être tracé il est là seulement pour connaître les dimensions de la figure.*\n- *La taille des triangles diminue de 25 pixels entre chaque triangle.*\n- **Vous ne devez par rajouter plus de 9 lignes de code**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "scrolled": false,
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\ndef triangle(longueur):\n    # code de la fonction à compléter\n\nspeed(9) # pour dessiner plus vite\n\n# pour positionner le curseur en bas à gauche\npenup()\ngoto(-200, -200)\npendown()\n\n# mettre le bon style de trait\nwidth(3)\ncolor(\"red\")\n\n# à compléter avec une boucle\n\n\ndone()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## L'indice d'un boucle `for`, une variable gratuite\n\nIl est possible de remplacer le symbole `_` dans une boucle `for` par le nom d'une variable qu'on appelle l'indice de la boucle. Cette variable sera intitialisée à `0` puis sera incrémenté de `1` après chaque itération. Par exemple le programme \n```python\nk = 0\nfor _ in range(10):\n    print(k)\n    k = k + 1\n```\n\nest équivalent au programme suivant:\n```python\nfor k in range(10):\n    print(k)\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>\n\nRécrire l'exemple 2 de la table de mutliplication de 7 en utilisant un indice de boucle `for`.\n\n```python\nn = 1\nfor _ in range(10):\n    print(n, \" x 7 =\", n*7)\n    n = n + 1\n```\n\n*Indication:*\n- **Votre programme dois contenir seulement 2 lignes**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": false
+   },
+   "outputs": [],
+   "source": "# votre programme"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "trusted": true
+   },
+   "source": "# 🟥  Fin\n\n<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n    \n- **Ne pas Oublier de sauvegarder son travail.**\n    \n- **Pour effectuer** une sauvegarde personnelle du document obtenu :\n   - utilisez le menu `Fichier / Enregistrer sous…`.\n   - nomez le fichier `variables1.ipynb`\n   - choisissez de sauver votre fichier dans `Documents/1IN/Programmation/Les_variables`.\n\n    </div>\n\n---\n\n#### Remarque générale\n\nCe document c'est inspiré des notebook trouvé sur\n- Les ressources pédagogiques du [Lycée Levavasseur](https://www.levavasseur.xyz/NSI_P/Python/Python.html) \n- Les ressources pédagogiques du [Lycée Mounier](https://info-mounier.fr/snt/python/) \n\nLe notebook 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)"
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Notebooks/05b_Les_variables2.ipynb b/Notebooks/05b_Les_variables2.ipynb
index 0e8272c67929bdf6a837731aeceea48872bcc6b7..025b28a15351076ce16292d15fb5d564fb99803c 100644
--- a/Notebooks/05b_Les_variables2.ipynb
+++ b/Notebooks/05b_Les_variables2.ipynb
@@ -1 +1,402 @@
-{"cells":[{"metadata":{},"cell_type":"markdown","source":"<div style=\"padding:20px;background-color:papayawhip;\" >\n    \n<h3 style=\"color:chocolate\"> <i class=\"fa fa-info\" aria-hidden=\"true\"> </i> &nbsp; Remarque introductive &nbsp;  <i class=\"fa fa-info\" aria-hidden=\"true\"></h3> \n<p> Ce fichier est fait pour être lu sur le site <a href=\"https://notebook.basthon.fr/\"><img src='https://notebook.basthon.fr/assets/efede5218c9087496f16.png' style=\"border: 0; display:inline; margin: 0 5px; height:30px\" alt=\"Basthon\"/></a>. <br>\n    \nSi vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>\nVeuillez cliquez sur <a href=\"https://notebook.basthon.fr/\">ce lien</a> et y charger ce fichier à l'aide du bouton \"Ouvrir\"  &nbsp; <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> \n</div>"},{"metadata":{},"cell_type":"markdown","source":"# 5. Les variables 2 (entrée-sortie, type)\n"},{"metadata":{},"cell_type":"markdown","source":"## Types de Données\nPython est un langage à typage dynamique, ce qui signifie que vous n'avez pas besoin de spécifier le type de données d'une variable lorsque vous la créez.\n\n\n<blockquote class=\"alert alert-info\" style=\"background-color:rgb(220,240,255); margin:10px 10%;\">\n    <p><span style=\"font-size:1.5em\">❔</span> C'est quoi le type d'une variable ? Exécutez la cellule ci-dessous pour voir une petite introduction sur la notion de type d'une variable</p>\n</blockquote>\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from IPython.display import HTML\nHTML(\"\"\"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/5zA8_3YDXb4?si=3V95fi6wa24ddwW_\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>\"\"\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Principaux types de données en Python\n- `int` : pour les nombres entiers\n- `float` : pour les nombres à virgule flottante\n- `str` : pour les chaînes de caractères\n- `bool` : pour les valeurs booléennes (True ou False)\n\n```python\n# Exemple de différents types de données\nentier = 10\nchaine = \"Bonjour\"\nflottant = 12.85\nbooleen = True"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Quizz </h3> \n\n\nQue stocke la variable `pi` dans le code suivant ?\n\n```python\npi = 3.14159\n\n```\n\n<ol style=\"list-style-type: upper-alpha\">\n  <li>Une chaîne de caractères</li>\n  <li>Un entier</li>\n  <li>Un nombre à virgule flottante</li>\n  <li>Une valeur booléenne</li>\n</ol>\n"},{"metadata":{},"cell_type":"raw","source":"Ma réponse: "},{"metadata":{},"cell_type":"markdown","source":"<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nSolution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC. Un nombre à virgule flottante\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Question </h3> \n\n \n```\nEn informatique, `int` est l'abréviation pour\n\nA) international\nB) entier\nC) interne\nD) intelligent\n```\n    \n</div>"},{"metadata":{},"cell_type":"raw","source":"Ma réponse: "},{"metadata":{},"cell_type":"markdown","source":"<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nSolution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nB) entier\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> &nbsp; Question </h3> \n\nIndiquez le type des variables (entier, flottant ou chaîne de caractères) permettant de stocker sur votre smartphone les informations suivantes :\n\n- le nom d’un contact\n- le numéro de téléphone d’un contact\n- un SMS\n- le prix d'un croissant\n- le code de votre partage de connexion Wi-Fi\n- le pourcentage _affiché_ de batterie restante\n- ma note à la dernière épreuves de Mathématiques\n\n\n    \n</div>"},{"metadata":{},"cell_type":"raw","source":"Mes réponses :\n\n- le nom d’un contact : \n- le numéro de téléphone d’un contact : \n- un SMS :\n- le prix d'un croissant : \n- le code de votre partage de connexion Wi-Fi : \n- le pourcentage affiché de batterie restante :\n- ma note à la dernière épreuves de Mathématiques : "},{"metadata":{},"cell_type":"markdown","source":"<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nSolutions\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n- le nom d’un contact : Une chaîne de caractères\n    \n- le numéro de téléphone d’un contact : Une entier\n    \n- un SMS : Une chaîne de caractères\n    \n- le prix d'un croissant : Un nombre à virgule flottante\n    \n- le code de votre partage de connexion Wi-Fi :  Une chaîne de caractères\n    \n- le pourcentage affiché de batterie restante : Une entier\n    \n- ma note à la dernière épreuves de Mathématiques : Un nombre à virgule flottante\n    \n</div>\n</details>"},{"metadata":{"trusted":false},"cell_type":"markdown","source":"## Demander à l'utilisateur d'entrer une valeur :  `input` \n\nLa fonction `input('question')` permet de demander une entrée (input) à l'utilisateur.\nL'utilisateur voit le texte `question` affiché à la console et doit répondre à cette question. Il termine son entrée avec la touche Enter.\n\nLa réponse de l'utilisateur est ensuite mémorisée dans une variable que nous appelons `x` dans cet exemple.\nEnsuite, nous pouvons utiliser cette variable `x` dans la suite du programme, par exemple comme argument dans une fonction `print()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = input('Entrez votre nom: ')\nprint('Bonjour', x)","execution_count":null,"outputs":[]},{"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>\n\nAjoutez une troisième question et utilisez la réponse dans un `print()`.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"nom = input('Entrez votre nom: ')\nprint('Bonjour', nom)\n\nage = input('Entrez votre âge: ')\nprint('Très bien', nom, 'vous avez', age, 'ans')\n","execution_count":null,"outputs":[]},{"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\nEcrire un code qui demande à l’utilisateur son prénom dans une première question puis qui demande dans une deuxième question son nom de famille et qui écrit ensuite:<br>\n\t\n    `\"Bienvenu Prénom Nom\"`\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Demander un nombre\n\nLa fonction `input()` permet d'obtenir une entrée de l'utilisateur. Mais attention !\nLa valeur retournée est une chaine de caractères (de type string `str`). Nous pouvons le prouver avec la fonction `type()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = input('Entrez un nombre: ')\nprint(type(x))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<div class=\"alert alert-block alert-info\">\n<b>&#9889; A retenir : </b> <br>\nUne variable entrée au clavier par un <i>input</i> est toujours du type <i>str</i> c'est à dire considéré comme une chaine de caractères.\n</ul>\n</div>"},{"metadata":{},"cell_type":"markdown","source":"Pour pouvoir utiliser cette valeur dans un calcul, nous devons la transformer en nombre. Pour convertir une chaine de caractères en un nombre à virgule flottante nous utilisons la fonction de conversion `float()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = '1.5'\nprint(type(x))          # la variable x contient une chaîne\nprint(type(float(x)))   # la fonction float(x) renvoie un nombre","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Exemple\n\nOn souhaite avoir un programme qui permet de calculer la moyenne de deux nombres qui sont fournis par l'utilisateur. Tester la proposition de programme suivante:"},{"metadata":{"trusted":true},"cell_type":"code","source":"#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = input(\"Taper un premier nombre : \")\nnombre2 = input(\"Taper un deuxième nombre : \")\nmoyenne = (nombre1 + nombre2)/2\nprint(\"La somme de ces deux nombres est \",moyenne)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On comprend le problème : pour python `nombre1` et `nombre2` sont en fait des chaines de caractères par conséquent, calculer leur moyenne n'a pas de sens ! \n\nPour résoudre ce problème nous devons convertir `nombre1` et `nombre2` en nombre à virgule, cela se fait grâce à l'instruction `float`. Voici le programme corrigé :\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = float(input(\"Taper un premier nombre : \")) #float() permet de convertir la valeur entrée en flottant\nnombre2 = float(input(\"Taper un deuxième nombre : \")) \nmoyenne = (nombre1 + nombre2)/2\nprint(\"La moyenne de ces deux nombres est \",moyenne)","execution_count":null,"outputs":[]},{"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>Complétez le programme pour afficher la surface du cercle.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Circle')\nr = float(input('Entrez le rayon: '))\npi = 3.14\nprint()\nprint('rayon =', r)\nprint('diamètre =', 2 * r)\nprint('circonférence =', pi * 2 * r)\nprint('surface =', ...)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Nous pouvons également créer des programmes où nous demandons plusieurs valeurs à l'utilisateur. Cette fois, nous permettons seulement l'utilisation de nombres entiers, et donc transformons la chaine obtenue avec `int()` en nombre entier.\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 4 </h3>Complétez le programme pour afficher le périmètre et la diagonale.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Rectangle')\na = float(input('Entrez la largeur: '))\nb = float(input('Entrez la longueur: '))\n\nprint('surface =', a * b)\nprint('périmètre =', ...)\nprint('diagonale =', ...)","execution_count":null,"outputs":[]},{"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>\n\nChacun des programmes suivants devrait demander à l’utilisateur deux nombres, et écrire le produit de ces deux nombres mais il contient au moins une erreur. Corrigez chacun des programmes puis testez les\n\n**Programme A** "},{"metadata":{"trusted":true},"cell_type":"code","source":"int(input(\"premier nombre: \"))\nint(input(\"deuxième nombre: \"))\nprint(premier*deuxième)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=input(\"premier nombre: \")\ny=input(\"deuxième nombre: \")\nx*y","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=int(\"premier nombre : \")\ny=int(\"deuxième nombre: \")\nz=x*y\nprint(“z”)","execution_count":null,"outputs":[]},{"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>\n\nComplétez le programme Python ci-dessous qui calcule la surface d'un rectangle après avoir demandé sa largeur et sa longueur.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme pour calculer la surface d'un rectangle à partir de sa longueur et de sa largeur\nlongueur = _____(input(\"Entrer la longueur du rectangle : \")) #longueur doit être un flottant utiliser la conversion !\nlargeur = _____(_____(\"Entrer la largeur du rectangle : \"))\nsurface = _______*_________\n_____(\"La surface du rectangle est :\",___________)","execution_count":null,"outputs":[]},{"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>\n\nChacun des programmes devrait demander à l’utilisateur deux nombres n, et écrire les n premiers multiples de 100. Corriger les erreurs de chaque programme afin qu’il fonctionne.\n\n\n**Programme A** "},{"metadata":{"trusted":true},"cell_type":"code","source":"n = int(input(“Nombre de multiples: ”))\nfor _ in range(n):\n    print(x)\n    x+100\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples: “))\nn = 100\nfor _ in range(x):\n    print(x)\n    x = x+100","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples: “))\nn = 100\nfor _ in range(x):\n      print(n)\nn = n+n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme D**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples:”))\nfor _ in range(x):\n    n = 100\n    print(n)\n    n = n+100","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme E**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=int(input(“Nombre de multiples:”))\nn = 100\nfor _ in range (x):\n    n = n + 100\n    print(n)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 8 </h3>\n\nCpméàtez le programme Python qui demande à l’utilisateur un mot, et un nombre n et qui écrit n fois de suite le mot donné par l’utilisateur."},{"metadata":{"trusted":true},"cell_type":"code","source":"n = input(...)\nmot = input(...)\nfor #à compléter\n    #à compléter","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 9 </h3>\n\nOn considère le programme suivant:\n\n```python\n\nfrom turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n    forward(100)\n    right(angle)\n    \ndone()\n```\n\n1. Tester le programme ci-dessus, puis modifiez le en définissant une fonction `polygone(lg, n)` qui permet de tracer des polygones avec `n` côtés et de longueur `lg`. Le programme doit produire la même figure mais en utilisant la fonction  `polygone(lg, n)`."},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n    forward(100)\n    right(angle)\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Modifiez le programme précédant afin d’obtenir un programme qui demande à l’utilisateur⋅trice la taille et le nombre de côtés du polygone puis trace ce polygone.\n\nExemple d’exécution du programme: \n\n```\nQuel est la nombre de côtés de votre polygone : 8\nQuel est la taille de votre polygone : 100\n```\nqui devrait générer un hexagone de côté 100:"},{"metadata":{"trusted":true},"cell_type":"code","source":"# votre programme complet...\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 10 </h3>\n\nCompléter le programme pour avoir un programme qui demande un nombre à l’utilisateur et qui dessine un carré ayant cette longueur comme côté.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n    forward(100)\n    right(angle)\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 🟥  Fin\n\n<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n    \n- **Ne pas Oublier de sauvegarder son travail.**\n    \n- **Pour effectuer** une sauvegarde personnelle du document obtenu :\n   - utilisez le menu `Fichier / Enregistrer sous…`.\n   - nomez le fichier `variables1.ipynb`\n   - choisissez de sauver votre fichier dans `Documents/1IN/Programmation/Les_variables`.\n\n    </div>\n\n---\n\n#### Remarque générale\n\nCe document c'est inspiré des notebook trouvé sur\n- Les ressources pédagogiques du catalogue modulo https://modulo-info.ch/. \n- Les ressources pédagogiques du [Lycée Mounier](https://info-mounier.fr/snt/python/) \n\nLe notebook 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)"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "<div style=\"padding:20px;background-color:papayawhip;\" >\n    \n<h3 style=\"color:chocolate\"> <i class=\"fa fa-info\" aria-hidden=\"true\"> </i> &nbsp; Remarque introductive &nbsp;  <i class=\"fa fa-info\" aria-hidden=\"true\"></h3> \n<p> Ce fichier est fait pour être lu sur le site <a href=\"https://notebook.basthon.fr/\"><img src='https://notebook.basthon.fr/assets/efede5218c9087496f16.png' style=\"border: 0; display:inline; margin: 0 5px; height:30px\" alt=\"Basthon\"/></a>. <br>\n    \nSi vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>\nVeuillez cliquez sur <a href=\"https://notebook.basthon.fr/\">ce lien</a> et y charger ce fichier à l'aide du bouton \"Ouvrir\"  &nbsp; <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> \n</div>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "# 5.2 Les variables, Types et entrée-sortie"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Types de Données\nPython est un langage à typage dynamique, ce qui signifie que vous n'avez pas besoin de spécifier le type de données d'une variable lorsque vous la créez.\n\n### Principaux types de données en Python\n- `int` : pour les nombres entiers\n- `float` : pour les nombres à virgule flottante\n- `str` : pour les chaînes de caractères\n- `bool` : pour les valeurs booléennes (True ou False)\n\n```python\n# Exemple de différents types de données\nentier = 10\nchaine = \"Bonjour\"\nflottant = 12.85\nbooleen = True\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\nQue stocke la variable `pi` dans le code suivant ?\n\n```python\npi = 3.14159\n\n```\n\n<ol style=\"list-style-type: upper-alpha\">\n  <li>Une chaîne de caractères</li>\n  <li>Un entier</li>\n  <li>Un nombre à virgule flottante</li>\n  <li>Une valeur booléenne</li>\n</ol>\n"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Ma 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\"> \nSolution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC. Un nombre à virgule flottante\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; Question </h3> \n\n \n```\nEn informatique, `int` est l'abréviation pour\n\nA) international\nB) entier\nC) interne\nD) intelligent\n```\n    \n</div>"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Ma 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\"> \nSolution\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nB) entier\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; Question </h3> \n\nIndiquez le type des variables (entier, flottant ou chaîne de caractères) permettant de stocker sur votre smartphone les informations suivantes :\n\n- le nom d’un contact\n- le numéro de téléphone d’un contact\n- un SMS\n- le prix d'un croissant\n- le code de votre partage de connexion Wi-Fi\n- le pourcentage _affiché_ de batterie restante\n- ma note à la dernière épreuves de Mathématiques\n\n\n    \n</div>"
+  },
+  {
+   "cell_type": "raw",
+   "metadata": {},
+   "source": "Mes réponses :\n\n- le nom d’un contact : \n- le numéro de téléphone d’un contact : \n- un SMS :\n- le prix d'un croissant : \n- le code de votre partage de connexion Wi-Fi : \n- le pourcentage affiché de batterie restante :\n- ma note à la dernière épreuves de Mathématiques : "
+  },
+  {
+   "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\"> \nSolutions\n</summary>  \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n- le nom d’un contact : Une chaîne de caractères\n    \n- le numéro de téléphone d’un contact : Une entier\n    \n- un SMS : Une chaîne de caractères\n    \n- le prix d'un croissant : Un nombre à virgule flottante\n    \n- le code de votre partage de connexion Wi-Fi :  Une chaîne de caractères\n    \n- le pourcentage affiché de batterie restante : Une entier\n    \n- ma note à la dernière épreuves de Mathématiques : Un nombre à virgule flottante\n    \n</div>\n</details>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "trusted": false
+   },
+   "source": "## Demander à l'utilisateur d'entrer une valeur :  `input` \n\nLa fonction `input('question')` permet de demander une entrée (input) à l'utilisateur.\nL'utilisateur voit le texte `question` affiché à la console et doit répondre à cette question. Il termine son entrée avec la touche Enter.\n\nLa réponse de l'utilisateur est ensuite mémorisée dans une variable que nous appelons `x` dans cet exemple.\nEnsuite, nous pouvons utiliser cette variable `x` dans la suite du programme, par exemple comme argument dans une fonction `print()`.\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x = input('Entrez votre nom: ')\nprint('Bonjour', x)"
+  },
+  {
+   "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>\n\nAjoutez une troisième question et utilisez la réponse dans un `print()`.\n\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "nom = input('Entrez votre nom: ')\nprint('Bonjour', nom)\n\nage = input('Entrez votre âge: ')\nprint('Très bien', nom, 'vous avez', age, 'ans')\n"
+  },
+  {
+   "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\nEcrire un code qui demande à l’utilisateur son prénom dans une première question puis qui demande dans une deuxième question son nom de famille et qui écrit ensuite:<br>\n\t\n    `\"Bienvenue Prénom Nom\"`\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": ""
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "## Demander un nombre\n\nLa fonction `input()` permet d'obtenir une entrée de l'utilisateur. Mais attention !\nLa valeur retournée est une chaine de caractères (de type string `str`). Nous pouvons le prouver avec la fonction `type()`.\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x = input('Entrez un nombre: ')\nprint(type(x))"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "<div class=\"alert alert-block alert-info\">\n<b>&#9889; A retenir : </b> <br>\nUne variable entrée au clavier par un <i>input</i> est toujours du type <i>str</i> c'est à dire considéré comme une chaine de caractères.\n</ul>\n</div>"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Pour pouvoir utiliser cette valeur dans un calcul, nous devons la transformer en nombre. Pour convertir une chaine de caractères en un nombre à virgule flottante nous utilisons la fonction de conversion `float()`.\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x = '1.5'\nprint(type(x))          # la variable x contient une chaîne\nprint(type(float(x)))   # la fonction float(x) renvoie un nombre"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "### Exemple\n\nOn souhaite avoir un programme qui permet de calculer la moyenne de deux nombres qui sont fournis par l'utilisateur. Tester la proposition de programme suivante:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = input(\"Taper un premier nombre : \")\nnombre2 = input(\"Taper un deuxième nombre : \")\nmoyenne = (nombre1 + nombre2)/2\nprint(\"La somme de ces deux nombres est \",moyenne)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "On comprend le problème : pour python `nombre1` et `nombre2` sont en fait des chaines de caractères par conséquent, calculer leur moyenne n'a pas de sens ! \n\nPour résoudre ce problème nous devons convertir `nombre1` et `nombre2` en nombre à virgule, cela se fait grâce à l'instruction `float`. Voici le programme corrigé :\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = float(input(\"Taper un premier nombre : \")) #float() permet de convertir la valeur entrée en flottant\nnombre2 = float(input(\"Taper un deuxième nombre : \")) \nmoyenne = (nombre1 + nombre2)/2\nprint(\"La moyenne de ces deux nombres est \",moyenne)"
+  },
+  {
+   "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>Complétez le programme pour afficher la surface du cercle.\n\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "print('Circle')\nr = float(input('Entrez le rayon: '))\npi = 3.14\nprint()\nprint('rayon =', r)\nprint('diamètre =', 2 * r)\nprint('circonférence =', pi * 2 * r)\nprint('surface =', ...)"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "Nous pouvons également créer des programmes où nous demandons plusieurs valeurs à l'utilisateur. Cette fois, nous permettons seulement l'utilisation de nombres entiers, et donc transformons la chaine obtenue avec `int()` en nombre entier.\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 4 </h3>Complétez le programme pour afficher le périmètre et la diagonale.\n\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "print('Rectangle')\na = float(input('Entrez la largeur: '))\nb = float(input('Entrez la longueur: '))\n\nprint('surface =', a * b)\nprint('périmètre =', ...)\nprint('diagonale =', ...)"
+  },
+  {
+   "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\nChacun des programmes suivants devrait demander à l’utilisateur deux nombres, et écrire le produit de ces deux nombres mais il contient au moins une erreur. Corrigez chacun des programmes puis testez les\n\n**Programme A** "
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "int(input(\"premier nombre: \"))\nint(input(\"deuxième nombre: \"))\nprint(premier*deuxième)\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme B**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x=input(\"premier nombre: \")\ny=input(\"deuxième nombre: \")\nx*y"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme C**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x=int(\"premier nombre : \")\ny=int(\"deuxième nombre: \")\nz=x*y\nprint(\"z\")"
+  },
+  {
+   "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\nComplétez le programme Python ci-dessous qui calcule la surface d'un rectangle après avoir demandé sa largeur et sa longueur.\n\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "# Programme pour calculer la surface d'un rectangle à partir de sa longueur et de sa largeur\nlongueur = _____(input(\"Entrer la longueur du rectangle : \")) #longueur doit être un flottant utiliser la conversion !\nlargeur = _____(_____(\"Entrer la largeur du rectangle : \"))\nsurface = _______*_________\n_____(\"La surface du rectangle est :\",___________)"
+  },
+  {
+   "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\nChacun des programmes devrait demander à l’utilisateur un nombre n, et écrire les n premiers multiples de 100. Corriger les erreurs de chaque programme afin qu’il fonctionne.\n\n\n**Programme A** "
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "n = int(input(\"Nombre de multiples: \"))\nfor _ in range(n):\n    print(x)\n    x+100\n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme B**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x = int(input(\"Nombre de multiples: \"))\nn = 100\nfor _ in range(x):\n    print(x)\n    x = x+100"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme C**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x = int(input(\"Nombre de multiples: \"))\nn = 100\nfor _ in range(x):\n      print(n)\nn = n+n"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme D**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x = int(input(\"Nombre de multiples:\"))\nfor _ in range(x):\n    n = 100\n    print(n)\n    n = n+100"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "**Programme E**"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "x=int(input(\"Nombre de multiples:\"))\nn = 100\nfor _ in range (x):\n    n = n + 100\n    print(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 8 </h3>\n\nCompléter le programme Python qui demande à l’utilisateur un mot, et un nombre n et qui écrit n fois de suite le mot donné par l’utilisateur."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "n = input(...)\nmot = input(...)\nfor #à compléter\n    #à compléter"
+  },
+  {
+   "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>\n\nOn considère le programme suivant:\n\n```python\n\nfrom turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n    forward(100)\n    right(angle)\n    \ndone()\n```\n\n1. Tester le programme ci-dessus, puis modifiez le en définissant une fonction `polygone(lg, n)` qui permet de tracer des polygones avec `n` côtés et de longueur `lg`. Le programme doit produire la même figure mais en utilisant la fonction  `polygone(lg, n)`."
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n    forward(100)\n    right(angle)\n\ndone()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "2. Modifiez le programme précédant afin d’obtenir un programme qui demande à l’utilisateur⋅trice la taille et le nombre de côtés du polygone puis trace ce polygone.\n\nExemple d’exécution du programme: \n\n```\nQuel est la nombre de côtés de votre polygone : 8\nQuel est la taille de votre polygone : 100\n```\nqui devrait générer un hexagone de côté 100:"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "# votre programme complet...\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>\n\nCompléter le programme pour avoir un programme qui demande un nombre à l’utilisateur⋅trice et qui dessine un carré ayant cette longueur comme côté.\n\n"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": "from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n    forward(100)\n    right(angle)\n\ndone()"
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": "# 🟥  Fin\n\n<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n    \n- **Ne pas Oublier de sauvegarder son travail.**\n    \n- **Pour effectuer** une sauvegarde personnelle du document obtenu :\n   - utilisez le menu `Fichier / Enregistrer sous…`.\n   - nomez le fichier `variables1.ipynb`\n   - choisissez de sauver votre fichier dans `Documents/1IN/Programmation/Les_variables`.\n\n    </div>\n\n---\n\n#### Remarque générale\n\nCe document c'est inspiré des notebook trouvé sur\n- Les ressources pédagogiques du catalogue modulo https://modulo-info.ch/. \n- Les ressources pédagogiques du [Lycée Mounier](https://info-mounier.fr/snt/python/) \n\nLe notebook 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)"
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "trusted": true
+   },
+   "outputs": [],
+   "source": ""
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}