"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": {
"deletable": false
},
"source": "# 6 - Les Conditions, partie 1\n\nDans ce chapitre, nous allons voir comment un programme peut faire des choix, et comment il peut exécuter du code de façon sélective.\n\n<blockquote class=\"alert alert-info\" style=\"background-color:rgb(220,240,255); margin:10px 10%;\">\n <p><span style=\"font-size:1.5em\">❔</span> C'est quoi une instruction conditionnelle? Exécutez la cellule ci-dessous pour voir une petite introduction sur la notion de type d'instruction conditionnelle</p>\n</blockquote>\n\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/c0cm031r_eo?si=Apy9aC8a9HoHcHfv\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false
},
"source": "## I) Comparaisons\n\nUn programme doit parfois comparer deux valeurs.\nPython connait six types de comparaisons :\n\n- plus petit (`<`),\n- plus petit ou égal (`<=`),\n- égal (`==`),\n- différent (`!=`),\n- plus grand (`>`),\n- plus grand ou égal (`>=`).\n\nDans des formules mathématiques nous utilisons les symboles ≤, ≥ et ≠. En Python vous devez utiliser deux symboles: `<=`, `>=` et `!=` à la place.\n\nLe résultat d'une comparaison est une valeur **booléenne**, soit `True` (vrai) soit `False` (faux).\n\n\n**Remarque** Il est impossible de comparer des données de différentes nature (par exemple une chaîne de caractère avec un nombre)\n\n"
"source": "<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\"> Une erreur car il est impossible de comparer la chaîne de caractère \"10\" (type str) avec le nombre 2 (type int).\n</div>\n</details>\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\n1. Remplace les `...` de chaque commentaire avec la valeur qui devrait être affichée.\n\n*Indication: chaque print affiche un `bool` : `True` ou `False`*"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "a = 5\nb = 18 \nc = 12.3\nmot1=\"Hello\"\nmot2=\"World\"\n# L'instruction suivante va afficher ...\nprint(a > b)\n# L'instruction suivante va afficher ...\nprint(b//a == 3)\n# L'instruction suivante va afficher ...\nprint(b%a == 3)\n# L'instruction suivante va afficher ...\nprint(a - b > 2)\n# L'instruction suivante va afficher ...\nprint(type(c) == float)\n# L'instruction suivante va afficher ...\nprint(mot1 != mot2)\n# L'instruction suivante va afficher ...\nprint(mot1 < mot2)\n# L'instruction suivante va afficher ...\nprint(mot1 > 2)\n# L'instruction suivante va afficher ...\nprint(\"a\" > \"b\")\n"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "2. Exécute le programme ci-dessus et corrige, si besoin, les commentaires afin qu'ils correspondent aux valeurs affichées\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 2 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "# Variable x\nx = 3\nprint('x =', x)\n\n# 6 exemples de comparaisons\nprint('(x < 2) =', x < 2)\n\n\n\n\n"
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false
},
"source": "<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \nL'expression `x == 2` : \n\n A) <input type=\"checkbox\" > met la valeur 2 dans la variable x\n \n B) <input type=\"checkbox\" > compare deux valeurs\n \n C) <input type=\"checkbox\" > affecte la variable x avec une valeur\n \n D) <input type=\"checkbox\" > retourne True ou False"
"source": "!!! warning \nIl ne faut pas confondre l'opérateur d'affectation (`x = 2`) avec l'opérateur de comparaison (`x == 2`)\n!!!\n\n<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \n\n\nQue se passe-t-il si vous échangez les deux éléments dans `x == 2` ? \nEt si vous échangez les deux éléments dans `x = 2` ?\n\nEssayer pour voir..."
"source": "<details>\n<summary style=\"border-left:3px solid #3c763d; border-radius:2pt; width:100%; color:#3c763d; padding:6px; background-color: #dff0d8\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">Si on écrit 2 = x à la place de x = 2 il y aura une erreur car on ne peut affecter x à 2. Dans l'autre cas, c'est égal de tester si x est égal à 2 (x==2) ou de tester si 2 est égal à x (2==x)\n</div>\n</details>\n "
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"breakpoint"
]
},
"source": "#### Ctrl+enter pour continuer ..........."
},
{
"cell_type": "markdown",
"metadata": {},
"source": "## II) Conditions (`if`)\n\nAfin d'exécuter du code de façon sélective, on utilise le mot-clé `if`.\n\nNous allons voir que :\n\n- le mot-clé `if` permet une exécution conditionnelle,\n- le mot-clé `if-else` permet de choisir entre deux alternatives,\n- le mot-clé `elif` (else if) permet d'ajouter différentes conditions.\n\n"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "### Exécution conditionnelle `if`\n\nLa structure `if` ci-dessous permet d'exécuter une action seulement si `condition` est `True`.\n\n``` python\nif condition:\n action\n```\n\n#### Exemple \n\nLe programme suivant demande la moyenne générale obtenue au premier semestre est affiche `Bravo, tu peux faire un extra-muros!\")` si la moyenne est supérieure ou égale à 5.3.\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "n = float(input(\"Quelle est ta moyenne générale au premier semestre: \"))\n\nif n >= 5.3 :\n print(\"Bravo, tu peux faire un extra-muros!\")"
},
{
"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\nEn Python, `if` est suivi\n\nA) <input type=\"checkbox\" > d'un bloc\n\nB) <input type=\"checkbox\" > d'une condition\n\nC) <input type=\"checkbox\" > de parenthèses\n\nD) <input type=\"checkbox\" > d'un deux-points\n"
},
{
"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\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">B) d'une condition (Et ensuite de D), un deux-points)\n</div>\n</details>\n \n"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "### Choix binaire `if - else`\n\nLa structure `if - else` ci-dessous permet d'exécuter une **action_1** seulement si une **condition** est vraie et une **action_2** sinon : \n\n``` python\nif condition:\n action_1\nelse:\n action_2\n```\n\n#### Exemple 1\nDans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "n = int(input('Entrez un nombre: '))\n\nif n >= 0:\n print('positif')\nelse:\n print('négatif')"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 3 </h3>\n\n1. Complètez le programme ci-dessous qui affiche `C'est un triangle rectancle` ou `Ce n'est pas un triangle rectancle` en fonction des longeurs des côtés du triangle rentré.\n\n2. Testez votre programme pour vérifier si le triangle où a=9, b=12 et c= 15 est un triangle rectangle.\n\n*Rappel : Selon la réciproque du théorème de Pythagore, un triangle de longeur $a$, $b$ et $c$ ($c$ le plus grand côté) est rectangle si $a^2+b^2=c^2$*"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "a = float(input(\"La longeur du côté a vaut : \"))\nb = float(input(\"La longeur du côté a vaut : \"))\nc = float(input(\"La longeur du côté a vaut : \"))\nif ... :\n print(\"...\")\nelse:\n print(\"...\")"
},
{
"cell_type": "raw",
"metadata": {},
"source": "Le triangle où a=9, b=12 et c= 15 est-il un triangle rectangle?\n\n Réponse : "
},
{
"cell_type": "markdown",
"metadata": {},
"source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 4 </h3>\n\nComplétez le programme qui demande son âge à l'utilisatrice et affiche `vous êtes majeure` si elle est mineure ou `vous êtes mineure` dans le cas contraire.\n\n*Rappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.*\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "age = int(input(\"Bonjour, quel est votre âge ?\"))\n\n"
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"breakpoint"
]
},
"source": "#### Ctrl+enter pour continuer ..........."
},
{
"cell_type": "markdown",
"metadata": {},
"source": "### Choix multiple (`if - elif - else`)\n\nLe mot-clé `elif` est une contraction de **else if** et permet de continuer à tester d'autres conditions : \n\n``` python\nif condition1 :\n action_1\nelif condition2 :\n action_2\nelse:\n action_3\n```\n\nDans l'exemple ci-dessous, on affiche si un nombre entré est positif, négatif ou nul :\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "n = int(input('Entrez un nombre: '))\n\nif n > 0:\n print('positif')\nelif n < 0:\n print('négatif')\nelse:\n print('zéro')\n"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "Sans le mot-clé `elif` nous devrions mettre le bloc `if` à l'intérieur du bloc `else` en indentation.\nAvec multiples conditions, les blocs se décalent de plus en plus et rendent le programme illisible, comme ci-dessous.\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "# !!! Exemple à éviter !!!!\nn = int(input('Entrez un nombre: '))\n\nif n > 0:\n print('positif')\nelse:\n if n < 0:\n print('négatif')\n else:\n print('zéro')\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>\nPour chacun des programme:\n\n1. Sans exécuter les programme, donnez la valeur des variables demandées. \n2. Vérifier votre réponse en ajoutant un print à la fin des programmes et en les éxecutants.\n\n**Programme A**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "# Programme A\na = 7\nb = 12\nif a > 5:\n b = b - 4\nif b >= 8:\n b = b + 1"
},
{
"cell_type": "raw",
"metadata": {},
"source": "La variable b vaut : "
},
{
"cell_type": "markdown",
"metadata": {},
"source": "**Programme B**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "# Programme B\na = 7\nb = 12\nif a > 5:\n b = b - 4\nelif b >= 8:\n b = b + 1 "
},
{
"cell_type": "raw",
"metadata": {},
"source": "La variable b vaut : "
},
{
"cell_type": "markdown",
"metadata": {},
"source": "**Programme C**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "# Programme C\na = 7\nb = 12\nif a > 5:\n b = b - 4\nelse:\n b = b + 1"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "La variable b vaut : "
},
{
"cell_type": "markdown",
"metadata": {},
"source": "**Programme D**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "# Programme D\na = 10\nif a < 5:\n a = 20\nelif a < 100:\n a = 500\nelse:\n a = 0"
},
{
"cell_type": "raw",
"metadata": {},
"source": "La variable a vaut : "
},
{
"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\nLes programmes suivants sont-ils valides (on ne demande pas ce qu’ils font) ? S’ils sont invalides, corrigez les.\n\n**Programme A**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "a = 10\nif a == 5:\na = 2"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "**Programme B**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "a = 10\nelif a == 5:\n a = 2"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "**Programme C**"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "a = 10\nif a = 5:\n a == 2"
},
{
"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\n1. Complétez le programme ci-dessous qui demande à l'utilisateur·ice les coefficients d'une équation du second degré $ax^2+bx+c=0$ et qui affiche les solutions.\n\n2. Testez votre programme sur les équations $5x^2-5x-15=0$, $5x^2-5x+15=0$ et $10x^2-20x+10=0$. "
},
{
"cell_type": "markdown",
"metadata": {},
"source": "!!! info utiliser des fonctions mathématiques comme la fonction racine carrée $\\sqrt{x}$.\nPour calculer la racine carrée d'un nombre $\\sqrt{x}$, il faut utiliser la fonction `sqrt` du module `math`. Pour ce faire, votre programme doit commencer par `from math import sqrt` (pour importer la fonction `sqrt` du module `math`). Pour l'utiliser, il suffit de mettre la valeur dont on veut trouver la racine en argument de la fonction `sqrt`. Par exemple, l'instruction `print(sqrt(25))` affichera 5.\n!!!\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "a = ...(input(\"Entrer le coefficient a = \"))\nb = ...(input(\"Entrer le coefficient a = \"))\nc = ...(input(\"Entrer le coefficient a = \"))\ndelta = ...\nif ... :\n x1 = ...\n x2 = ...\n print(\"Deux solutions, x1= \",x1, \"; x2 = \", x2)\nelif ... :\n x = ...\n print(\"...\")\nelse :\n print(\"...\")"
},
{
"cell_type": "raw",
"metadata": {},
"source": "Quel est l'ensemble des solution de 5x²-5x-15=0?\n\n Réponse: S = ...\n \n \nQuel est l'ensemble des solution de 5x²+5x+15=0=0?\n\n Réponse: S = ...\n \n \nQuel est l'ensemble des solution de 10x²-20x+10=0?\n\n Réponse: S = ...\n "
},
{
"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Écrivez un programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré de dimension 100, puis qui fait le bon dessin.\n\n"
"source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 9 </h3> \n\nDéfinissez une fonction `temperature()` qui prend en paramètre une température entre -20 et 50 et affiche si cette température est :\n* glaciale\n* froide\n* normale\n* chaude\n* bouillante\n\n(à vous de choisir les bornes de chaque catégorie)\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": true
},
"outputs": [],
"source": "def temperature(t):\n ...\n \n \n \n \ntemp = int(input(\"Entrez une température entre -20 et 50 : \"))\ntemperature(temp)"
},
{
"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\nDéfinissez une fonction `compare` qui prend en paramètres deux nombres `a` et `b`, puis qui dit lequel est le plus grand :\n- si le premier nombre est plus grand que le deuxième, le programme affichera « Le premier ! »\n- si le deuxième nombre est plus grand que le premier, le programme affichera « Le deuxième ! »\n- s'ils sont égaux, le programme affichera « Ils sont égaux. ».\n\n\nTestez-la avec deux nombres de votre choix."
"source": "age == 18\nrevenu == 25000\n\nif age >= 18\nif revenu < 25000\nprint(\"Vous êtes éligible à la subvention.\")\nelif revenu < 26000\nprint(\"Vous êtes presque éligible à la subvention, vous gagnez 1'000.- de trop.\")\nelse:\nprint(\"Vous n'êtes pas éligible à cause de vos revenus trop élevés.\")\nelse:\nif revenu < 25000\nprint(\"Vous n'êtes pas éligible à cause de votre âge, mais le seriez si vous étiez majeur·e.\")\nelse:\nprint(\"Vous n'êtes pas éligible à cause de vos revenus trop élevés et de votre âge.\")\n \n"
}
],
"metadata": {
"celltoolbar": "Éditer les Méta-Données",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{"cells":[{"metadata":{"deletable":false,"editable":false},"cell_type":"markdown","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> "},{"metadata":{"deletable":false},"cell_type":"markdown","source":"# 6 - Les Conditions, partie 1\n\nDans ce chapitre, nous allons voir comment un programme peut faire des choix, et comment il peut exécuter du code de façon sélective.\n\n<blockquote class=\"alert alert-info\" style=\"background-color:rgb(220,240,255); margin:10px 10%;\">\n <p><span style=\"font-size:1.5em\">❔</span> C'est quoi une instruction conditionnelle? Exécutez la cellule ci-dessous pour voir une petite introduction sur la notion de type d'instruction conditionnelle</p>\n</blockquote>\n\n<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/c0cm031r_eo?si=Apy9aC8a9HoHcHfv\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>"},{"metadata":{"deletable":false},"cell_type":"markdown","source":"## I) Comparaisons\n\nUn programme doit parfois comparer deux valeurs.\nPython connait six types de comparaisons :\n\n- plus petit (`<`),\n- plus petit ou égal (`<=`),\n- égal (`==`),\n- différent (`!=`),\n- plus grand (`>`),\n- plus grand ou égal (`>=`).\n\nDans des formules mathématiques nous utilisons les symboles ≤, ≥ et ≠. En Python vous devez utiliser deux symboles: `<=`, `>=` et `!=` à la place.\n\nLe résultat d'une comparaison est une valeur **booléenne**, soit `True` (vrai) soit `False` (faux).\n\n\n**Remarque** Il est impossible de comparer des données de différentes nature (par exemple une chaîne de caractère avec un nombre)\n\n"},{"metadata":{"editable":false},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \nQu'affiche le programme suivant "},{"metadata":{"trusted":true},"cell_type":"code","source":"print(\"10\" > 2)","execution_count":null,"outputs":[]},{"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\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\"> Une erreur car il est impossible de comparer la chaîne de caractère \"10\" (type str) avec le nombre 2 (type int).\n</div>\n</details>\n "},{"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\n1. Remplace les `...` de chaque commentaire avec la valeur qui devrait être affichée.\n\n*Indication: chaque print affiche un `bool` : `True` ou `False`*"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = 5\nb = 18 \nc = 12.3\nmot1=\"Hello\"\nmot2=\"World\"\n# L'instruction suivante va afficher ...\nprint(a > b)\n# L'instruction suivante va afficher ...\nprint(b//a == 3)\n# L'instruction suivante va afficher ...\nprint(b%a == 3)\n# L'instruction suivante va afficher ...\nprint(a - b > 2)\n# L'instruction suivante va afficher ...\nprint(type(c) == float)\n# L'instruction suivante va afficher ...\nprint(mot1 != mot2)\n# L'instruction suivante va afficher ...\nprint(mot1 < mot2)\n# L'instruction suivante va afficher ...\nprint(mot1 > 2)\n# L'instruction suivante va afficher ...\nprint(\"a\" > \"b\")\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Exécute le programme ci-dessus et corrige, si besoin, les commentaires afin qu'ils correspondent aux valeurs affichées\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 2 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Variable x\nx = 3\nprint('x =', x)\n\n# 6 exemples de comparaisons\nprint('(x < 2) =', x < 2)\n\n\n\n\n","execution_count":null,"outputs":[]},{"metadata":{"deletable":false,"editable":false},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \nL'expression `x == 2` : \n\n A) <input type=\"checkbox\" > met la valeur 2 dans la variable x\n \n B) <input type=\"checkbox\" > compare deux valeurs\n \n C) <input type=\"checkbox\" > affecte la variable x avec une valeur\n \n D) <input type=\"checkbox\" > retourne True ou False"},{"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\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">D) retourne True ou False\n</div>\n</details>\n "},{"metadata":{},"cell_type":"markdown","source":"!!! warning \nIl ne faut pas confondre l'opérateur d'affectation (`x = 2`) avec l'opérateur de comparaison (`x == 2`)\n!!!\n\n<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \n\n\nQue se passe-t-il si vous échangez les deux éléments dans `x == 2` ? \nEt si vous échangez les deux éléments dans `x = 2` ?\n\nEssayer pour voir..."},{"metadata":{"trusted":true},"cell_type":"code","source":"x = 2 # affectation\nx == 2 # comparaison\n","execution_count":null,"outputs":[]},{"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\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">Si on écrit 2 = x à la place de x = 2 il y aura une erreur car on ne peut affecter x à 2. Dans l'autre cas, c'est égal de tester si x est égal à 2 (x==2) ou de tester si 2 est égal à x (2==x)\n</div>\n</details>\n "},{"metadata":{"tags":["breakpoint"]},"cell_type":"markdown","source":"#### Ctrl+enter pour continuer ..........."},{"metadata":{},"cell_type":"markdown","source":"## II) Conditions (`if`)\n\nAfin d'exécuter du code de façon sélective, on utilise le mot-clé `if`.\n\nNous allons voir que :\n\n- le mot-clé `if` permet une exécution conditionnelle,\n- le mot-clé `if-else` permet de choisir entre deux alternatives,\n- le mot-clé `elif` (else if) permet d'ajouter différentes conditions.\n\n"},{"metadata":{},"cell_type":"markdown","source":"### Exécution conditionnelle `if`\n\nLa structure `if` ci-dessous permet d'exécuter une action seulement si `condition` est `True`.\n\n``` python\nif condition:\n action\n```\n\n#### Exemple \n\nLe programme suivant demande la moyenne générale obtenue au premier semestre est affiche `Bravo, tu peux faire un extra-muros!\")` si la moyenne est supérieure ou égale à 5.3.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"n = float(input(\"Quelle est ta moyenne générale au premier semestre: \"))\n\nif n >= 5.3 :\n print(\"Bravo, tu peux faire un extra-muros!\")","execution_count":null,"outputs":[]},{"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\nEn Python, `if` est suivi\n\nA) <input type=\"checkbox\" > d'un bloc\n\nB) <input type=\"checkbox\" > d'une condition\n\nC) <input type=\"checkbox\" > de parenthèses\n\nD) <input type=\"checkbox\" > d'un deux-points\n"},{"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\"> \nRéponse\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">B) d'une condition (Et ensuite de D), un deux-points)\n</div>\n</details>\n \n"},{"metadata":{},"cell_type":"markdown","source":"### Choix binaire `if - else`\n\nLa structure `if - else` ci-dessous permet d'exécuter une **action_1** seulement si une **condition** est vraie et une **action_2** sinon : \n\n``` python\nif condition:\n action_1\nelse:\n action_2\n```\n\n#### Exemple 1\nDans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"n = int(input('Entrez un nombre: '))\n\nif n >= 0:\n print('positif')\nelse:\n print('négatif')","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\n1. Complètez le programme ci-dessous qui affiche `C'est un triangle rectancle` ou `Ce n'est pas un triangle rectancle` en fonction des longeurs des côtés du triangle rentré.\n\n2. Testez votre programme pour vérifier si le triangle où a=9, b=12 et c= 15 est un triangle rectangle.\n\n*Rappel : Selon la réciproque du théorème de Pythagore, un triangle de longeur $a$, $b$ et $c$ ($c$ le plus grand côté) est rectangle si $a^2+b^2=c^2$*"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = float(input(\"La longeur du côté a vaut : \"))\nb = float(input(\"La longeur du côté b vaut : \"))\nc = float(input(\"La longeur du côté c vaut : \"))\nif ... :\n print(\"...\")\nelse:\n print(\"...\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"Le triangle où a=9, b=12 et c= 15 est-il un triangle rectangle?\n\n Réponse : "},{"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 le programme qui demande son âge à l'utilisatrice et affiche `vous êtes majeure` si elle est mineure ou `vous êtes mineure` dans le cas contraire.\n\n*Rappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.*\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"age = int(input(\"Bonjour, quel est votre âge ?\"))\n\n","execution_count":null,"outputs":[]},{"metadata":{"tags":["breakpoint"]},"cell_type":"markdown","source":"#### Ctrl+enter pour continuer ..........."},{"metadata":{},"cell_type":"markdown","source":"### Choix multiple (`if - elif - else`)\n\nLe mot-clé `elif` est une contraction de **else if** et permet de continuer à tester d'autres conditions : \n\n``` python\nif condition1 :\n action_1\nelif condition2 :\n action_2\nelse:\n action_3\n```\n\nDans l'exemple ci-dessous, on affiche si un nombre entré est positif, négatif ou nul :\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"n = int(input('Entrez un nombre: '))\n\nif n > 0:\n print('positif')\nelif n < 0:\n print('négatif')\nelse:\n print('zéro')\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Sans le mot-clé `elif` nous devrions mettre le bloc `if` à l'intérieur du bloc `else` en indentation.\nAvec multiples conditions, les blocs se décalent de plus en plus et rendent le programme illisible, comme ci-dessous.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# !!! Exemple à éviter !!!!\nn = int(input('Entrez un nombre: '))\n\nif n > 0:\n print('positif')\nelse:\n if n < 0:\n print('négatif')\n else:\n print('zéro')\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>\nPour chacun des programme:\n\n1. Sans exécuter les programme, donnez la valeur des variables demandées. \n2. Vérifier votre réponse en ajoutant un print à la fin des programmes et en les éxecutants.\n\n**Programme A**"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme A\na = 7\nb = 12\nif a > 5:\n b = b - 4\nif b >= 8:\n b = b + 1","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"La variable b vaut : "},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme B\na = 7\nb = 12\nif a > 5:\n b = b - 4\nelif b >= 8:\n b = b + 1 ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"La variable b vaut : "},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme C\na = 7\nb = 12\nif a > 5:\n b = b - 4\nelse:\n b = b + 1","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"La variable b vaut : ","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme D**"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme D\na = 10\nif a < 5:\n a = 20\nelif a < 100:\n a = 500\nelse:\n a = 0","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"La variable a vaut : "},{"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\nLes programmes suivants sont-ils valides (on ne demande pas ce qu’ils font) ? S’ils sont invalides, corrigez les.\n\n**Programme A**"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = 10\nif a == 5:\na = 2","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = 10\nelif a == 5:\n a = 2","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = 10\nif a = 5:\n a == 2","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. Complétez le programme ci-dessous qui demande à l'utilisateur·ice les coefficients d'une équation du second degré $ax^2+bx+c=0$ et qui affiche les solutions.\n\n2. Testez votre programme sur les équations $5x^2-5x-15=0$, $5x^2-5x+15=0$ et $10x^2-20x+10=0$. "},{"metadata":{},"cell_type":"markdown","source":"!!! info utiliser des fonctions mathématiques comme la fonction racine carrée $\\sqrt{x}$.\nPour calculer la racine carrée d'un nombre $\\sqrt{x}$, il faut utiliser la fonction `sqrt` du module `math`. Pour ce faire, votre programme doit commencer par `from math import sqrt` (pour importer la fonction `sqrt` du module `math`). Pour l'utiliser, il suffit de mettre la valeur dont on veut trouver la racine en argument de la fonction `sqrt`. Par exemple, l'instruction `print(sqrt(25))` affichera 5.\n!!!\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"a = ...(input(\"Entrer le coefficient a = \"))\nb = ...(input(\"Entrer le coefficient a = \"))\nc = ...(input(\"Entrer le coefficient a = \"))\ndelta = ...\nif ... :\n x1 = ...\n x2 = ...\n print(\"Deux solutions, x1= \",x1, \"; x2 = \", x2)\nelif ... :\n x = ...\n print(\"...\")\nelse :\n print(\"...\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"raw","source":"Quel est l'ensemble des solution de 5x²-5x-15=0?\n\n Réponse: S = ...\n \n \nQuel est l'ensemble des solution de 5x²+5x+15=0=0?\n\n Réponse: S = ...\n \n \nQuel est l'ensemble des solution de 10x²-20x+10=0?\n\n Réponse: S = ...\n "},{"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\nÉcrivez un programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré de dimension 100, puis qui fait le bon dessin.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\n\n\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\nDéfinissez une fonction `temperature()` qui prend en paramètre une température entre -20 et 50 et affiche si cette température est :\n* glaciale\n* froide\n* normale\n* chaude\n* bouillante\n\n(à vous de choisir les bornes de chaque catégorie)\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"def temperature(t):\n ...\n \n \n \n \ntemp = int(input(\"Entrez une température entre -20 et 50 : \"))\ntemperature(temp)","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 10 </h3> \n\nDéfinissez une fonction `compare` qui prend en paramètres deux nombres `a` et `b`, puis qui dit lequel est le plus grand :\n- si le premier nombre est plus grand que le deuxième, le programme affichera « Le premier ! »\n- si le deuxième nombre est plus grand que le premier, le programme affichera « Le deuxième ! »\n- s'ils sont égaux, le programme affichera « Ils sont égaux. ».\n\n\nTestez-la avec deux nombres de votre choix."},{"metadata":{"trusted":true},"cell_type":"code","source":"# programme à compléter\n\n\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 11 </h3>\nCorrigez le programme suivant :"},{"metadata":{"trusted":true},"cell_type":"code","source":"age == 18\nrevenu == 25000\n\nif age >= 18\nif revenu < 25000\nprint(\"Vous êtes éligible à la subvention.\")\nelif revenu < 26000\nprint(\"Vous êtes presque éligible à la subvention, vous gagnez 1'000.- de trop.\")\nelse:\nprint(\"Vous n'êtes pas éligible à cause de vos revenus trop élevés.\")\nelse:\nif revenu < 25000\nprint(\"Vous n'êtes pas éligible à cause de votre âge, mais le seriez si vous étiez majeur·e.\")\nelse:\nprint(\"Vous n'êtes pas éligible à cause de vos revenus trop élevés et de votre âge.\")\n \n","execution_count":null,"outputs":[]}],"metadata":{"celltoolbar":"Éditer les Méta-Données","kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2}
<p> Ce fichier est fait pour être lu sur le site <ahref="https://notebook.basthon.fr/"><imgsrc='https://notebook.basthon.fr/assets/efede5218c9087496f16.png'style="border: 0; display:inline; margin: 0 5px; height:30px"alt="Basthon"/></a>. <br>
Si vous l'avez ouvert avec un autre programme, comme Jupyter notebook, vous riquez de rencontrer quelques bugs. <br>
Veuillez cliquez sur <ahref="https://notebook.basthon.fr/">ce lien</a> et y charger ce fichier à l'aide du bouton "Ouvrir" <iclass="fa fa-folder"aria-hidden="true"></i>
</p></div>
%% Cell type:markdown id: tags:
# 6 - Les Conditions, partie 1
Dans ce chapitre, nous allons voir comment un programme peut faire des choix, et comment il peut exécuter du code de façon sélective.
<p><spanstyle="font-size:1.5em">❔</span> C'est quoi une instruction conditionnelle? Exécutez la cellule ci-dessous pour voir une petite introduction sur la notion de type d'instruction conditionnelle</p>
</blockquote>
<iframewidth="560"height="315"src="https://www.youtube.com/embed/c0cm031r_eo?si=Apy9aC8a9HoHcHfv"title="YouTube video player"frameborder="0"allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"referrerpolicy="strict-origin-when-cross-origin"allowfullscreen></iframe>
%% Cell type:markdown id: tags:
## I) Comparaisons
Un programme doit parfois comparer deux valeurs.
Python connait six types de comparaisons :
- plus petit (`<`),
- plus petit ou égal (`<=`),
- égal (`==`),
- différent (`!=`),
- plus grand (`>`),
- plus grand ou égal (`>=`).
Dans des formules mathématiques nous utilisons les symboles ≤, ≥ et ≠. En Python vous devez utiliser deux symboles: `<=`, `>=` et `!=` à la place.
Le résultat d'une comparaison est une valeur **booléenne**, soit `True` (vrai) soit `False` (faux).
**Remarque** Il est impossible de comparer des données de différentes nature (par exemple une chaîne de caractère avec un nombre)
<divstyle="border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8"> Une erreur car il est impossible de comparer la chaîne de caractère "10" (type str) avec le nombre 2 (type int).
1. Remplace les `...` de chaque commentaire avec la valeur qui devrait être affichée.
*Indication: chaque print affiche un `bool` : `True` ou `False`*
%% Cell type:code id: tags:
``` python
a=5
b=18
c=12.3
mot1="Hello"
mot2="World"
# L'instruction suivante va afficher ...
print(a>b)
# L'instruction suivante va afficher ...
print(b//a==3)
# L'instruction suivante va afficher ...
print(b%a==3)
# L'instruction suivante va afficher ...
print(a-b>2)
# L'instruction suivante va afficher ...
print(type(c)==float)
# L'instruction suivante va afficher ...
print(mot1!=mot2)
# L'instruction suivante va afficher ...
print(mot1<mot2)
# L'instruction suivante va afficher ...
print(mot1>2)
# L'instruction suivante va afficher ...
print("a">"b")
```
%% Cell type:markdown id: tags:
2. Exécute le programme ci-dessus et corrige, si besoin, les commentaires afin qu'ils correspondent aux valeurs affichées
<h3style="color:teal;background-color:azure;"><iclass="fa fa-pencil"aria-hidden="true"></i> Exercice 2 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.
<divstyle="border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8">Si on écrit 2 = x à la place de x = 2 il y aura une erreur car on ne peut affecter x à 2. Dans l'autre cas, c'est égal de tester si x est égal à 2 (x==2) ou de tester si 2 est égal à x (2==x)
</div>
</details>
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
## II) Conditions (`if`)
Afin d'exécuter du code de façon sélective, on utilise le mot-clé `if`.
Nous allons voir que :
- le mot-clé `if` permet une exécution conditionnelle,
- le mot-clé `if-else` permet de choisir entre deux alternatives,
- le mot-clé `elif` (else if) permet d'ajouter différentes conditions.
%% Cell type:markdown id: tags:
### Exécution conditionnelle `if`
La structure `if` ci-dessous permet d'exécuter une action seulement si `condition` est `True`.
``` python
ifcondition:
action
```
#### Exemple
Le programme suivant demande la moyenne générale obtenue au premier semestre est affiche `Bravo, tu peux faire un extra-muros!")` si la moyenne est supérieure ou égale à 5.3.
%% Cell type:code id: tags:
``` python
n=float(input("Quelle est ta moyenne générale au premier semestre: "))
<divstyle="border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8">B) d'une condition (Et ensuite de D), un deux-points)
</div>
</details>
%% Cell type:markdown id: tags:
### Choix binaire `if - else`
La structure `if - else` ci-dessous permet d'exécuter une **action_1** seulement si une **condition** est vraie et une **action_2** sinon :
``` python
ifcondition:
action_1
else:
action_2
```
#### Exemple 1
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :
1. Complètez le programme ci-dessous qui affiche `C'est un triangle rectancle` ou `Ce n'est pas un triangle rectancle` en fonction des longeurs des côtés du triangle rentré.
2. Testez votre programme pour vérifier si le triangle où a=9, b=12 et c= 15 est un triangle rectangle.
*Rappel : Selon la réciproque du théorème de Pythagore, un triangle de longeur $a$, $b$ et $c$ ($c$ le plus grand côté) est rectangle si $a^2+b^2=c^2$*
%% Cell type:code id: tags:
``` python
a=float(input("La longeur du côté a vaut : "))
b=float(input("La longeur du côté a vaut : "))
c=float(input("La longeur du côté a vaut : "))
b=float(input("La longeur du côté b vaut : "))
c=float(input("La longeur du côté c vaut : "))
if...:
print("...")
else:
print("...")
```
%% Cell type:raw id: tags:
Le triangle où a=9, b=12 et c= 15 est-il un triangle rectangle?
Complétez le programme qui demande son âge à l'utilisatrice et affiche `vous êtes majeure` si elle est mineure ou `vous êtes mineure` dans le cas contraire.
*Rappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.*
%% Cell type:code id: tags:
``` python
age=int(input("Bonjour, quel est votre âge ?"))
```
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
### Choix multiple (`if - elif - else`)
Le mot-clé `elif` est une contraction de **else if** et permet de continuer à tester d'autres conditions :
``` python
ifcondition1:
action_1
elifcondition2:
action_2
else:
action_3
```
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif, négatif ou nul :
%% Cell type:code id: tags:
``` python
n=int(input('Entrez un nombre: '))
ifn>0:
print('positif')
elifn<0:
print('négatif')
else:
print('zéro')
```
%% Cell type:markdown id: tags:
Sans le mot-clé `elif` nous devrions mettre le bloc `if` à l'intérieur du bloc `else` en indentation.
Avec multiples conditions, les blocs se décalent de plus en plus et rendent le programme illisible, comme ci-dessous.
1. Complétez le programme ci-dessous qui demande à l'utilisateur·ice les coefficients d'une équation du second degré $ax^2+bx+c=0$ et qui affiche les solutions.
2. Testez votre programme sur les équations $5x^2-5x-15=0$, $5x^2-5x+15=0$ et $10x^2-20x+10=0$.
%% Cell type:markdown id: tags:
!!! info utiliser des fonctions mathématiques comme la fonction racine carrée $\sqrt{x}$.
Pour calculer la racine carrée d'un nombre $\sqrt{x}$, il faut utiliser la fonction `sqrt` du module `math`. Pour ce faire, votre programme doit commencer par `from math import sqrt` (pour importer la fonction `sqrt` du module `math`). Pour l'utiliser, il suffit de mettre la valeur dont on veut trouver la racine en argument de la fonction `sqrt`. Par exemple, l'instruction `print(sqrt(25))` affichera 5.
!!!
%% Cell type:code id: tags:
``` python
a=...(input("Entrer le coefficient a = "))
b=...(input("Entrer le coefficient a = "))
c=...(input("Entrer le coefficient a = "))
delta=...
if...:
x1=...
x2=...
print("Deux solutions, x1= ",x1,"; x2 = ",x2)
elif...:
x=...
print("...")
else:
print("...")
```
%% Cell type:raw id: tags:
Quel est l'ensemble des solution de 5x²-5x-15=0?
Réponse: S = ...
Quel est l'ensemble des solution de 5x²+5x+15=0=0?
Réponse: S = ...
Quel est l'ensemble des solution de 10x²-20x+10=0?
Écrivez un programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré de dimension 100, puis qui fait le bon dessin.