{"cells":[{"metadata":{"editable":false,"deletable":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":{"editable":false,"deletable":false},"cell_type":"markdown","source":"# 6 - Les Conditions\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"},{"metadata":{"editable":false,"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"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 1 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.\n\n"},{"metadata":{"trusted":false},"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":{"editable":false,"deletable":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<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 2 </h3>Que 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"},{"metadata":{"trusted":false},"cell_type":"code","source":"x = 2 # affectation\nx == 2 # comparaison\n","execution_count":null,"outputs":[]},{"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\nDans notre exemple nous affichons \"Bravo!\" si la valeur entrée est positive.\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"n = int(input('Entrez un nombre positif: '))\n\nif n > 0:\n print('Bravo !')","execution_count":null,"outputs":[]},{"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\nDans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :\n\n"},{"metadata":{"trusted":false},"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":"### 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":false},"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":false},"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:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \n```\nEn Python, `if` est suivi\n\nA) d'un bloc\nB) d'une condition\nC) de parenthèses\nD) d'un deux-points\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\"> \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":"## 🚦 Attention aux branchements conditionnels ! 🚦\n\nLorsqu'on utilise une structure conditionnelle avec `if`, `elif`, `else`, **le programme sort du bloc dès qu'il trouve une condition vraie et que les instructions sous la condition sont exécutée**. C'est comme un **aiguillage de train** : \n\n- Le train (le programme) avance sur la voie principale (le `if`).\n- **Si** l'aiguillage (la condition `if`) est activé (vrai), le train dévie immédiatement sur cette voie et **ne teste pas les autres aiguillages** (`elif`, `else`).\n- **Sinon**, il continue tout droit vers la prochaine condition `elif`, puis éventuellement jusqu'au `else` s'il n'a trouvé aucun aiguillage actif.\n\n### 🚩 Exemple pour bien comprendre :\n\n```python\nx = 10\n\nif x > 5:\n print(\"Condition 1 : x est plus grand que 5\")\nelif x > 3:\n print(\"Condition 2 : x est plus grand que 3\")\nelse:\n print(\"Condition 3 : aucune des conditions précédentes n'est vraie\")\n\n"},{"metadata":{},"cell_type":"markdown","source":"### ✅ Ce qui se passe :\n- `x = 10` → La première condition `x > 5` est **vraie**, donc le message de la **Condition 1** s'affiche.\n- **Les autres conditions (`elif` et `else`) ne sont pas vérifiées du tout.**\n- Ensuite, le programme **poursuit son exécution après le bloc `if - elif - else`**, en continuant avec les instructions suivantes.\n\n### ⚠️ Piège à éviter :\nNe pensez pas que le programme va **tester toutes les conditions** à l'intérieur du bloc. **Dès qu'une condition est vraie, il exécute les instructions associées puis sort du bloc conditionnel**, sans vérifier les autres conditions.\n\n### 🎯 Astuce :\nSi vous avez besoin de **tester plusieurs conditions indépendamment**, utilisez plusieurs `if` séparés au lieu de `elif` :"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = 10\nif x > 5:\n print(\"x est plus grand que 5\")\n\nif x > 3:\n print(\"x est aussi plus grand que 3\")","execution_count":1,"outputs":[{"output_type":"stream","text":"x est plus grand que 5\nx est aussi plus grand que 3\n","name":"stdout"}]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 3 </h3>Écrivez un petit programme qui demande son âge à l'utilisatrice et affiche si elle est mineure ou majeure.\n\nRappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.\n\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"age = int(input(\"Bonjour, quel est votre âge ?\"))\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 4 </h3>Écrivez un petit programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré, puis qui fait le bon dessin.\n\n"},{"metadata":{"trusted":false},"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 5 </h3> \n"},{"metadata":{},"cell_type":"markdown","source":"Dé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":false},"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 6 </h3> "},{"metadata":{},"cell_type":"markdown","source":"Dé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":false},"cell_type":"code","source":"\n\n\n","execution_count":null,"outputs":[]},{"metadata":{"tags":["breakpoint"]},"cell_type":"markdown","source":"#### Ctrl+enter pour continuer ..........."},{"metadata":{},"cell_type":"markdown","source":"## III) Les opérateurs `and`, `or` et `not`\n\nEn plus des comparateurs, les opérateurs `and`, `or` et `not` permettent de manipuler plusieurs conditions : \n* `X and Y` Les deux conditions doivent être vraies pour que l'expression soit vraie.\n* `X or Y` Une des deux conditions doit être vraies pour que l'expression soit vraie.\n* `not X` La condition X doit être fausse pour que l'expression soit vraie.\n\nTestez le code suivant : \n\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"nombre = 15\nif nombre > 10 and nombre < 20:\n print(\"Le nombre est entre 10 et 20.\")\n \n\nif nombre == 5 or nombre == 15:\n print(\"Le nombre est soit 15 soit 20.\")\n \nif not nombre > 15:\n print(\"Le nombre n'est pas supérieur à 15.\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h6 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-warning\" aria-hidden=\"true\"> </i> Note </h6>\nEn python, pour le premier cas : \n\n``` python\nif nombre > 10 and nombre < 20:\n print(\"Le nombre est entre 10 et 20.\")\n```\non peut aussi écrire :\n\n``` python\nif 10 < nombre < 20:\n print(\"Le nombre est entre 10 et 20.\")\n```"},{"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"},{"metadata":{},"cell_type":"markdown","source":"Écrire un code qui traduit chacune des situations ci-après. Chaque programme commence par créer une variable pour chaque âge.\n\n**Situation 1 :** Si Camille est plus âgée qu’Antoinette ou que Bernard et si Antoinette est plus jeune que Bernard, on affiche l’âge d’Antoinette, mais si Antoinette a le même âge ou est plus âgée que Bernard, on affiche l’âge de Bernard.\nSinon on affiche l’âge de Camille.\n\n \n"},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Situation 2:** Si Bernard et Camille ont le même âge, on affiche l’âge de la plus jeune des trois personnes."},{"metadata":{"trusted":false},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"tags":["breakpoint"]},"cell_type":"markdown","source":"#### Ctrl+enter pour continuer ..........."},{"metadata":{},"cell_type":"markdown","source":"## Exercices récapitulatifs"},{"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<b style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-warning\" aria-hidden=\"true\"> </i> Rappel : L'opérateur modulo (%) calcule le reste de la division entière. En conséquence, x % y vaut 0 quand x est divisible par y. <i class=\"fa fa-warning\" aria-hidden=\"true\"> </i> </b> \n\n\nÉcrivez un petit programme qui demande à l'utilisateur·ice un nombre et indique s'il est pair (divisible par 2) ou pas.\n"},{"metadata":{"trusted":false},"cell_type":"code","source":"","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>\nCorrigez le code suivant :"},{"metadata":{"trusted":false},"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":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 10 </h3>"},{"metadata":{},"cell_type":"markdown","source":"Écris une fonction bissextile dont l'argument est une année n, qui dit si cette année est bissextile (c'est-à-dire qu'elle comporte un 29 février).\nUne année est bissextile dans l'un des cas suivants :\n- c'est un multiple de 4 qui n'est pas un multiple de 100,\n- c'est un multiple de 400.\n\nLe programme doit afficher « Année bissextile » ou « Année non bissextile » suivant le cas. "},{"metadata":{"trusted":false},"cell_type":"code","source":"","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 - Quizz </h3>\n\nCréez un quiz avec des questions à choix multiple sur un sujet de culture générale, dans le style des quiz sur le site Kahoot.\n\n- Complétez pour avoir 4 questions\n- Ajoutez le calcul du score"},{"metadata":{"trusted":false},"cell_type":"code","source":"print('Quiz sur le thème : ....')\n\nscore = 0\n\n# Question 1 \nprint()\nquestion = \"Quel est le nom du cowboy dans Toy Story ?\"\nsolution = 'Woody'\n\nreponse = input(question)\nif reponse == solution:\n ...\nelse:\n ...\n \n \n\n# Question 2\nprint()\n...\n\n\nprint('Votre score est', ...)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"---\n\n#### Remarque générale\n\nCe document est une adaptation d'un ressource pédagogique tiré du catalogue modulo https://modulo-info.ch/. Il est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n\n\n "}],"metadata":{"celltoolbar":"Tags","kernelspec":{"display_name":"Python 3 (ipykernel)","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2}
"cells": [
\ No newline at end of file
{
"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 \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": "# 6 - Les Conditions\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"
},
{
"cell_type": "markdown",
"metadata": {},
"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` soit `False`.\n\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>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"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": {},
"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<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 2 </h3>Que 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"
"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\nDans notre exemple nous affichons \"Bravo!\" si la valeur entrée est positive.\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": "n = int(input('Entrez un nombre positif: '))\n\nif n > 0:\n print('Bravo !')"
},
{
"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\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": false
},
"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": "### 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": false
},
"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": false
},
"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:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Quizz </h3> \n \n```\nEn Python, `if` est suivi\n\nA) d'un bloc\nB) d'une condition\nC) de parenthèses\nD) d'un deux-points\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\"> \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": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 3 </h3>Écrivez un petit programme qui demande son âge à l'utilisatrice et affiche si elle est mineure ou majeure.\n\nRappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.\n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": "age = int(input(\"Bonjour, quel est votre âge ?\"))\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>Écrivez un petit programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré, puis qui fait le bon dessin.\n\n"
"source": "Dé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": false
},
"outputs": [],
"source": "def temperature(t):\n ...\n \n \n \n \ntemp = int(input(\"Entrez une température entre -20 et 50 : \"))\ntemperature(temp)"
"source": "Dé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."
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": "\n\n\n"
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"breakpoint"
]
},
"source": "#### Ctrl+enter pour continuer ..........."
},
{
"cell_type": "markdown",
"metadata": {},
"source": "## III) Les opérateurs `and`, `or` et `not`\n\nEn plus des comparateurs, les opérateurs `and`, `or` et `not` permettent de manipuler plusieurs conditions : \n* `X and Y` Les deux conditions doivent être vraies pour que l'expression soit vraie.\n* `X or Y` Une des deux conditions doit être vraies pour que l'expression soit vraie.\n* `not X` La condition X doit être fausse pour que l'expression soit vraie.\n\nTestez le code suivant : \n\n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": "nombre = 15\nif nombre > 10 and nombre < 20:\n print(\"Le nombre est entre 10 et 20.\")\n \n\nif nombre == 5 or nombre == 15:\n print(\"Le nombre est soit 15 soit 20.\")\n \nif not nombre > 15:\n print(\"Le nombre n'est pas supérieur à 15.\")"
},
{
"cell_type": "markdown",
"metadata": {},
"source": "<h6 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-warning\" aria-hidden=\"true\"> </i> Note </h6>\nEn python, pour le premier cas : \n\n``` python\nif nombre > 10 and nombre < 20:\n print(\"Le nombre est entre 10 et 20.\")\n```\non peut aussi écrire :\n\n``` python\nif 10 < nombre < 20:\n print(\"Le nombre est entre 10 et 20.\")\n```"
"source": "Écrire un code qui traduit chacune des situations ci-après. Chaque programme commence par créer une variable pour chaque âge.\n\n**Situation 1 :** Si Camille est plus âgée qu’Antoinette ou que Bernard et si Antoinette est plus jeune que Bernard, on affiche l’âge d’Antoinette, mais si Antoinette a le même âge ou est plus âgée que Bernard, on affiche l’âge de Bernard.\nSinon on affiche l’âge de Camille.\n\n \n"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": ""
},
{
"cell_type": "markdown",
"metadata": {},
"source": "**Situation 2:** Si Bernard et Camille ont le même âge, on affiche l’âge de la plus jeune des trois personnes."
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": ""
},
{
"cell_type": "markdown",
"metadata": {
"tags": [
"breakpoint"
]
},
"source": "#### Ctrl+enter pour continuer ..........."
},
{
"cell_type": "markdown",
"metadata": {},
"source": "## Exercices récapitulatifs"
},
{
"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<b style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-warning\" aria-hidden=\"true\"> </i> Rappel : L'opérateur modulo (%) calcule le reste de la division entière. En conséquence, x % y vaut 0 quand x est divisible par y. <i class=\"fa fa-warning\" aria-hidden=\"true\"> </i> </b> \n\n\nÉcrivez un petit programme qui demande à l'utilisateur·ice un nombre et indique s'il est pair (divisible par 2) ou pas.\n"
"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"
"source": "Écris une fonction bissextile dont l'argument est une année n, qui dit si cette année est bissextile (c'est-à-dire qu'elle comporte un 29 février).\nUne année est bissextile dans l'un des cas suivants :\n- c'est un multiple de 4 qui n'est pas un multiple de 100,\n- c'est un multiple de 400.\n\nLe programme doit afficher « Année bissextile » ou « Année non bissextile » suivant le cas. "
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": ""
},
{
"cell_type": "markdown",
"metadata": {},
"source": "<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 11 - Quizz </h3>\n\nCréez un quiz avec des questions à choix multiple sur un sujet de culture générale, dans le style des quiz sur le site Kahoot.\n\n- Complétez pour avoir 4 questions\n- Ajoutez le calcul du score"
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"trusted": false
},
"outputs": [],
"source": "print('Quiz sur le thème : ....')\n\nscore = 0\n\n# Question 1 \nprint()\nquestion = \"Quel est le nom du cowboy dans Toy Story ?\"\nsolution = 'Woody'\n\nreponse = input(question)\nif reponse == solution:\n ...\nelse:\n ...\n \n \n\n# Question 2\nprint()\n...\n\n\nprint('Votre score est', ...)"
},
{
"cell_type": "markdown",
"metadata": {},
"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\n\n "
<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>
<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>
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>
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>
</p></div>
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# 6 - Les Conditions
# 6 - Les Conditions
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.
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.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## I) Comparaisons
## I) Comparaisons
Un programme doit parfois comparer deux valeurs.
Un programme doit parfois comparer deux valeurs.
Python connait six types de comparaisons :
Python connait six types de comparaisons :
- plus petit (`<`),
- plus petit (`<`),
- plus petit ou égal (`<=`),
- plus petit ou égal (`<=`),
- égal (`==`),
- égal (`==`),
- différent (`!=`),
- différent (`!=`),
- plus grand (`>`),
- plus grand (`>`),
- plus grand ou égal (`>=`).
- plus grand ou égal (`>=`).
Dans des formules mathématiques nous utilisons les symboles ≤, ≥ et ≠. En Python vous devez utiliser deux symboles: `<=`, `>=` et `!=` à la place.
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` soit `False`.
Le résultat d'une comparaison est une valeur **booléenne**, soit `True`(vrai) soit `False` (faux).
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
<h3style="color:teal;background-color:azure;"><iclass="fa fa-pencil"aria-hidden="true"></i> Exercice 1 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.
<h3style="color:teal;background-color:azure;"><iclass="fa fa-pencil"aria-hidden="true"></i> Exercice 1 </h3>Testez les lignes ci-dessous et ajoutez des exemples avec les autres 5 comparateurs.
Il ne faut pas confondre l'opérateur d'affectation (`x = 2`) avec l'opérateur de comparaison (`x == 2`)
Il ne faut pas confondre l'opérateur d'affectation (`x = 2`) avec l'opérateur de comparaison (`x == 2`)
!!!
!!!
<h3style="color:teal;background-color:azure;"><iclass="fa fa-pencil"aria-hidden="true"></i> Exercice 2 </h3>Que se passe-t-il si vous échangez les deux éléments dans `x == 2` ?
<h3style="color:teal;background-color:azure;"><iclass="fa fa-pencil"aria-hidden="true"></i> Exercice 2 </h3>Que se passe-t-il si vous échangez les deux éléments dans `x == 2` ?
Et si vous échangez les deux éléments dans `x = 2` ?
Et si vous échangez les deux éléments dans `x = 2` ?
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
x=2# affectation
x=2# affectation
x==2# comparaison
x==2# comparaison
```
```
%% Cell type:markdown id: tags:breakpoint
%% Cell type:markdown id: tags:breakpoint
#### Ctrl+enter pour continuer ...........
#### Ctrl+enter pour continuer ...........
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## II) Conditions (`if`)
## II) Conditions (`if`)
Afin d'exécuter du code de façon sélective, on utilise le mot-clé `if`.
Afin d'exécuter du code de façon sélective, on utilise le mot-clé `if`.
Nous allons voir que :
Nous allons voir que :
- le mot-clé `if` permet une exécution conditionnelle,
- le mot-clé `if` permet une exécution conditionnelle,
- le mot-clé `if-else` permet de choisir entre deux alternatives,
- le mot-clé `if-else` permet de choisir entre deux alternatives,
- le mot-clé `elif` (else if) permet d'ajouter différentes conditions.
- le mot-clé `elif` (else if) permet d'ajouter différentes conditions.
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Exécution conditionnelle `if`
### Exécution conditionnelle `if`
La structure `if` ci-dessous permet d'exécuter une action seulement si `condition` est `True`.
La structure `if` ci-dessous permet d'exécuter une action seulement si `condition` est `True`.
``` python
``` python
ifcondition:
ifcondition:
action
action
```
```
Dans notre exemple nous affichons "Bravo!" si la valeur entrée est positive.
Dans notre exemple nous affichons "Bravo!" si la valeur entrée est positive.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
n=int(input('Entrez un nombre positif: '))
n=int(input('Entrez un nombre positif: '))
ifn>0:
ifn>0:
print('Bravo !')
print('Bravo !')
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Choix binaire `if - else`
### 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 :
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
``` python
ifcondition:
ifcondition:
action_1
action_1
else:
else:
action_2
action_2
```
```
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif ou négatif :
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
n=int(input('Entrez un nombre: '))
n=int(input('Entrez un nombre: '))
ifn>0:
ifn>0:
print('positif')
print('positif')
else:
else:
print('négatif')
print('négatif')
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
### Choix multiple (`if - elif - else`)
### Choix multiple (`if - elif - else`)
Le mot-clé `elif` est une contraction de **else if** et permet de continuer à tester d'autres conditions :
Le mot-clé `elif` est une contraction de **else if** et permet de continuer à tester d'autres conditions :
``` python
``` python
ifcondition1:
ifcondition1:
action_1
action_1
elifcondition2:
elifcondition2:
action_2
action_2
else:
else:
action_3
action_3
```
```
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif, négatif ou nul :
Dans l'exemple ci-dessous, on affiche si un nombre entré est positif, négatif ou nul :
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
n=int(input('Entrez un nombre: '))
n=int(input('Entrez un nombre: '))
ifn>0:
ifn>0:
print('positif')
print('positif')
elifn<0:
elifn<0:
print('négatif')
print('négatif')
else:
else:
print('zéro')
print('zéro')
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
Sans le mot-clé `elif` nous devrions mettre le bloc `if` à l'intérieur du bloc `else` en indentation.
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.
Avec multiples conditions, les blocs se décalent de plus en plus et rendent le programme illisible, comme ci-dessous.
<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)
<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>
</div>
</details>
</details>
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
## 🚦 Attention aux branchements conditionnels ! 🚦
Lorsqu'on utilise une structure conditionnelle avec `if`, `elif`, `else`, **le programme sort du bloc dès qu'il trouve une condition vraie et que les instructions sous la condition sont exécutée**. C'est comme un **aiguillage de train** :
- Le train (le programme) avance sur la voie principale (le `if`).
-**Si** l'aiguillage (la condition `if`) est activé (vrai), le train dévie immédiatement sur cette voie et **ne teste pas les autres aiguillages** (`elif`, `else`).
-**Sinon**, il continue tout droit vers la prochaine condition `elif`, puis éventuellement jusqu'au `else` s'il n'a trouvé aucun aiguillage actif.
### 🚩 Exemple pour bien comprendre :
```python
x=10
ifx>5:
print("Condition 1 : x est plus grand que 5")
elifx>3:
print("Condition 2 : x est plus grand que 3")
else:
print("Condition 3 : aucune des conditions précédentes n'est vraie")
- **Les autres conditions (`elif` et `else`) ne sont pas vérifiées du tout.**
- Ensuite, le programme **poursuit son exécution après le bloc `if - elif - else`**, en continuant avec les instructions suivantes.
### ⚠️ Piège à éviter :
Ne pensez pas que le programme va **tester toutes les conditions** à l'intérieurdubloc.**Dèsqu'une condition est vraie, il exécute les instructions associées puis sort du bloc conditionnel**, sans vérifier les autres conditions.
### 🎯 Astuce :
Si vous avez besoin de **tester plusieurs conditions indépendamment**, utilisez plusieurs `if` séparés au lieu de `elif` :
%% Cell type:code id: tags:
``` python
x = 10
if x > 5:
print("x est plus grand que 5")
if x > 3:
print("x est aussi plus grand que 3")
```
%% Output
x est plus grand que 5
x est aussi plus grand que 3
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> Exercice 3 </h3>Écrivez un petit programme qui demande son âge à l'utilisatrice et affiche si elle est mineure ou majeure.
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> Exercice 3 </h3>Écrivez un petit programme qui demande son âge à l'utilisatrice et affiche si elle est mineure ou majeure.
Rappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.
Rappel : la fonction `int` transforme la réponse textuelle du `input` en nombre entier.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
age = int(input("Bonjour, quel est votre âge ?"))
age = int(input("Bonjour, quel est votre âge ?"))
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> Exercice 4 </h3>Écrivez un petit programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré, puis qui fait le bon dessin.
<h3 style="color:teal;background-color:azure;" > <i class="fa fa-pencil" aria-hidden="true"> </i> Exercice 4 </h3>Écrivez un petit programme qui demande à l'utilisateur·ice s'il faut dessiner un triangle, un cercle ou un carré, puis qui fait le bon dessin.
Écrire un code qui traduit chacune des situations ci-après. Chaque programme commence par créer une variable pour chaque âge.
Écrire un code qui traduit chacune des situations ci-après. Chaque programme commence par créer une variable pour chaque âge.
**Situation 1 :** Si Camille est plus âgée qu’Antoinette ou que Bernard et si Antoinette est plus jeune que Bernard, on affiche l’âge d’Antoinette, mais si Antoinette a le même âge ou est plus âgée que Bernard, on affiche l’âge de Bernard.
**Situation 1 :** Si Camille est plus âgée qu’Antoinette ou que Bernard et si Antoinette est plus jeune que Bernard, on affiche l’âge d’Antoinette, mais si Antoinette a le même âge ou est plus âgée que Bernard, on affiche l’âge de Bernard.
Sinon on affiche l’âge de Camille.
Sinon on affiche l’âge de Camille.
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
**Situation 2:** Si Bernard et Camille ont le même âge, on affiche l’âge de la plus jeune des trois personnes.
**Situation 2:** Si Bernard et Camille ont le même âge, on affiche l’âge de la plus jeune des trois personnes.
<b style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-warning" aria-hidden="true"> </i> Rappel : L'opérateur modulo (%) calcule le reste de la division entière. En conséquence, x % y vaut 0 quand x est divisible par y. <i class="fa fa-warning" aria-hidden="true"> </i> </b>
<b style="color:chocolate;background-color:papayawhip;" > <i class="fa fa-warning" aria-hidden="true"> </i> Rappel : L'opérateur modulo (%) calcule le reste de la division entière. En conséquence, x % y vaut 0 quand x est divisible par y. <i class="fa fa-warning" aria-hidden="true"> </i> </b>
Écrivez un petit programme qui demande à l'utilisateur·ice un nombre et indique s'il est pair (divisible par 2) ou pas.
Écrivez un petit programme qui demande à l'utilisateur·ice un nombre et indique s'il est pair (divisible par 2) ou pas.
Créez un quiz avec des questions à choix multiple sur un sujet de culture générale, dans le style des quiz sur le site Kahoot.
Créez un quiz avec des questions à choix multiple sur un sujet de culture générale, dans le style des quiz sur le site Kahoot.
- Complétez pour avoir 4 questions
- Complétez pour avoir 4 questions
- Ajoutez le calcul du score
- Ajoutez le calcul du score
%% Cell type:code id: tags:
%% Cell type:code id: tags:
``` python
``` python
print('Quiz sur le thème : ....')
print('Quiz sur le thème : ....')
score = 0
score = 0
# Question 1
# Question 1
print()
print()
question = "Quel est le nom du cowboy dans Toy Story ?"
question = "Quel est le nom du cowboy dans Toy Story ?"
solution = 'Woody'
solution = 'Woody'
reponse = input(question)
reponse = input(question)
if reponse == solution:
if reponse == solution:
...
...
else:
else:
...
...
# Question 2
# Question 2
print()
print()
...
...
print('Votre score est', ...)
print('Votre score est', ...)
```
```
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
---
---
#### Remarque générale
#### Remarque générale
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)
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)