Bertrand Benjamin
acf82c7fd4
All checks were successful
continuous-integration/drone/push Build is passing
289 lines
7.6 KiB
Plaintext
289 lines
7.6 KiB
Plaintext
{
|
|
"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
|
|
}
|