diff --git a/Notebooks/04_Les_fonctions_avec_parametres.ipynb b/Notebooks/04_Les_fonctions_avec_parametres.ipynb index 8beb50d610bdba6707509310990d7ca0311343bb..3c8fa90535973cddb76947c87b03847abfff3e86 100644 --- a/Notebooks/04_Les_fonctions_avec_parametres.ipynb +++ b/Notebooks/04_Les_fonctions_avec_parametres.ipynb @@ -3,878 +3,297 @@ { "cell_type": "markdown", "metadata": {}, - "source": [ - "<div style=\"padding:20px;background-color:papayawhip;\" > \n", - "<h3 style=\"color:chocolate\"> <i class=\"fa fa-info\" aria-hidden=\"true\"> </i> Remarque introductive <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", - " \n", - "Si vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>\n", - "Veuillez cliquez sur <a href=\"https://notebook.basthon.fr/\">ce lien</a> et y charger ce fichier à l'aide du bouton \"Ouvrir\" <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n", - "</p> </div> " - ] + "source": "<div style=\"padding:20px;background-color:papayawhip;\" > \n<h3 style=\"color:chocolate\"> <i class=\"fa fa-info\" aria-hidden=\"true\"> </i> Remarque introductive <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\" <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> </div> " }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "# 4. Les fonctions avec paramètres\n", - "\n", - "Dans cette leçon, nous allons approfondir le concept de la fonction. Dans la leçon 3 sur les fonctions simples, nous avons vu la fonction comme une façon de donner un nom à une séquence d'instructions. Ici nous allons voir comment nous pouvons ajouter un ou plusieurs paramètres à une fonction. Nous allons voir que :\n", - "\n", - "- l'expression `def rect(d, e):` permet de définir une fonction avec deux paramètres,\n", - "- les paramètres `d` et `e` sont des variables locales valides uniquement à l'intérieur de la définition de fonction,\n", - "- ces paramètres prennent une valeur au moment de l'appel de la fonction avec `rect(50, 30)`.\n", - "\n" - ] + "source": "# 4. Les fonctions avec paramètres\n\nDans cette leçon, nous allons approfondir le concept de la fonction. Dans la leçon 3 sur les fonctions simples, nous avons vu la fonction comme une façon de donner un nom à une séquence d'instructions. Ici nous allons voir comment nous pouvons ajouter un ou plusieurs paramètres à une fonction. Nous allons voir que :\n\n- l'expression `def rect(d, e):` permet de définir une fonction avec deux paramètres,\n- les paramètres `d` et `e` sont des variables locales valides uniquement à l'intérieur de la définition de fonction,\n- ces paramètres prennent une valeur au moment de l'appel de la fonction avec `rect(50, 30)`.\n\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n", - " \n", - "```\n", - "En Python, `def` est un raccourci pour\n", - "\n", - "A) défoncé\n", - "B) défilé\n", - "C) définition\n", - "D) défavorisé\n", - "```" - ] + "source": "<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \n```\nEn Python, `def` est un raccourci pour\n\nA) défoncé\nB) défilé\nC) définition\nD) défavorisé\n```" }, { "cell_type": "raw", "metadata": {}, - "source": [ - "Ma réponse: " - ] + "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\"> <i class=\"fa fa-angle-right\" aria-hidden=\"true\">\n", - "Réponse\n", - "</summary> \n", - "\n", - "<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n", - "C) définition\n", - "</div>\n", - "</details>" - ] + "source": "<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> <i class=\"fa fa-angle-right\" aria-hidden=\"true\">\nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC) définition\n</div>\n</details>" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Paramétrer une fonction\n", - "\n", - "Jusqu'à maintenant, notre rectangle était d'une taille fixe. La fonction `rectangle()` de la leçon 3 sur les fonctions simples \n", - "```python \n", - "def rectangle():\n", - " forward(160)\n", - " left(90)\n", - " forward(100)\n", - " left(90)\n", - " forward(160)\n", - " left(90)\n", - " forward(100)\n", - " left(90)\n", - "```\n", - " dessine toujours un rectangle de 160 x 100 pixels. Il faudrait faire une nouvelle fonction `rectangle2()` si on voulait dessiner une taille différente.\n", - "\n", - "Il serait très utile de disposer d'une fonction de la forme `rectangle(d, e)` qui puisse dessiner des rectangles de largeur et hauteur variable.\n", - "C'est possible en spécifiant des **paramètres** pour la fonction.\n", - "Un paramètre de fonction est une **variable locale** qui peut être utilisée dans sa définition.\n", - "\n", - "Lors de l'appel de la fonction, nous donnons des valeurs à la fonction.\n", - "Ces valeurs sont les **arguments** de la fonction.\n", - "\n" - ] + "source": "## Paramétrer une fonction\n\nJusqu'à maintenant, notre rectangle était d'une taille fixe. La fonction `rectangle()` de la leçon 3 sur les fonctions simples \n```python \ndef rectangle():\n forward(160)\n left(90)\n forward(100)\n left(90)\n forward(160)\n left(90)\n forward(100)\n left(90)\n```\n dessine toujours un rectangle de 160 x 100 pixels. Il faudrait faire une nouvelle fonction `rectangle2()` si on voulait dessiner une taille différente.\n\nIl serait très utile de disposer d'une fonction de la forme `rectangle(d, e)` qui puisse dessiner des rectangles de largeur et hauteur variable.\nC'est possible en spécifiant des **paramètres** pour la fonction.\nUn paramètre de fonction est une **variable locale** qui peut être utilisée dans sa définition.\n\nLors de l'appel de la fonction, nous donnons des valeurs à la fonction.\nCes valeurs sont les **arguments** de la fonction.\n\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 1 </h3>\n", - "\n", - "Complétez le programme ci-dessous afin de dessiner un deuxième rectangle avec d'autres dimensions.\n", - "\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 1 </h3>\n\nComplétez le programme ci-dessous afin de dessiner un deuxième rectangle avec d'autres dimensions.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def rectangle(d, e): # paramètres (d, e)\n", - " for i in range(2):\n", - " forward(d)\n", - " left(90)\n", - " forward(e)\n", - " left(90)\n", - "\n", - "rectangle(160, 100) # largeur=160, hauteur=100\n", - "\n", - "# à compléter\n", - "\n", - "done()" - ] + "source": "from turtle import *\n\ndef rectangle(d, e): # paramètres (d, e)\n for i in range(2):\n forward(d)\n left(90)\n forward(e)\n left(90)\n\nrectangle(160, 100) # largeur=160, hauteur=100\n\n# à compléter\n\ndone()" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "### Exemples de fonctions avec des paramétres\n" - ] + "source": "### Exemples de fonctions avec des paramètres\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "**Exemple 1 : Le Losange**\n", - "\n", - "Essayez de comprendre le programme ci-dessous, puis exécutez le..." - ] + "source": "**Exemple 1 : Le Losange**\n\nEssayez de comprendre le programme ci-dessous, puis exécutez le..." }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def losange(d, a): # paramètres (d=distance, a=angle)\n", - " for i in range(2):\n", - " forward(d)\n", - " left(a)\n", - "\n", - " forward(d)\n", - " left(180-a)\n", - "\n", - "losange(100, 60) # distance=100, angle=60\n", - "losange(140, 100) # distance=140, angle=100\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef losange(d, a): # paramètres (d=distance, a=angle)\n for i in range(2):\n forward(d)\n left(a)\n\n forward(d)\n left(180-a)\n\nlosange(100, 60) # distance=100, angle=60\nlosange(140, 100) # distance=140, angle=100\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "On remarque que la fonction `losange(a, angle)`, définie ci-dessus, a comme paramètre la longueur et le premier angle. \n", - "\n", - "Remarque: Le deuxième angle du losange est calculé." - ] + "source": "On remarque que la fonction `losange(a, angle)`, définie ci-dessus, a comme paramètre la longueur et le premier angle. \n\nRemarque: Le deuxième angle du losange est calculé." }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Retour à la maison...\n", - "\n", - "Revenons à l'exemple d'une fonction qui dessine une maison.\n" - ] + "source": "## Retour à la maison...\n\nRevenons à l'exemple d'une fonction qui dessine une maison.\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 2 </h3>\n", - "\n", - "Complétez le programme afin qu'il dessine une troisième maison de taille 100.\n", - "\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 2 </h3>\n\nComplétez le programme afin qu'il dessine une troisième maison de taille 100.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def maison(d):\n", - " dot()\n", - " forward (1.41*d) # sol\n", - " left(90)\n", - " forward(d) # mur droit\n", - " left(45)\n", - " forward(d) # toit droit\n", - " left(90)\n", - " forward(d) # toit gauche\n", - " left(45)\n", - " forward(d) # mur gauche\n", - " left(90)\n", - "\n", - "backward(200)\n", - "maison(50) # maison de taille 50\n", - "forward(100)\n", - "maison(70) # maison de taille 70\n", - "\n", - "# à compléter\n", - "\n", - "done()\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Colorier la maison\n", - "\n", - "Maintenant nous modifions la fonction pour inclure non seulement la position, la taille, mais également la couleur de la maison comme paramètres. Les arguments de la fonction sont :\n", - "\n", - "- `p` -- position de la maison\n", - "- `d` -- dimension de la maison\n", - "- `c` -- couleur de la maison\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 4 </h3>Aujoutez deux autres maisons de taille et couleur différente.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"640\" height=\"480\" preserveaspectratio=\"xMidYMid meet\" viewbox=\"0 0 640 480\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_0\" attributename=\"opacity\" attributetype=\"CSS\" from=\"1\" to=\"1\" begin=\"0s\" dur=\"1ms\" fill=\"freeze\"></animate><g transform=\"translate(320 240)\"></g><g transform=\"translate(320 240)\"><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"0\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_2\" attributename=\"x2\" attributetype=\"XML\" from=\"0\" to=\"0\" dur=\"1ms\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_1.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_1.end\" from=\"0\" to=\"0\" dur=\"1ms\" fill=\"freeze\"></animate></line><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"0\" style=\"stroke: black;stroke-width: 1\" opacity=\"0\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_5\" attributename=\"x2\" attributetype=\"XML\" from=\"0\" to=\"0\" dur=\"1ms\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_4.end\"></animate></line><circle cx=\"0\" cy=\"0\" r=\"2.5\" fill=\"black\" style=\"display: none;\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_6\" attributename=\"display\" attributetype=\"CSS\" from=\"block\" to=\"block\" dur=\"1ms\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_5.end\"></animate></circle><line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"0\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_8\" attributename=\"x2\" attributetype=\"XML\" from=\"0\" to=\"98.69999999999999\" dur=\" 0.528s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_7.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_7.end\" from=\"0\" to=\"0\" dur=\" 0.528s\" fill=\"freeze\"></animate></line><line x1=\"98.69999999999999\" y1=\"0\" x2=\"98.69999999999999\" y2=\"0\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_10\" attributename=\"x2\" attributetype=\"XML\" from=\"98.69999999999999\" to=\"98.69999999999999\" dur=\" 0.375s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_9.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_9.end\" from=\"0\" to=\"-70\" dur=\" 0.375s\" fill=\"freeze\"></animate></line><line x1=\"98.69999999999999\" y1=\"-70\" x2=\"98.69999999999999\" y2=\"-70\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_12\" attributename=\"x2\" attributetype=\"XML\" from=\"98.69999999999999\" to=\"49.20252531694167\" dur=\" 0.375s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_11.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_11.end\" from=\"-70\" to=\"-119.49747468305833\" dur=\" 0.375s\" fill=\"freeze\"></animate></line><line x1=\"49.20252531694167\" y1=\"-119.49747468305833\" x2=\"49.20252531694167\" y2=\"-119.49747468305833\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_14\" attributename=\"x2\" attributetype=\"XML\" from=\"49.20252531694167\" to=\"-0.29494936611666844\" dur=\" 0.375s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_13.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_13.end\" from=\"-119.49747468305833\" to=\"-70\" dur=\" 0.375s\" fill=\"freeze\"></animate></line><line x1=\"-0.29494936611666844\" y1=\"-70\" x2=\"-0.29494936611666844\" y2=\"-70\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_16\" attributename=\"x2\" attributetype=\"XML\" from=\"-0.29494936611666844\" to=\"-0.2949493661166813\" dur=\" 0.375s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_15.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_15.end\" from=\"-70\" to=\"0\" dur=\" 0.375s\" fill=\"freeze\"></animate></line><polygon points=\"0,0 98.69999999999999,-0.0 98.69999999999999,-70.0 49.20252531694167,-119.49747468305833 -0.29494936611666844,-70.0 -0.2949493661166813,-0.0\" style=\"display: none;fill: lightblue;stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_18\" attributename=\"display\" attributetype=\"CSS\" from=\"block\" to=\"block\" dur=\"1ms\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_17.end\"></animate></polygon><line x1=\"-0.2949493661166813\" y1=\"0\" x2=\"-0.2949493661166813\" y2=\"0\" style=\"stroke: black;stroke-width: 1\" opacity=\"0\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_19\" attributename=\"x2\" attributetype=\"XML\" from=\"-0.2949493661166813\" to=\"150\" dur=\" 0.965s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_18.end\"></animate></line><circle cx=\"150\" cy=\"-30\" r=\"2.5\" fill=\"black\" style=\"display: none;\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_20\" attributename=\"display\" attributetype=\"CSS\" from=\"block\" to=\"block\" dur=\"1ms\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_19.end\"></animate></circle><line x1=\"150\" y1=\"-30\" x2=\"150\" y2=\"-30\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_22\" attributename=\"x2\" attributetype=\"XML\" from=\"150\" to=\"220.5\" dur=\" 0.377s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_21.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_21.end\" from=\"-30\" to=\"-29.999999999999982\" dur=\" 0.377s\" fill=\"freeze\"></animate></line><line x1=\"220.5\" y1=\"-29.999999999999982\" x2=\"220.5\" y2=\"-29.999999999999982\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_24\" attributename=\"x2\" attributetype=\"XML\" from=\"220.5\" to=\"220.50000000000003\" dur=\" 0.268s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_23.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_23.end\" from=\"-29.999999999999982\" to=\"-79.99999999999999\" dur=\" 0.268s\" fill=\"freeze\"></animate></line><line x1=\"220.50000000000003\" y1=\"-79.99999999999999\" x2=\"220.50000000000003\" y2=\"-79.99999999999999\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_26\" attributename=\"x2\" attributetype=\"XML\" from=\"220.50000000000003\" to=\"185.14466094067262\" dur=\" 0.268s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_25.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_25.end\" from=\"-79.99999999999999\" to=\"-115.35533905932735\" dur=\" 0.268s\" fill=\"freeze\"></animate></line><line x1=\"185.14466094067262\" y1=\"-115.35533905932735\" x2=\"185.14466094067262\" y2=\"-115.35533905932735\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_28\" attributename=\"x2\" attributetype=\"XML\" from=\"185.14466094067262\" to=\"149.78932188134527\" dur=\" 0.268s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_27.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_27.end\" from=\"-115.35533905932735\" to=\"-79.99999999999996\" dur=\" 0.268s\" fill=\"freeze\"></animate></line><line x1=\"149.78932188134527\" y1=\"-79.99999999999996\" x2=\"149.78932188134527\" y2=\"-79.99999999999996\" style=\"stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_30\" attributename=\"x2\" attributetype=\"XML\" from=\"149.78932188134527\" to=\"149.78932188134524\" dur=\" 0.268s\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_29.end\"></animate><animate attributename=\"y2\" attributetype=\"XML\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_29.end\" from=\"-79.99999999999996\" to=\"-29.999999999999957\" dur=\" 0.268s\" fill=\"freeze\"></animate></line><polygon points=\"150,-30 220.5,-29.999999999999982 220.50000000000003,-79.99999999999999 185.14466094067262,-115.35533905932735 149.78932188134527,-79.99999999999996 149.78932188134524,-29.999999999999957\" style=\"display: none;fill: yellow;stroke: black;stroke-width: 1\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_32\" attributename=\"display\" attributetype=\"CSS\" from=\"block\" to=\"block\" dur=\"1ms\" fill=\"freeze\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_31.end\"></animate></polygon></g><g transform=\"translate(320 240)\"></g><g transform=\"translate(320 240)\"><polygon points=\"0,16 -2,14 -1,10 -4,7 -7,9 -9,8 -6,5 -7,1 -5,-3 -8,-6 -6,-8 -4,-5 0,-7 4,-5 6,-8 8,-6 5,-3 7,1 6,5 9,8 7,9 4,7 1,10 2,14\" stroke=\"black\" fill=\"black\" stroke-width=\"1\" opacity=\"0\"><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_1\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_0.end\" dur=\"1ms\" fill=\"freeze\" attributename=\"opacity\" attributetype=\"XML\" from=\"0\" to=\"1\"></animate><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_2.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_3\" type=\"rotate\" from=\"0,0,0\" to=\"0.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_2.end\" dur=\"1ms\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_3.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_4\" type=\"rotate\" from=\"-90.0,0,0\" to=\"-90.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_3.end\" dur=\"1ms\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_4.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"0.0,-0.0\" to=\"0,0\" dur=\"1ms\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_4.end\" fill=\"freeze\"></animateMotion><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_7\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_6.end\" dur=\"1ms\" fill=\"freeze\" attributename=\"fill\" attributetype=\"XML\" from=\"black\" to=\"lightblue\"></animate><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_7.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"0,0\" to=\"98.69999999999999,-0.0\" dur=\" 0.528s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_7.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_8.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_9\" type=\"rotate\" from=\"-90.0,0,0\" to=\"-180.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_8.end\" dur=\" 0.083s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_9.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"98.69999999999999,-0.0\" to=\"98.69999999999999,-70.0\" dur=\" 0.375s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_9.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_10.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_11\" type=\"rotate\" from=\"-180.0,0,0\" to=\"-225.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_10.end\" dur=\" 0.042s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_11.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"98.69999999999999,-70.0\" to=\"49.20252531694167,-119.49747468305833\" dur=\" 0.375s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_11.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_12.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_13\" type=\"rotate\" from=\"-225.0,0,0\" to=\"-315.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_12.end\" dur=\" 0.083s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_13.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"49.20252531694167,-119.49747468305833\" to=\"-0.29494936611666844,-70.0\" dur=\" 0.375s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_13.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_14.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_15\" type=\"rotate\" from=\"-315.0,0,0\" to=\"-360.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_14.end\" dur=\" 0.042s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_15.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"-0.29494936611666844,-70.0\" to=\"-0.2949493661166813,-0.0\" dur=\" 0.375s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_15.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_16.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_17\" type=\"rotate\" from=\"-360.0,0,0\" to=\"-450.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_16.end\" dur=\" 0.083s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_18.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"-0.2949493661166813,-0.0\" to=\"150,-30\" dur=\" 0.965s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_18.end\" fill=\"freeze\"></animateMotion><animate id=\"af_b32f4a9fb3d74061922d432cbf99248d_21\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_20.end\" dur=\"1ms\" fill=\"freeze\" attributename=\"fill\" attributetype=\"XML\" from=\"lightblue\" to=\"yellow\"></animate><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_21.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"150,-30\" to=\"220.5,-29.999999999999982\" dur=\" 0.377s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_21.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_22.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_23\" type=\"rotate\" from=\"-450.0,0,0\" to=\"-540.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_22.end\" dur=\" 0.083s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_23.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"220.5,-29.999999999999982\" to=\"220.50000000000003,-79.99999999999999\" dur=\" 0.268s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_23.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_24.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_25\" type=\"rotate\" from=\"-540.0,0,0\" to=\"-585.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_24.end\" dur=\" 0.042s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_25.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"220.50000000000003,-79.99999999999999\" to=\"185.14466094067262,-115.35533905932735\" dur=\" 0.268s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_25.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_26.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_27\" type=\"rotate\" from=\"-585.0,0,0\" to=\"-675.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_26.end\" dur=\" 0.083s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_27.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"185.14466094067262,-115.35533905932735\" to=\"149.78932188134527,-79.99999999999996\" dur=\" 0.268s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_27.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_28.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_29\" type=\"rotate\" from=\"-675.0,0,0\" to=\"-720.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_28.end\" dur=\" 0.042s\" fill=\"freeze\"></animateTransform><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_29.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateMotion from=\"149.78932188134527,-79.99999999999996\" to=\"149.78932188134524,-29.999999999999957\" dur=\" 0.268s\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_29.end\" fill=\"freeze\"></animateMotion><animateMotion begin=\"af_b32f4a9fb3d74061922d432cbf99248d_30.end\" dur=\"1ms\" fill=\"remove\"></animateMotion><animateTransform attributename=\"transform\" id=\"af_b32f4a9fb3d74061922d432cbf99248d_31\" type=\"rotate\" from=\"-720.0,0,0\" to=\"-810.0,0,0\" begin=\"af_b32f4a9fb3d74061922d432cbf99248d_30.end\" dur=\" 0.083s\" fill=\"freeze\"></animateTransform></polygon></g></svg>" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from turtle import *\n", - "up()\n", - "\n", - "def maison(d, c):\n", - " dot()\n", - " down()\n", - " fillcolor(c)\n", - " begin_fill()\n", - " forward (1.41*d) # sol\n", - " left(90)\n", - " forward(d) # mur droit\n", - " left(45)\n", - " forward(d) # toit droit\n", - " left(90)\n", - " forward(d) # toit gauche\n", - " left(45)\n", - " forward(d) # mur gauche\n", - " left(90)\n", - " end_fill()\n", - " up()\n", - "\n", - "goto(0,0)\n", - "maison(70, 'lightblue')\n", - "goto(150, 30)\n", - "maison(50, 'yellow')\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef maison(d):\n dot()\n forward (1.41*d) # sol\n left(90)\n forward(d) # mur droit\n left(45)\n forward(d) # toit droit\n left(90)\n forward(d) # toit gauche\n left(45)\n forward(d) # mur gauche\n left(90)\n\nbackward(200)\nmaison(50) # maison de taille 50\nforward(100)\nmaison(70) # maison de taille 70\n\n# à compléter\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Drapeau tricolore\n", - "\n" - ] + "source": "## Colorier la maison\n\nMaintenant nous modifions la fonction pour inclure non seulement la position, la taille, mais également la couleur de la maison comme paramètres. Les arguments de la fonction sont :\n\n- `p` -- position de la maison\n- `d` -- dimension de la maison\n- `c` -- couleur de la maison\n\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 5 </h3>\n", - "\n", - "1. Modifiez les couleurs pour afficher le drapeau de l'irlande (ou d'un autre pays de votre choix). \n", - "2. Créez une deuxième fonction `drapeau2(d, c, c2, c3)` qui crée un drapeau avec des barres horizontales et utilisez là pour dessiner le drapeau des pays bas (ou d'un autre pays de votre choix)." - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 4 </h3>Aujoutez deux autres maisons de taille et couleur différente.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def rectangle(d, e, c):\n", - " fillcolor(c)\n", - " begin_fill()\n", - " for i in range(2):\n", - " forward(d)\n", - " left(90)\n", - " forward(e)\n", - " left(90)\n", - " end_fill()\n", - "\n", - "def drapeau(d, c1, c2, c3):\n", - " rectangle(d, 2*d, c1)\n", - " forward(d)\n", - " rectangle(d, 2*d, c2)\n", - " forward(d)\n", - " rectangle(d, 2*d, c3)\n", - "\n", - "drapeau(50, 'blue', 'white', 'red')\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\nup()\n\ndef maison(d, c):\n dot()\n down()\n fillcolor(c)\n begin_fill()\n forward (1.41*d) # sol\n left(90)\n forward(d) # mur droit\n left(45)\n forward(d) # toit droit\n left(90)\n forward(d) # toit gauche\n left(45)\n forward(d) # mur gauche\n left(90)\n end_fill()\n up()\n\ngoto(0,0)\nmaison(70, 'lightblue')\ngoto(150, 30)\nmaison(50, 'yellow')\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Arbre\n", - "\n", - "Pour dessiner un arbre simple, nous utilisons un segment droit pour le tronc et un disque (dot) pour le feuillage.\n", - "C'est une fonction qui a 3 paramètres\n", - "\n", - "- `d` -- longueur du tronc\n", - "- `c` -- couleur du tronc\n", - "- `c2` -- couleur du feuillage\n", - "\n" - ] + "source": "## Drapeau tricolore\n\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 6 </h3>\n", - "\n", - "Définissez et utilisez une fonction `foret(n)` qui dessine `n` arbres.\n", - "\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 5 </h3>\n\n1. Modifiez les couleurs pour afficher le drapeau de l'irlande (ou d'un autre pays de votre choix). \n2. Créez une deuxième fonction `drapeau2(d, c, c2, c3)` qui crée un drapeau avec des barres horizontales et utilisez là pour dessiner le drapeau des pays bas (ou d'un autre pays de votre choix)." }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def arbre(d, c, c2):\n", - " down()\n", - " left(90)\n", - " width(d/6) # tronc\n", - " pencolor(c)\n", - " forward(d)\n", - " dot(d, c2) # feuillage\n", - " up()\n", - " backward(d) # retourner à la position de départ\n", - " right(90)\n", - "\n", - "\n", - "arbre(100, 'brown', 'lime')\n", - "forward(70)\n", - "arbre(90, 'brown', 'green')\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef rectangle(d, e, c):\n fillcolor(c)\n begin_fill()\n for i in range(2):\n forward(d)\n left(90)\n forward(e)\n left(90)\n end_fill()\n\ndef drapeau(d, c1, c2, c3):\n rectangle(d, 2*d, c1)\n forward(d)\n rectangle(d, 2*d, c2)\n forward(d)\n rectangle(d, 2*d, c3)\n\ndrapeau(50, 'blue', 'white', 'red')\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Coeur\n", - "\n" - ] + "source": "## Arbre\n\nPour dessiner un arbre simple, nous utilisons un segment droit pour le tronc et un disque (dot) pour le feuillage.\nC'est une fonction qui a 3 paramètres\n\n- `d` -- longueur du tronc\n- `c` -- couleur du tronc\n- `c2` -- couleur du feuillage\n\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 7 </h3>\n", - "\n", - "Ajoutez deux paramètres: `w` pour l'épaisseur de la ligne (width), et `c2` pour la couleur de ligne. \n", - "La fonction aura la forme `coeur(r, w, c, c2)`.\n", - "\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 6 </h3>\n\nDéfinissez et utilisez une fonction `foret(n)` qui dessine `n` arbres.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def coeur(r, c):\n", - " down()\n", - " fillcolor(c)\n", - " begin_fill()\n", - " left(90)\n", - " circle(r, 225)\n", - " forward(2.4*r)\n", - " left(90)\n", - " forward(2.4*r)\n", - " circle(r, 225)\n", - " left(90)\n", - " end_fill()\n", - " up()\n", - "\n", - "coeur(50, 'darkviolet')\n", - "forward(130)\n", - "coeur(40, 'tomato')\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef arbre(d, c, c2):\n down()\n left(90)\n width(d/6) # tronc\n pencolor(c)\n forward(d)\n dot(d, c2) # feuillage\n up()\n backward(d) # retourner à la position de départ\n right(90)\n\n\narbre(100, 'brown', 'lime')\nforward(70)\narbre(90, 'brown', 'green')\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Autres exemples de fonction\n", - "\n", - "**Exemple 1: Dessiner un bus**\n", - "\n", - "Pour dessiner un bus, une voiture ou un camion simple, nous pouvons utiliser des rectangles pour le châssis, et un disque (dot) pour les roues.\n", - "C'est une fonction qui a comme paramètres\n", - "\n", - "- `p` -- position du bus\n", - "- `d` -- dimension (longeur) du bus\n", - "- `c` -- couleur du bus" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from turtle import *\n", - "up()\n", - "\n", - "def rectangle(d, e, c):\n", - " fillcolor(c)\n", - " begin_fill()\n", - " for i in range(2):\n", - " forward(d)\n", - " left(90)\n", - " forward(e)\n", - " left(90)\n", - " end_fill()\n", - "\n", - "def bus(p, d, c):\n", - " goto(p)\n", - " down()\n", - " rectangle(d, d/3, c) # chassis\n", - " forward(d/4)\n", - " dot(d/5) # roue arrière\n", - " dot(d/10, 'white')\n", - " forward(d/2)\n", - " dot(d/5) # roue avant\n", - " dot(d/10, 'white')\n", - " up()\n", - "\n", - "bus([-200, 50], 200, 'red')\n", - "bus([50, 20], 150, 'lightblue')\n", - "\n", - "done()\n" - ] + "source": "## Coeur\n\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "**Exemple 2: L'escalier**\n", - "\n", - "Pour dessiner un escalier notre fonction aura les paramètres suivants:\n", - "\n", - "- `d` -- longueur de marche\n", - "- `e` -- hauteur de marche\n", - "- `n` -- nombre de marches\n", - "\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 7 </h3>\n\nAjoutez deux paramètres: `w` pour l'épaisseur de la ligne (width), et `c2` pour la couleur de ligne. \nLa fonction aura la forme `coeur(r, w, c, c2)`.\n\n" }, { "cell_type": "code", "execution_count": null, "metadata": { - "scrolled": true + "trusted": true }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def escalier(d, e, n):\n", - " dot() # marqueur de début\n", - " for i in range(n):\n", - " forward(d)\n", - " left(90)\n", - " forward(e)\n", - " right(90)\n", - "\n", - "escalier(20, 10, 5)\n", - "escalier(10, -20, 5)\n", - "escalier(30, 10, 4)\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef coeur(r, c):\n down()\n fillcolor(c)\n begin_fill()\n left(90)\n circle(r, 225)\n forward(2.4*r)\n left(90)\n forward(2.4*r)\n circle(r, 225)\n left(90)\n end_fill()\n up()\n\ncoeur(50, 'darkviolet')\nforward(130)\ncoeur(40, 'tomato')\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Exercices d'entraînement " - ] + "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> Exercice 8 </h3>\n", - "\n", - "Corrigez le programme ci-dessous afin qu'il affiche un triangle rouge" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 8 </h3>\n\nCorrigez le programme ci-dessous afin qu'il affiche un triangle rouge" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def triangle_couleur(d, c):\n", - " pencolor(c)\n", - " for i in range(3):\n", - " forward(d)\n", - " left(120)\n", - "\n", - "triangle_couleur(\"red\", 100)\n", - "\n", - "done()" - ] + "source": "from turtle import *\n\ndef triangle_couleur(d, c):\n pencolor(c)\n for i in range(3):\n forward(d)\n left(120)\n\ntriangle_couleur(\"red\", 100)\n\ndone()" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 9 </h3>\n", - "\n", - "1. Testez le programme suivant ci-dessous.\n", - "2. Définissez une fonction `triangle(l)`, qui permet de tracer des triangles équilatéraux de longueur lg, 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.\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 9 </h3>\n\n1. Testez le programme suivant ci-dessous.\n2. Définissez une fonction `triangle(l)`, qui permet de tracer des triangles équilatéraux de longueur lg, 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.\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "# pour être à gauche du canevas\n", - "backward(250)\n", - "\n", - "# Code à factoriser\n", - "for k in range(3):\n", - " forward(30)\n", - " right(120)\n", - "forward(30)\n", - "for k in range(3):\n", - " forward(60)\n", - " right(120)\n", - "forward(60)\n", - "for k in range(3):\n", - " forward(90)\n", - " right(120)\n", - "forward(90)\n", - "for k in range(3):\n", - " forward(120)\n", - " right(120)\n", - "forward(120)\n", - "for k in range(3):\n", - " forward(150)\n", - " right(120)\n", - "\n", - "done()\n" - ] + "source": "from 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" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 10 </h3>\n", - "\n", - "\n", - "Définir une fonction `carre_couleur(d,c )` qui demande à la tortue de\n", - "dessiner des carrés colorés de longueur variés. Elle doit dessiner trois triangles comme sur la figure ci-dessous.\n", - "\n", - "" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 10 </h3>\n\n\nDéfinir une fonction `carre_couleur(d,c )` qui demande à la tortue de\ndessiner des carrés colorés de longueur variés. Elle doit dessiner trois triangles comme sur la figure ci-dessous.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "# a compléter\n", - "\n", - "done()" - ] + "source": "from turtle import *\n\n# a compléter\n\ndone()" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 11 </h3>\n", - "\n", - "Définissez une commande `rangee_triangles(nombre, cote)` qui dessine une rangée de pyramides selon l’illustration. Chaque triangle a des côtés de longueur `cote`.\n", - "Le paramètre `nombre` indique le nombre de triangles dans la rangée. Utilisez ensuite\n", - "cette commande pour dessiner une rangée de 13 triangles de côtés 31, centrée au\n", - "milieu de la fenêtre.\n", - "\n", - "" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 11 </h3>\n\nDéfinissez une commande `rangee_triangles(nombre, cote)` qui dessine une rangée de pyramides selon l’illustration. Chaque triangle a des côtés de longueur `cote`.\nLe paramètre `nombre` indique le nombre de triangles dans la rangée. Utilisez ensuite\ncette commande pour dessiner une rangée de 13 triangles de côtés 31, centrée au\nmilieu de la fenêtre.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def rangee_triangles(nombre, cote):\n", - " # a compléter\n", - "\n", - "# a compléter\n", - "\n", - "done()" - ] + "source": "from turtle import *\n\ndef rangee_triangles(nombre, cote):\n # a compléter\n\n# a compléter\n\ndone()" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 12 </h3>\n", - "\n", - "Définissez une fonction `maison(h, c)` qui dessine une maison avec une porte de hauteur `h` et de vouleur `c`. \n", - "Les autres dimensions de la maison sont représentées sur l'image ci-dessous.\n", - "\n", - "Écrire un programme qui utilise la fonction `maison(h, c)` pour reproduire la figure suivante:\n", - "" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 12 </h3>\n\nDéfinissez une fonction `maison(h, c)` qui dessine une maison avec une porte de hauteur `h` et de vouleur `c`. \nLes autres dimensions de la maison sont représentées sur l'image ci-dessous.\n\nÉcrire un programme qui utilise la fonction `maison(h, c)` pour reproduire la figure suivante:\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "\n", - "def maison(h, c):\n", - " # a compléter\n", - " \n", - "\n", - "speed(9) # pour dessiner vite\n", - "# dessiner le village (a compléter)\n", - "# a compléter\n", - "done()" - ] + "source": "from turtle import *\n\n\ndef maison(h, c):\n # a compléter\n \n\nspeed(9) # pour dessiner vite\n# dessiner le village (a compléter)\n# a compléter\ndone()" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "# Complément sur les valeurs par défaut *\n", - "\n", - "Quand une fonction possède beaucoup d'arguments, nous pouvons spécifier des valeurs par défaut. Pour ceci nous ajoutons la valeur par défaut dans la liste de paramètres avec le symbole `=`.\n", - "\n", - "La fonction `rectangle(p, d, e, w=1, pen='black', fill='white')` dessine un rectangle aux dimensions `d` x `e` à la position `p`.\n", - "Cette fonction possède 3 paramètres optionnels (valeur par défaut en parenthèse):\n", - "\n", - "- `w` -- épaisseur de ligne (`1`)\n", - "- `pen` -- couleur de ligne (`'black'`)\n", - "- `fill` -- couleur de remplissage (`'white'`)\n", - "\n", - "Il a maintenant différentes façons à appeler la fonction. Tous les paramètres qui ont une valeur par défaut sont optionnels. Au minimum nous devons spécifier les paramètres sans valeur par défaut.\n", - "\n", - "```\n", - "rectangle((40, 0), 80, 40)\n", - "```\n", - "\n", - "Le rectangle est dessiné dans la direction actuelle de la tortue. Cette orientation peut être changée avec `seth()`. La tortue se positionne de l'autre côté du point de départ. Ceci permet d'enchainer à dessiner des rectangles.\n", - "\n" - ] + "source": "# Complément sur les valeurs par défaut *\n\nQuand une fonction possède beaucoup d'arguments, nous pouvons spécifier des valeurs par défaut. Pour ceci nous ajoutons la valeur par défaut dans la liste de paramètres avec le symbole `=`.\n\nLa fonction `rectangle(p, d, e, w=1, pen='black', fill='white')` dessine un rectangle aux dimensions `d` x `e` à la position `p`.\nCette fonction possède 3 paramètres optionnels (valeur par défaut en parenthèse):\n\n- `w` -- épaisseur de ligne (`1`)\n- `pen` -- couleur de ligne (`'black'`)\n- `fill` -- couleur de remplissage (`'white'`)\n\nIl a maintenant différentes façons à appeler la fonction. Tous les paramètres qui ont une valeur par défaut sont optionnels. Au minimum nous devons spécifier les paramètres sans valeur par défaut.\n\n```\nrectangle((40, 0), 80, 40)\n```\n\nLe rectangle est dessiné dans la direction actuelle de la tortue. Cette orientation peut être changée avec `seth()`. La tortue se positionne de l'autre côté du point de départ. Ceci permet d'enchainer à dessiner des rectangles.\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "penup()\n", - "\n", - "def rectangle(p, d, e, w=1, pen='black', fill='white'):\n", - " goto(p)\n", - " pendown()\n", - " width(w)\n", - " pencolor(pen)\n", - " fillcolor(fill)\n", - " begin_fill()\n", - " for i in range(2):\n", - " forward(d)\n", - " left(90)\n", - " forward(e)\n", - " left(90)\n", - " end_fill()\n", - " penup()\n", - "\n", - "rectangle([-200, 30], 40, 30)\n", - "rectangle([-100, -20], 40, 30, 1, 'orange', 'orange')\n", - "rectangle([100, -40], 30, 80, fill='yellow')\n", - "rectangle([200, 100], 80, 40, 1, 'red', 'pink')\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\npenup()\n\ndef rectangle(p, d, e, w=1, pen='black', fill='white'):\n goto(p)\n pendown()\n width(w)\n pencolor(pen)\n fillcolor(fill)\n begin_fill()\n for i in range(2):\n forward(d)\n left(90)\n forward(e)\n left(90)\n end_fill()\n penup()\n\nrectangle([-200, 30], 40, 30)\nrectangle([-100, -20], 40, 30, 1, 'orange', 'orange')\nrectangle([100, -40], 30, 80, fill='yellow')\nrectangle([200, 100], 80, 40, 1, 'red', 'pink')\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Polygone régulier\n", - "\n", - "La fonction `polygone()` dessine un polygone régulier avec n sommets. Les arguments de la fonction sont :\n", - "\n", - "- `d` -- distance du segment\n", - "- `n` -- nombre de segments\n", - "\n" - ] + "source": "## Polygone régulier\n\n_Rappel: Un polygone est une figure géométrique plane fermée, formée par une suite de segments de droite qui se rejoignent en leurs extrémités._\n\nLa fonction `polygone()` dessine un polygone régulier avec n sommets. Les arguments de la fonction sont :\n\n- `d` -- distance du segment\n- `n` -- nombre de segments\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def polygon(d, n, w=1, pen='black', fill='white'):\n", - " down()\n", - " pencolor(pen)\n", - " width(w)\n", - " fillcolor(fill)\n", - " begin_fill()\n", - " for i in range(n):\n", - " forward(d)\n", - " left(360/n)\n", - " end_fill()\n", - " up()\n", - "\n", - "up()\n", - "backward(280)\n", - "for n in range(3, 9):\n", - " polygon(40, n, fill='lime')\n", - " color('black')\n", - " forward(100)\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef polygon(d, n, w=1, pen='black', fill='white'):\n down()\n pencolor(pen)\n width(w)\n fillcolor(fill)\n begin_fill()\n for i in range(n):\n forward(d)\n left(360/n)\n end_fill()\n up()\n\nup()\nbackward(280)\nfor n in range(3, 9):\n polygon(40, n, fill='lime')\n color('black')\n forward(100)\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "## Polygone étoilé\n", - "\n", - "En ajoutant un paramètre supplémentaire `m`, la fonction `polygone()` permet également de dessiner un polygone étoilé. Ce paramètre signifie le nombre de pics sauté pour aller au prochain des `n` points répartis dans un cercle. Pour `m=1` un polygone régulier est dessiné.\n", - "\n", - "es arguments de la fonction sont :\n", - "\n", - "- `d` -- distance du segment\n", - "- `n` -- nombre de segments\n", - "- `m` -- paramètre pour polygone étoilé (nombre de pics sautés)\n", - "\n" - ] + "source": "## Polygone étoilé\n\nEn ajoutant un paramètre supplémentaire `m`, la fonction `polygone()` permet également de dessiner un polygone étoilé. Ce paramètre signifie le nombre de pics sauté pour aller au prochain des `n` points répartis dans un cercle. Pour `m=1` un polygone régulier est dessiné.\n\nes arguments de la fonction sont :\n\n- `d` -- distance du segment\n- `n` -- nombre de segments\n- `m` -- paramètre pour polygone étoilé (nombre de pics sautés)\n\n" }, { "cell_type": "code", "execution_count": null, - "metadata": {}, + "metadata": { + "trusted": true + }, "outputs": [], - "source": [ - "from turtle import *\n", - "\n", - "def polygon(d, n, m=1, w=1, pen='black', fill='white'):\n", - " down()\n", - " pencolor(pen)\n", - " width(w)\n", - " fillcolor(fill)\n", - " begin_fill()\n", - " for i in range(n):\n", - " forward(d)\n", - " left(m*360/n)\n", - " end_fill()\n", - " up()\n", - "\n", - "up()\n", - "speed(0)\n", - "backward(250)\n", - "for m in range(2, 6):\n", - " polygon(80, 11, m, fill='yellow')\n", - " color('black')\n", - " forward(140)\n", - "\n", - "done()\n" - ] + "source": "from turtle import *\n\ndef polygon(d, n, m=1, w=1, pen='black', fill='white'):\n down()\n pencolor(pen)\n width(w)\n fillcolor(fill)\n begin_fill()\n for i in range(n):\n forward(d)\n left(m*360/n)\n end_fill()\n up()\n\nup()\nspeed(0)\nbackward(250)\nfor m in range(2, 6):\n polygon(80, 11, m, fill='yellow')\n color('black')\n forward(140)\n\ndone()\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 12 </h3>\n", - "\n", - "Utilisez la fonction `rectangle(p, d, e, w, pen, fill)` pour dessiner une copie de ce tableau de Mondrian.\n" - ] + "source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 12 </h3>\n\nUtilisez la fonction `rectangle(p, d, e, w, pen, fill)` pour dessiner une copie de ce tableau de Mondrian.\n" }, { "cell_type": "markdown", "metadata": {}, - "source": [ - "\n", - "\n" - ] + "source": "\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", - "" - ] + "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" } ], "metadata": { @@ -897,5 +316,5 @@ } }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 2 } diff --git a/Notebooks/05_Les_variables.ipynb b/Notebooks/05_Les_variables.ipynb index 47e64b26b1511fd8b3a4525a15a1759a4d918eb8..eb5c4ec3cc4d7b5376128d64d57ed7fa75c58de4 100644 --- a/Notebooks/05_Les_variables.ipynb +++ b/Notebooks/05_Les_variables.ipynb @@ -1 +1,123 @@ -{"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> Remarque introductive <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\" <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> \n</div>"},{"metadata":{},"cell_type":"markdown","source":"# 5. Les variables\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, que\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\nEn 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> 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> 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\">\nB) _var3 et C) 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> 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'>< 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 = 15\nb = 10\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> 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> 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> 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> 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\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> 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\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> 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> 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\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> 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\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> 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"},{"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 +<<<<<<< HEAD +{"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> Remarque introductive <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\" <i class=\"fa fa-folder\" aria-hidden=\"true\"> </i>\n</p> \n</div>"},{"metadata":{},"cell_type":"markdown","source":"# 5. Les variables\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, que\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\nEn 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> 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> 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\">\nB) _var3 et C) 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> 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'>< 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 = 15\nb = 10\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> 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> 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> 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> 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\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> 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\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> 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> 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\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> 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\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> 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"},{"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} +======= +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": "<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n \n- **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\n- **Ce notebook doit être ouvert avec Basthon. Si en haut à droite vous voyez le symbole de Jupyter alors allez sur [Basthon](https://notebook.basthon.fr) pour ouvrir ce notbook.**\n\n\n</div>\n\n\n\n\n# 5. Les variables\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, que\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\nEn 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." + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": "<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n\n```\nQu'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": "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 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> Quizz </h3> \n \n```\nQuel nom de variable est invalide en Python ?\n\nA) nom\nB) _var3\nC) 3variable\nD) variableNom\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\">\nB) _var3 et C) 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": true + }, + "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 variation à 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": true + }, + "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": { + "trusted": true + }, + "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": "\n\n### Exemple 3 : Utiliser 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": true + }, + "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": "## Exercices\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 1 </h3>\n\nTransformez le i vers un i avec trema (deux points).\n" + }, + { + "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 +} +>>>>>>> c1d6a141f2a16538787de62de7e95aec6187ec90 diff --git a/Notebooks/05b_Les_variables2.ipynb b/Notebooks/05b_Les_variables2.ipynb index 1829a83f95d017f2907c774b43e48873c117b86f..f9579cbaaace901c8652bdc0b7706e3671989e98 100644 --- a/Notebooks/05b_Les_variables2.ipynb +++ b/Notebooks/05b_Les_variables2.ipynb @@ -1 +1,71 @@ -{"cells":[{"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### Principaux types de données en Python\n- `int` : pour les 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"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> 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> 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":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"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": "# 5. Les variables 2 (entrée-sortie, type)\n" + }, + { + "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 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> 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> 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": "code", + "execution_count": null, + "metadata": { + "trusted": false + }, + "outputs": [], + "source": "" + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "trusted": false + }, + "outputs": [], + "source": "" + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}