{ "cells": [ { "cell_type": "markdown", "id": "78c29ed0", "metadata": {}, "source": [ "# Étape 5: boucle while\n", "\n", "`While` signifie `tant que` en anglais. Cette instruction va répéter **tant que** quelque chose est vrai.\n", "\n", "1. Exécuter puis décrire le programme suivant" ] }, { "cell_type": "code", "execution_count": 2, "id": "779f540b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "i vaut 0 . C'est plus petit que 10 je continue\n", "i vaut 1 . C'est plus petit que 10 je continue\n", "i vaut 2 . C'est plus petit que 10 je continue\n", "i vaut 3 . C'est plus petit que 10 je continue\n", "i vaut 4 . C'est plus petit que 10 je continue\n", "i vaut 5 . C'est plus petit que 10 je continue\n", "i vaut 6 . C'est plus petit que 10 je continue\n", "i vaut 7 . C'est plus petit que 10 je continue\n", "i vaut 8 . C'est plus petit que 10 je continue\n", "i vaut 9 . C'est plus petit que 10 je continue\n", "i vaut 10 . C'est plus grand que 10. Je suis sorti de la boucle\n" ] } ], "source": [ "i = 0\n", "while i < 10:\n", " print(\"i vaut\", i, \". C'est plus petit que 10 je continue\")\n", " i = i + 1\n", "print(\"i vaut \", i, \". C'est plus grand que 10. Je suis sorti de la boucle\")" ] }, { "cell_type": "raw", "id": "1f129756", "metadata": {}, "source": [] }, { "cell_type": "markdown", "id": "de655c11", "metadata": {}, "source": [ "2. Proposer un variante où l'on répète jusqu'à ce que `i` depasse 20 et où `i` augmente de 2 en 2." ] }, { "cell_type": "code", "execution_count": null, "id": "832e7f8c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "66641818", "metadata": {}, "source": [ "Dès que l'on veut faire quelque chose **jusqu'à ce que**, on utilisera un boucle `while`. \n", "\n", "3. Exécuter le programme et essayer de trouver mon mot de passe." ] }, { "cell_type": "code", "execution_count": 2, "id": "53d5932c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Quel est mon mot de passe?les maths c bon\n", "Arf bien joué, tu l'as trouvé. J'ai plus qu'à le changer...\n" ] } ], "source": [ "mdp = input(\"Quel est mon mot de passe?\")\n", "while mdp != \"les maths c bon\":\n", " mdp = input(\"Raté! Tu ne trouveras jamais. Quel est mon mot de passe?\")\n", "print(\"Arf bien joué, tu l'as trouvé. J'ai plus qu'à le changer...\")" ] }, { "cell_type": "markdown", "id": "e69e925f", "metadata": {}, "source": [ "4. Écrire une programme qui pose la même question tant que la bonne réponse n'est pas trouvée (vous devez inventer la question et la réponse)." ] }, { "cell_type": "code", "execution_count": null, "id": "ae7497cb", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9748b12c", "metadata": {}, "source": [ "## 1- Jeux de devinette\n", "\n", "Dans cette section, vous programmerez un jeu où l'utilisateur va chercher deviner un nombre choisi au hasard par l'ordinateur.\n", "\n", "1. *Programmation du coeur du jeu*: coder le programme suivant\n", "\n", " L'ordinateur choisi un nombre au hasard\n", " \n", " L'utilisateur propose une réponse\n", " Si la réponse est égale au nombre choisi par l'ordinateur\n", " L'utilisateur est félicité\n", " Sinon si la réponse est supérieur\n", " On affiche que sa réponse est trop grande\n", " Sinon\n", " on affiche que sa réponse est trop petite" ] }, { "cell_type": "code", "execution_count": null, "id": "6a7a82b0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "eafa4b95", "metadata": {}, "source": [ "2. *Programmation de la boucle de jeu*: reprendre le programme précédent et faire répéter *jusqu'à ce que* l'utilisateur trouve la bonne réponse." ] }, { "cell_type": "code", "execution_count": null, "id": "1a3baf72", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f5b4b59e", "metadata": {}, "source": [ "3. Quelques propositions d'améliorations\n", "\n", " - À la fin, on le nombre de réponses données par l'utilisateur pour trouver le nombre.\n", " - Limiter le nombre de réponses que l'utilisateur peut donner." ] }, { "cell_type": "code", "execution_count": null, "id": "3f28fc8f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9ef8751b", "metadata": {}, "source": [ "## 2- Simulation aléatoire\n", "\n", "La boucle `while` peut être utile pour simuler des phénomènes aléatoires et les arreter en fonction d'une condition." ] }, { "cell_type": "markdown", "id": "0cdc9cab", "metadata": {}, "source": [ "1. Le jeu est le suivant: on part avec 10 points. À chaque tour, on peut perdre un point, gagner un point, ne rien perdre ni gagner. Le jeu s'arrête quand on a plus de points.\n", "\n", "Le programme suivra l'algorithme suivant\n", "\n", " Notre score est de 10 points\n", " Affiche le score\n", " Tant que notre score est positif\n", " Au hasard notre score gagne un point, perd un point ou rien ne se passe\n", " Affiche le score\n", " " ] }, { "cell_type": "code", "execution_count": null, "id": "771e137c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "2d61bc8a", "metadata": {}, "source": [ "2. Adapter le programme précédent pour qu'il calcule puis affiche le nombre de tours avant que notre score arrive à 0." ] }, { "cell_type": "code", "execution_count": null, "id": "3f75a4c7", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "594596d0", "metadata": {}, "source": [ "## 2- Investissement" ] }, { "cell_type": "markdown", "id": "76f59bac", "metadata": {}, "source": [ "Une banque nous propose le placement suivant: on place 100€ et chaque année ce placement augmente de 2%. On veut savoir combien d'année il faudra attendre pour que ce placement atteigne 10 000€.\n", "\n", "Programmer l'algorithme suivant pour répondre à cette question\n", "\n", " C'est l'année 0\n", " Le placement est de 100\n", " Tant que le placement est plus petit que 10000€\n", " le placement est augmenté de 2%\n", " l'année est augmentés de 1\n", " Affiche le nombre d'année" ] }, { "cell_type": "code", "execution_count": null, "id": "ff906802", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.2" } }, "nbformat": 4, "nbformat_minor": 5 }