diff --git a/Serie 1 sol.ipynb b/Serie 1 sol.ipynb index 2269d29..5aa3f09 100644 --- a/Serie 1 sol.ipynb +++ b/Serie 1 sol.ipynb @@ -1,747 +1,755 @@ { "cells": [ { "cell_type": "markdown", "id": "404e365c", "metadata": { "user_expressions": [] }, "source": [ "# Exercice 1 : la fonction print()\n", "\n", "### Affichage, caractères d'échappement\n", "\n", "**a)** Ecrivez, à l'aide de la fonction print(), un code qui produit l'affichage ci-dessous (les espaces au début de la deuxième et troisième ligne correspondent à un et deux tabs respectivement):

\n", "\n", "\n", "Comme j'étais parti\n", "\n", "      Le petit prince a dit:\n", " \n", "          \"puisque c'est ainsi, nous reviendrons mardi\"\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "5a16ca23", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Comme j'étais parti\n", "\tLe petit prince a dit:\n", "\t\t\"puisque c'est ainsi, nous reviendrons mardi\"\n" ] } ], "source": [ "print(\"Comme j'étais parti\")\n", "print(\"\\tLe petit prince a dit:\")\n", "print(\"\\t\\t\\\"puisque c'est ainsi, nous reviendrons mardi\\\"\")" ] }, { "attachments": { "Screenshot%202023-09-14%20at%2013.31.42.png": { "image/png": "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" } }, "cell_type": "markdown", "id": "a2628211", "metadata": { "user_expressions": [] }, "source": [ "**b)** Même question pour le \"shrug emoji\" ci-dessous:

\n", "\n", "![Screenshot%202023-09-14%20at%2013.31.42.png](attachment:Screenshot%202023-09-14%20at%2013.31.42.png)\n", "\n", "(vous pouvez copier-coller les caractères qu'il vous faut: ¯ ツ )" ] }, { "cell_type": "code", "execution_count": 2, "id": "3993289a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "¯\\_(ツ)_/¯\n" ] } ], "source": [ "print(\"¯\\\\_(ツ)_/¯\")" ] }, { "cell_type": "markdown", "id": "6f551114", "metadata": { "user_expressions": [] }, "source": [ "**c)** Même question pour les quatre lignes ci-dessous, en n'utilisant **qu'un seul print**:



\n", "\n", "Si votre phrase est entourée par des doubles quotes \", elle peut contenir des simples quotes: ' .\n", "\n", "Par contre, pour afficher une double quote, il faudra la précéder d'un backslash: \\\\\" .\n", "\n", "De même, si la phrase est entourée par de simple quotes, elle peut contenir des double quotes, \n", "\n", "mais pour afficher une simple quote il faudra la précéder d'un backslash: \\\\' . " ] }, { "cell_type": "code", "execution_count": 3, "id": "2017ab49", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Si votre phrase est entourée par des doubles quotes \", elle peut contenir des simples quotes: ' .\n", "Par contre, pour afficher une double quote, il faudra la précéder d'un backslash: \\\" .\n", "De même, si la phrase est entourée par de simple quotes, elle peut contenir des double quotes,\n", "mais pour afficher une simple quote il faudra la précéder d'un backslash: \\' .\n" ] } ], "source": [ "print(\"Si votre phrase est entourée par des doubles quotes \\\", \\\n", "elle peut contenir des simples quotes: ' .\\n\\\n", "Par contre, pour afficher une double quote, \\\n", "il faudra la précéder d'un backslash: \\\\\\\" .\\n\\\n", "De même, si la phrase est entourée par de simple quotes, \\\n", "elle peut contenir des double quotes,\\n\\\n", "mais pour afficher une simple quote il faudra la précéder d'un backslash: \\\\' .\") " ] }, { "cell_type": "markdown", "id": "e02e87a0", "metadata": {}, "source": [ "### Paramètres end et sep\n", "\n", "Par défaut, la fonction print() termine l'affichage par un retour de ligne, et, si elle prend plusieurs arguments, sépare ces arguments par des espaces. On peut modifier ces paramètres par défaut en ajoutant à l'appel de print() les arguments end=... et sep=..." ] }, { "cell_type": "code", "execution_count": null, "id": "3e24c888", "metadata": { "tags": [] }, "outputs": [], "source": [ "print(\"Comment\", end = \" \")\n", "print(\"ça\", end = \" \")\n", "print(\"va\", end = \" \")" ] }, { "cell_type": "code", "execution_count": null, "id": "e92e41c8", "metadata": { "tags": [] }, "outputs": [], "source": [ "print(\"a\", \"b\", \"c\", \"d\", sep = \"-\")\n", "print(\"a\", \"b\", \"c\", \"d\", sep = \"-\", end = \"-e\")\n", "print(\"-f\")" ] }, { "cell_type": "markdown", "id": "a5e3ea36", "metadata": {}, "source": [ "**d)** Utilisez des instructions print() qui peuvent prendre en entrée uniquement les strings \"a\", \"b\", \"c\" et \"d\", en déterminant les valeurs appropriées des paramètres end et sep pour afficher les lignes suivantes:\n", "\n", "a!b?c?d!\n", "\n", "ab!c!d?\n", "\n", "a??b?c!\n", "\n", "abcde" ] }, { "cell_type": "code", "execution_count": 5, "id": "56fa5cdc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "a!b?c?d!\n", "ab!c!d?\n", "a??b?c!\n", "abcde" ] } ], "source": [ "print(\"a\", \"b\", sep = \"!\", end = \"?\")\n", "print(\"c\", \"d\", sep = \"?\", end = \"!\")\n", "print()\n", "print(\"a\", \"b\", sep = \"\", end = \"!\")\n", "print(\"c\", \"d\", sep = \"!\", end = \"?\")\n", "print()\n", "print(\"a\", end = \"?\")\n", "print(end = \"?\")\n", "print(\"b\", \"c\", sep = \"?\", end = \"!\")\n", "print()\n", "print(\"a\", \"b\", \"c\", \"d\", sep = \"\", end = \"e\")" ] }, { "cell_type": "markdown", "id": "807d5cec", "metadata": {}, "source": [ "# Exercice 2 : variables, affectations\n", "\n", "Qu'affiche chacun des programmes ci-dessous?\n", "\n", "**NB:** dans ce cours, vous aurez souvent des exercices de ce type. Lorsqu'on vous demande ce qu'un programme affiche, il ne faut surtout pas exécuter le programme tout de suite. Essayez de prédire exactement la sortie du programme. Si ce que vous voyez à l'exécution diffère de ce que vous avez prédit, essayez de comprendre exactement pourquoi. N'hésitez pas à modifier le programme de diverses manières pour voir comment change son fonctionnement. N'hésitez pas non plus à générer des erreurs, exprès ou pas, c'est une excellente manière d'apprendre." ] }, { "cell_type": "code", "execution_count": null, "id": "d9123760", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = 1\n", "y = x\n", "x += 1\n", "print(f\"{x = }, {y = }\")" ] }, { "cell_type": "code", "execution_count": null, "id": "294ddc72", "metadata": { "tags": [] }, "outputs": [], "source": [ "a = \"ha\"\n", "b = a * 2\n", "print(a, b)" ] }, { "cell_type": "code", "execution_count": null, "id": "60eb80f1", "metadata": { "tags": [] }, "outputs": [], "source": [ "a = \"123\"\n", "b = a\n", "a *= 2\n", "print(a, b)" ] }, { "cell_type": "code", "execution_count": null, "id": "309f8c4c", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = \"abc\"\n", "x += str(1)\n", "x *= 2\n", "print(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "17ef6c66", "metadata": {}, "outputs": [], "source": [ "x = 5\n", "x += 3\n", "x /= 2\n", "x -= 10\n", "x *= 4\n", "print(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "a22e8f7a", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = 5\n", "x = x // 3\n", "print(x)\n", "print(\"*************\")\n", "x = 5\n", "x //= 3\n", "print(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "39050e6a", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = 5\n", "x = x % 3\n", "print(x)\n", "print(\"*************\")\n", "x = 5\n", "x %= 3\n", "print(x)" ] }, { "cell_type": "code", "execution_count": null, "id": "3b11dcaa", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = \"a\"\n", "y = \"b\"\n", "z = x + y\n", "print(z * 3, x * 3, y * 3)\n", "print(z * 3 + x * 3 + y * 3)" ] }, { "cell_type": "code", "execution_count": null, "id": "304555ad-b1ce-42f1-8d36-c523a1f8f783", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = \"Courage\"\n", "y = \"Pour vos\"\n", "z = \"Belles études !\"\n", "print(z[0],y[3],x[4],y[5],x[1],z[-1],sep='')" ] }, { "cell_type": "markdown", "id": "ae6f2456", "metadata": {}, "source": [ "### Affectation multiple\n", "\n", "\n", "On peut affecter deux valeurs à deux variables en même temps, ou n valeurs à n variables en général:" ] }, { "cell_type": "code", "execution_count": null, "id": "fcfa0e83", "metadata": {}, "outputs": [], "source": [ "x, y = 1, 2\n", "print(f\"{x = }, {y = }\")\n", "x, y, z = \"a\", \"b\", \"c\"\n", "print(f\"{x = }, {y = }, {z = }\")" ] }, { "cell_type": "markdown", "id": "e7416d15", "metadata": {}, "source": [ "Attention, le nombre de variables à gauche doit être égal au nombre d'expressions à droite. Ecrivez et exécutez une ligne de code qui affecte trois valeurs à deux variables et observez ce qui se produit." ] }, { "cell_type": "code", "execution_count": 6, "id": "82ef776b", "metadata": {}, "outputs": [ { "ename": "ValueError", "evalue": "too many values to unpack (expected 2)", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", "Cell \u001b[0;32mIn[6], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m x, y \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m, \u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m3\u001b[39m\n", "\u001b[0;31mValueError\u001b[0m: too many values to unpack (expected 2)" ] } ], "source": [ "x, y = 1, 2, 3" ] }, { "cell_type": "markdown", "id": "6d407ea9", "metadata": {}, "source": [ "Comme dans n'importe quelle affectation de variables, les expressions dans une affectation mutiple peuvent faire intervenir des variables à leur tour." ] }, { "cell_type": "code", "execution_count": null, "id": "8a64329a", "metadata": { "tags": [] }, "outputs": [], "source": [ "x = 3\n", "y, z = x + 1, \"aaa\"\n", "print(y, z)" ] }, { "cell_type": "markdown", "id": "22ac7c02", "metadata": {}, "source": [ "Une affectation multiple se fait **simultanément**. Dans le programme ci-dessous, y prend \"l'ancienne\" valeur de x même si x a été réaffectée dans l'affectation multiple." ] }, { "cell_type": "code", "execution_count": null, "id": "f60f61c3", "metadata": {}, "outputs": [], "source": [ "x = 7\n", "x, y = 9, x\n", "print(x, y)" ] }, { "cell_type": "markdown", "id": "bf21b5a5", "metadata": {}, "source": [ "Qu'affichent les programmes ci-dessous?" ] }, { "cell_type": "code", "execution_count": null, "id": "96283d5f", "metadata": {}, "outputs": [], "source": [ "x, y = 2, 3\n", "print(x ** y)\n", "print(y ** x)" ] }, { "cell_type": "code", "execution_count": null, "id": "01482970", "metadata": {}, "outputs": [], "source": [ "x = 3\n", "a, b, c = x * 2, str(x) * 2, \"x\"\n", "print(a, b, c)" ] }, { "cell_type": "code", "execution_count": null, "id": "9ea1bf56", "metadata": {}, "outputs": [], "source": [ "x, y = 3, 4\n", "y, x = x ** x, y * y\n", "print(x, y)" ] }, { "cell_type": "markdown", "id": "2269f3cd", "metadata": {}, "source": [ "# Exercice 3 \n", "\n", "### Rappel: division euclidienne\n", "\n", "Pour des entiers $n\\geq 0$ et $d > 0$, il existe d'uniques entiers naturels $q$ et $r$, avec $0 \\leq r < d$, tels que\n", "\n", "$$n = q \\cdot d + r.$$\n", "\n", "$q$ est le quotient et $r$ le reste de la division euclidienne de $n$ par $d$.\n", "\n", "Par exemple,\n", "- comme $13 = 3 \\times 4 + 1$, le quotient et le reste de la division euclidienne de $13$ par $3$ sont respectivement $4$ et $1$...\n", "- ... et le quotient et le reste de la division euclidienne de $13$ par $4$ sont respectivement $3$ et $1$.\n", "- comme $29 = 2 \\times 10 + 9$, le quotient et le reste de la division euclidienne de $29$ par $10$ sont respectivement $2$ et $9$. \n", "- par contre l'égalité ci-dessus n'implique pas que le quotient et le reste de la division euclidienne de $29$ par $2$ sont respectivement $10$ et $9$! N'oubliez pas que le reste de la division entière doit être strictement inférieur au diviseur. Quels sont le quotient et le reste de la division entière de $29$ par $2$?\n", "\n", "En Python, l'opérateur // donne le quotient de la division entière, et % le reste de la division entière:" ] }, { "cell_type": "code", "execution_count": null, "id": "1749aedc", "metadata": {}, "outputs": [], "source": [ "print(\"le quotient de la division entière de 13 par 4 est\", 13 // 4, \"et le reste est\", 13 % 4)\n", "print(\"le quotient de la division entière de 13 par 3 est\", 13 // 3, \"et le reste est\", 13 % 3)\n", "print(\"le quotient de la division entière de 29 par 10 est\", 29 // 10, \"et le reste est\", 29 % 10)\n", "print(\"le quotient de la division entière de 29 par 2 est\", 29 // 2, \"et le reste est\", 29 % 2)" ] }, { "cell_type": "markdown", "id": "24824ac3", "metadata": {}, "source": [ "A savoir que les opérateurs // et % sont définis également pour des entiers négatifs ou même des float, mais ces cas présentent moins d'intérêt mathématique.\n", "



\n", "\n", "\n", "**a)** Pour les paires (n, d) suivantes, calculez le quotient q et le reste r de la division euclidienne de n par d. Vérifiez vos résultats à l'aide des opérateurs Python // et % .\n", "- n = 129, d = 41\n", "- n = 33, d = 7\n", "- n = 7, d = 33\n", "- n = 13, d = 13\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "f69a90f3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3 6\n", "4 5\n", "0 7\n", "1 0\n" ] } ], "source": [ "print(129 // 41, 129 % 41)\n", "print(33 // 7, 33 % 7)\n", "print(7 // 33, 7 % 33)\n", "print(13 // 13, 13 % 13)" ] }, { "cell_type": "markdown", "id": "d99c3213", "metadata": {}, "source": [ "**b)** Ecrivez un programme qui demande à l'utilisateur deux nombres entiers n et d et affiche l'équation\n", "n = d * q + r, où q et r sont le quotient et le reste de la division de n par d.\n", "\n", "Par exemple, si l'utilisateur entre 11 pour n et 4 pour d, vous devez afficher:\n", "\n", "11 = 4 * 2 + 3.\n", "\n", "Utilisez une f-string pour l'affichage." ] }, { "cell_type": "code", "execution_count": 8, "id": "5477a9af", "metadata": {}, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ "Entrez l'entier n (positif ou nul): 32\n", "Entrez l'entier d (strictement positif): 2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "32 = 2 * 16 + 0.\n" ] } ], "source": [ "n = int(input(\"Entrez l'entier n (positif ou nul): \"))\n", "d = int(input(\"Entrez l'entier d (strictement positif): \"))\n", "print(f\"{n} = {d} * {n // d} + {n % d}.\")" ] }, { "cell_type": "markdown", "id": "cf6b77ef", "metadata": { "user_expressions": [] }, "source": [ "# Exercice 4\n", "\n", "Ecrivez un programme qui demande à l'utilisateur une valeur positive réelle $r$ et calcule et affiche le périmètre et l'aire du cercle de rayon $r$.\n", "\n", "Utilisez un f-string pour l'affichage." ] }, { "cell_type": "code", "execution_count": 9, "id": "4277dbe0", "metadata": {}, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ "Entrez un rayon r: 2\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Le périmètre du cercle de rayon 2.0 vaut 12.56 et son aire vaut 12.56.\n" ] } ], "source": [ "pi = 3.14 \n", "r = float(input(\"Entrez un rayon r: \"))\n", "perimetre = 2 * pi * r\n", "aire = pi * r ** 2\n", "print(f\"Le périmètre du cercle de rayon {r} vaut {perimetre} \\\n", "et son aire vaut {aire}.\")" ] }, { "attachments": { "2cc150cf-265d-4387-9b76-3c82069368ec.png": { "image/png": "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" }, "628ddd5f-f9a0-47b7-86af-0851a993ec98.png": { "image/png": "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QV7WRjP6c3P4k9XDFV/uaroXSAYD2o1SSlz5KevUtfFP3n7a++qXSbqsC6w7mT/MK43tbD1YJlnXo37zn+kdkVb0p6pioPOV9LCHh092xK1wOt+3drOirx2/6tve2OyvnZWfcVSFvL60a90HdvEiNExV7r3FRbeC5ur8HhHn5HtWG+o4/O2ksdC+R3SeB9wyUhoPj0xvjJsn7XXeg+DLH/S6jqmy1X5pSbBsDQ5x0vd7uyEghpzXQDrLlPiB9U5Z6WjqF/o4dBnn13XSnybwYuKMenJKpi6kJql7uGV9+L48uPhUL0/GKdP9+4T7IgBp4JJ5GfolLzBy1tt58u2cuQ8Eyh3n86RM0vva9T0iSTp2eR9IoE8ezDF/E10+qajKjTthIUl0HUlFRFcUemxY5NUnFQDnxp4ocBbS8KQqbr8uu40tHXxGBHkD0trN7j7jqybpIpVU3isoqUuoX0hZ/4Mq639XZf2ZBExdkrerrd2sqXLHavzpYezJISKir4MeShN84cBJjr+YooXWFjAyyODk8jjDbPi7dEQUh0EOERH1Nncoo/7hwdO14vbfW9DDsTLecNccdpf8oWV0sZzfAHGGIrIXjIjicLgaERERERH1FPbkEBERERFRT2GQQ0REREREPYVBDhERERER9RQGOURERERE1FMY5BARERERUU9hkENERERERD2FQQ4REREREfUUBjlERERERNRTGOQQEREREVFPYZBDREREREQ9hUEOERERERH1FAY5RERERETUUxjkEBERERFRT2GQQ0REREREPYVBDhERERER9RQGOURERERE1FMY5BARERERUU9hkENERERERD2FQQ4REREREfUUBjlERERERNRTGORQIo3lFMo7ZiYkbh1dLYdvHuPxm0MzF3KwicdPNtFmLREREdG1wSCHKKmdMlKpFB5vfjELLpcELMPDDDCvJQko1bWUWm6YBclJo4JchzIx7YmIiKIxyKGvXANlU2F0p8ieDglwpoFKs4nVqW/MwssjAU66OoHa703MjJqFX71DbD4JpmXqAnqmJC1OHawMTGG1WUdpL6e3PTKLkxibbaIp206aBURERHQMgxwiZFF6LxVHmSoYmUsfD3RGZ9S6GYyZ2cvWf28VzZUpfNNnFpCnsOGmpZrUOeo3y6+efkytqH2cHQOTkYiI6GwxyCEKGMPMRgHVas3r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" } }, "cell_type": "markdown", "id": "760b56d4", "metadata": { "user_expressions": [] }, "source": [ "# Exercice 5 : Partage des frais lors d'un voyage\n", "\n", "Trois ami.e.s, Alice Bob et Carole rentrent d'un week-end à la montagne et décident de faire les comptes. Alice a acheté les billets de train (56 CHF par personne) et la nourriture (30 CHF de pique-nique et 60 CHF de restaurant), Bob s'est occupé de la nuit en auberge de jeunesse (20 CHF par personne) et Carole a payé les boissons du samedi soir (25 CHF en tout).\n", "\n", "Alice propose alors d'écrire un petit programme qui simplifiera l'équilibrage des comptes. Celui-ci devra :\n", "\n", "- Afficher un message demandant combien Alice (respectivement Bob et Carole) ont dépensé pendant le weekend\n", "- Afficher un message résumant les dépenses de chaque participant.e ainsi que son écart à la moyenne. Celui-ci doit prendre la forme suivante :\n", " \n", "![image.png](attachment:628ddd5f-f9a0-47b7-86af-0851a993ec98.png) \n", "- Calculer combien Bob et Carole doivent à Alice et vérifier que les trois ami.e.s ont bien dépensé la même chose après remboursement.\n", "\n", "#### Remarques : \n", "1. Lorsqu'une variable est définie au travers de la fonction $\\verb?input()?$, elle sera toujours de type $\\verb?str?$. Il est possible d'évaluer une chaîne de caractères en tant qu'instruction en utilisant la fonction $\\verb?eval()?$. Voici un exemple :\n", "\n", "![image.png](attachment:2cc150cf-265d-4387-9b76-3c82069368ec.png)\n", "\n", "2. Il est possible d'arrondir le nombre de décimales des nombres à virgule flottante (float) en utilisant la fonction $\\verb?round(number,n)?$, où $\\verb?number?$ est le nombre à arrondir et $\\verb?n?$ est le nombre de décimales affichées.\n", "\n", "3. Cet exercice présente une première introduction à l'algorithmique, mais n'est de loin pas optimal. De plus, il n'est solvable dans sa forme actuelle que sous certaines conditions (lesquelles? pourquoi?). Nous allons améliorer cet exercice au fur et à mesure que notre connaissance de Python s'étoffera." ] }, { "cell_type": "code", "execution_count": null, "id": "cce21b28", "metadata": { "tags": [] }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "76bc76fc-f978-49fc-9513-57f813b00812", "metadata": {}, "outputs": [], "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d33a7d71-8fbd-4a2a-a1dc-e882697661e0", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python3", "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.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }