diff --git a/Notebooks/05b_Les_variables2.ipynb b/Notebooks/05b_Les_variables2.ipynb index 1cd9925b0ff2b993314aa89ddbbca6eb363f8a0b..0e8272c67929bdf6a837731aeceea48872bcc6b7 100644 --- a/Notebooks/05b_Les_variables2.ipynb +++ b/Notebooks/05b_Les_variables2.ipynb @@ -1 +1 @@ -{"cells":[{"metadata":{},"cell_type":"markdown","source":"# 5. Les variables 2 (entrée-sortie, type)\n"},{"metadata":{},"cell_type":"markdown","source":"## Types de Données\nPython est un langage à typage dynamique, ce qui signifie que vous n'avez pas besoin de spécifier le type de données d'une variable lorsque vous la créez.\n\n### Principaux types de données en Python\n- `int` : pour les nombres entiers\n- `float` : pour les nombres à virgule flottante\n- `str` : pour les chaînes de caractères\n- `bool` : pour les valeurs booléennes (True ou False)\n\n```python\n# Exemple de différents types de données\nentier = 10\nchaine = \"Bonjour\"\nflottant = 12.85\nbooleen = True\n"},{"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\nQue stocke la variable `pi` dans le code suivant ?\n\n```python\npi = 3.14159\n\n```\n\n<ol style=\"list-style-type: upper-alpha\">\n <li>Une chaîne de caractères</li>\n <li>Un entier</li>\n <li>Un nombre à virgule flottante</li>\n <li>Une valeur booléenne</li>\n</ol>\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\"> \nSolution\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC. Un nombre à virgule flottante\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Question </h3> \n\n \n```\nEn informatique, `int` est l'abréviation pour\n\nA) international\nB) entier\nC) interne\nD) intelligent\n```\n \n</div>"},{"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\"> \nSolution\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nB) entier\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Question </h3> \n\nIndiquez le type des variables (entier, flottant ou chaîne de caractères) permettant de stocker sur votre smartphone les informations suivantes :\n\n- le nom d’un contact\n- le numéro de téléphone d’un contact\n- un SMS\n- le prix d'un croissant\n- le code de votre partage de connexion Wi-Fi\n- le pourcentage _affiché_ de batterie restante\n- ma note à la dernière épreuves de Mathématiques\n\n\n \n</div>"},{"metadata":{},"cell_type":"raw","source":"Mes réponses :\n\n- le nom d’un contact : \n- le numéro de téléphone d’un contact : \n- un SMS :\n- le prix d'un croissant : \n- le code de votre partage de connexion Wi-Fi : \n- le pourcentage affiché de batterie restante :\n- ma note à la dernière épreuves de Mathématiques : "},{"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\"> \nSolutions\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n- le nom d’un contact : Une chaîne de caractères\n \n- le numéro de téléphone d’un contact : Une entier\n \n- un SMS : Une chaîne de caractères\n \n- le prix d'un croissant : Un nombre à virgule flottante\n \n- le code de votre partage de connexion Wi-Fi : Une chaîne de caractères\n \n- le pourcentage affiché de batterie restante : Une entier\n \n- ma note à la dernière épreuves de Mathématiques : Un nombre à virgule flottante\n \n</div>\n</details>"},{"metadata":{"trusted":false},"cell_type":"markdown","source":"## Demander à l'utilisateur d'entrer une valeur : `input` \n\nLa fonction `input('question')` permet de demander une entrée (input) à l'utilisateur.\nL'utilisateur voit le texte `question` affiché à la console et doit répondre à cette question. Il termine son entrée avec la touche Enter.\n\nLa réponse de l'utilisateur est ensuite mémorisée dans une variable que nous appelons `x` dans cet exemple.\nEnsuite, nous pouvons utiliser cette variable `x` dans la suite du programme, par exemple comme argument dans une fonction `print()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = input('Entrez votre nom: ')\nprint('Bonjour', x)","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 1 </h3>\n\nAjoutez une troisième question et utilisez la réponse dans un `print()`.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"nom = input('Entrez votre nom: ')\nprint('Bonjour', nom)\n\nage = input('Entrez votre âge: ')\nprint('Très bien', nom, 'vous avez', age, 'ans')\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 2 </h3>\n\nEcrire un code qui demande à l’utilisateur son prénom dans une première question puis qui demande dans une deuxième question son nom de famille et qui écrit ensuite:<br>\n\t\n `\"Bienvenu Prénom Nom\"`\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Demander un nombre\n\nLa fonction `input()` permet d'obtenir une entrée de l'utilisateur. Mais attention !\nLa valeur retournée est une chaine de caractères (de type string `str`). Nous pouvons le prouver avec la fonction `type()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = input('Entrez un nombre: ')\nprint(type(x))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<div class=\"alert alert-block alert-info\">\n<b>⚡ A retenir : </b> <br>\nUne variable entrée au clavier par un <i>input</i> est toujours du type <i>str</i> c'est à dire considéré comme une chaine de caractères.\n</ul>\n</div>"},{"metadata":{},"cell_type":"markdown","source":"Pour pouvoir utiliser cette valeur dans un calcul, nous devons la transformer en nombre. Pour convertir une chaine de caractères en un nombre à virgule flottante nous utilisons la fonction de conversion `float()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = '1.5'\nprint(type(x)) # la variable x contient une chaîne\nprint(type(float(x))) # la fonction float(x) renvoie un nombre","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Exemple\n\nOn souhaite avoir un programme qui permet de calculer la moyenne de deux nombres qui sont fournis par l'utilisateur. Tester la proposition de programme suivante:"},{"metadata":{"trusted":true},"cell_type":"code","source":"#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = input(\"Taper un premier nombre : \")\nnombre2 = input(\"Taper un deuxième nombre : \")\nmoyenne = (nombre1 + nombre2)/2\nprint(\"La somme de ces deux nombres est \",moyenne)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On comprend le problème : pour python `nombre1` et `nombre2` sont en fait des chaines de caractères par conséquent, calculer leur moyenne n'a pas de sens ! \n\nPour résoudre ce problème nous devons convertir `nombre1` et `nombre2` en nombre à virgule, cela se fait grâce à l'instruction `float`. Voici le programme corrigé :\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = float(input(\"Taper un premier nombre : \")) #float() permet de convertir la valeur entrée en flottant\nnombre2 = float(input(\"Taper un deuxième nombre : \")) \nmoyenne = (nombre1 + nombre2)/2\nprint(\"La moyenne de ces deux nombres est \",moyenne)","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>Complétez le programme pour afficher la surface du cercle.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Circle')\nr = float(input('Entrez le rayon: '))\npi = 3.14\nprint()\nprint('rayon =', r)\nprint('diamètre =', 2 * r)\nprint('circonférence =', pi * 2 * r)\nprint('surface =', ...)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Nous pouvons également créer des programmes où nous demandons plusieurs valeurs à l'utilisateur. Cette fois, nous permettons seulement l'utilisation de nombres entiers, et donc transformons la chaine obtenue avec `int()` en nombre entier.\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 4 </h3>Complétez le programme pour afficher le périmètre et la diagonale.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Rectangle')\na = float(input('Entrez la largeur: '))\nb = float(input('Entrez la longueur: '))\n\nprint('surface =', a * b)\nprint('périmètre =', ...)\nprint('diagonale =', ...)","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\nChacun des programmes suivants devrait demander à l’utilisateur deux nombres, et écrire le produit de ces deux nombres mais il contient au moins une erreur. Corrigez chacun des programmes puis testez les\n\n**Programme A** "},{"metadata":{"trusted":true},"cell_type":"code","source":"int(input(\"premier nombre: \"))\nint(input(\"deuxième nombre: \"))\nprint(premier*deuxième)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=input(\"premier nombre: \")\ny=input(\"deuxième nombre: \")\nx*y","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=int(\"premier nombre : \")\ny=int(\"deuxième nombre: \")\nz=x*y\nprint(“z”)","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>\n\nComplétez le programme Python ci-dessous qui calcule la surface d'un rectangle après avoir demandé sa largeur et sa longueur.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme pour calculer la surface d'un rectangle à partir de sa longueur et de sa largeur\nlongueur = _____(input(\"Entrer la longueur du rectangle : \")) #longueur doit être un flottant utiliser la conversion !\nlargeur = _____(_____(\"Entrer la largeur du rectangle : \"))\nsurface = _______*_________\n_____(\"La surface du rectangle est :\",___________)","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\nChacun des programmes devrait demander à l’utilisateur deux nombres n, et écrire les n premiers multiples de 100. Corriger les erreurs de chaque programme afin qu’il fonctionne.\n\n\n**Programme A** "},{"metadata":{"trusted":true},"cell_type":"code","source":"n = int(input(“Nombre de multiples: ”))\nfor _ in range(n):\n print(x)\n x+100\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples: “))\nn = 100\nfor _ in range(x):\n print(x)\n x = x+100","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples: “))\nn = 100\nfor _ in range(x):\n print(n)\nn = n+n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme D**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples:”))\nfor _ in range(x):\n n = 100\n print(n)\n n = n+100","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme E**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=int(input(“Nombre de multiples:”))\nn = 100\nfor _ in range (x):\n n = n + 100\n print(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 8 </h3>\n\nCpméàtez le programme Python qui demande à l’utilisateur un mot, et un nombre n et qui écrit n fois de suite le mot donné par l’utilisateur."},{"metadata":{"trusted":true},"cell_type":"code","source":"n = input(...)\nmot = input(...)\nfor #à compléter\n #à compléter","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\nOn considère le programme suivant:\n\n```python\n\nfrom turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n forward(100)\n right(angle)\n \ndone()\n```\n\n1. Tester le programme ci-dessus, puis modifiez le en définissant une fonction `polygone(lg, n)` qui permet de tracer des polygones avec `n` côtés et de longueur `lg`. Le programme doit produire la même figure mais en utilisant la fonction `polygone(lg, n)`."},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n forward(100)\n right(angle)\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Modifiez le programme précédant afin d’obtenir un programme qui demande à l’utilisateur⋅trice la taille et le nombre de côtés du polygone puis trace ce polygone.\n\nExemple d’exécution du programme: \n\n```\nQuel est la nombre de côtés de votre polygone : 8\nQuel est la taille de votre polygone : 100\n```\nqui devrait générer un hexagone de côté 100:"},{"metadata":{"trusted":true},"cell_type":"code","source":"# votre programme complet...\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>\n\nCompléter le programme pour avoir un programme qui demande un nombre à l’utilisateur et qui dessine un carré ayant cette longueur comme côté.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n forward(100)\n right(angle)\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 🟥 Fin\n\n<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n \n- **Ne pas Oublier de sauvegarder son travail.**\n \n- **Pour effectuer** une sauvegarde personnelle du document obtenu :\n - utilisez le menu `Fichier / Enregistrer sous…`.\n - nomez le fichier `variables1.ipynb`\n - choisissez de sauver votre fichier dans `Documents/1IN/Programmation/Les_variables`.\n\n </div>\n\n---\n\n#### Remarque générale\n\nCe document c'est inspiré des notebook trouvé sur\n- Les ressources pédagogiques du catalogue modulo https://modulo-info.ch/. \n- Les ressources pédagogiques du [Lycée Mounier](https://info-mounier.fr/snt/python/) \n\nLe notebook est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2} \ No newline at end of file +{"cells":[{"metadata":{},"cell_type":"markdown","source":"<div style=\"padding:20px;background-color:papayawhip;\" >\n \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> \n</div>"},{"metadata":{},"cell_type":"markdown","source":"# 5. Les variables 2 (entrée-sortie, type)\n"},{"metadata":{},"cell_type":"markdown","source":"## Types de Données\nPython est un langage à typage dynamique, ce qui signifie que vous n'avez pas besoin de spécifier le type de données d'une variable lorsque vous la créez.\n\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 le type d'une variable ? Exécutez la cellule ci-dessous pour voir une petite introduction sur la notion de type d'une variable</p>\n</blockquote>\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from IPython.display import HTML\nHTML(\"\"\"<iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/5zA8_3YDXb4?si=3V95fi6wa24ddwW_\" 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>\"\"\")","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Principaux types de données en Python\n- `int` : pour les nombres entiers\n- `float` : pour les nombres à virgule flottante\n- `str` : pour les chaînes de caractères\n- `bool` : pour les valeurs booléennes (True ou False)\n\n```python\n# Exemple de différents types de données\nentier = 10\nchaine = \"Bonjour\"\nflottant = 12.85\nbooleen = True"},{"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\nQue stocke la variable `pi` dans le code suivant ?\n\n```python\npi = 3.14159\n\n```\n\n<ol style=\"list-style-type: upper-alpha\">\n <li>Une chaîne de caractères</li>\n <li>Un entier</li>\n <li>Un nombre à virgule flottante</li>\n <li>Une valeur booléenne</li>\n</ol>\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\"> \nSolution\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nC. Un nombre à virgule flottante\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Question </h3> \n\n \n```\nEn informatique, `int` est l'abréviation pour\n\nA) international\nB) entier\nC) interne\nD) intelligent\n```\n \n</div>"},{"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\"> \nSolution\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\nB) entier\n</div>\n</details>"},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:chocolate;background-color:papayawhip;\" > <i class=\"fa fa-question\" aria-hidden=\"true\"> </i> Question </h3> \n\nIndiquez le type des variables (entier, flottant ou chaîne de caractères) permettant de stocker sur votre smartphone les informations suivantes :\n\n- le nom d’un contact\n- le numéro de téléphone d’un contact\n- un SMS\n- le prix d'un croissant\n- le code de votre partage de connexion Wi-Fi\n- le pourcentage _affiché_ de batterie restante\n- ma note à la dernière épreuves de Mathématiques\n\n\n \n</div>"},{"metadata":{},"cell_type":"raw","source":"Mes réponses :\n\n- le nom d’un contact : \n- le numéro de téléphone d’un contact : \n- un SMS :\n- le prix d'un croissant : \n- le code de votre partage de connexion Wi-Fi : \n- le pourcentage affiché de batterie restante :\n- ma note à la dernière épreuves de Mathématiques : "},{"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\"> \nSolutions\n</summary> \n\n<div style=\"border-left:3px solid #3c763d; border-radius:2pt; color:#3c763d; padding:6px; background-color: #eff0e8\">\n- le nom d’un contact : Une chaîne de caractères\n \n- le numéro de téléphone d’un contact : Une entier\n \n- un SMS : Une chaîne de caractères\n \n- le prix d'un croissant : Un nombre à virgule flottante\n \n- le code de votre partage de connexion Wi-Fi : Une chaîne de caractères\n \n- le pourcentage affiché de batterie restante : Une entier\n \n- ma note à la dernière épreuves de Mathématiques : Un nombre à virgule flottante\n \n</div>\n</details>"},{"metadata":{"trusted":false},"cell_type":"markdown","source":"## Demander à l'utilisateur d'entrer une valeur : `input` \n\nLa fonction `input('question')` permet de demander une entrée (input) à l'utilisateur.\nL'utilisateur voit le texte `question` affiché à la console et doit répondre à cette question. Il termine son entrée avec la touche Enter.\n\nLa réponse de l'utilisateur est ensuite mémorisée dans une variable que nous appelons `x` dans cet exemple.\nEnsuite, nous pouvons utiliser cette variable `x` dans la suite du programme, par exemple comme argument dans une fonction `print()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = input('Entrez votre nom: ')\nprint('Bonjour', x)","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 1 </h3>\n\nAjoutez une troisième question et utilisez la réponse dans un `print()`.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"nom = input('Entrez votre nom: ')\nprint('Bonjour', nom)\n\nage = input('Entrez votre âge: ')\nprint('Très bien', nom, 'vous avez', age, 'ans')\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 2 </h3>\n\nEcrire un code qui demande à l’utilisateur son prénom dans une première question puis qui demande dans une deuxième question son nom de famille et qui écrit ensuite:<br>\n\t\n `\"Bienvenu Prénom Nom\"`\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"## Demander un nombre\n\nLa fonction `input()` permet d'obtenir une entrée de l'utilisateur. Mais attention !\nLa valeur retournée est une chaine de caractères (de type string `str`). Nous pouvons le prouver avec la fonction `type()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = input('Entrez un nombre: ')\nprint(type(x))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<div class=\"alert alert-block alert-info\">\n<b>⚡ A retenir : </b> <br>\nUne variable entrée au clavier par un <i>input</i> est toujours du type <i>str</i> c'est à dire considéré comme une chaine de caractères.\n</ul>\n</div>"},{"metadata":{},"cell_type":"markdown","source":"Pour pouvoir utiliser cette valeur dans un calcul, nous devons la transformer en nombre. Pour convertir une chaine de caractères en un nombre à virgule flottante nous utilisons la fonction de conversion `float()`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = '1.5'\nprint(type(x)) # la variable x contient une chaîne\nprint(type(float(x))) # la fonction float(x) renvoie un nombre","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### Exemple\n\nOn souhaite avoir un programme qui permet de calculer la moyenne de deux nombres qui sont fournis par l'utilisateur. Tester la proposition de programme suivante:"},{"metadata":{"trusted":true},"cell_type":"code","source":"#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = input(\"Taper un premier nombre : \")\nnombre2 = input(\"Taper un deuxième nombre : \")\nmoyenne = (nombre1 + nombre2)/2\nprint(\"La somme de ces deux nombres est \",moyenne)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"On comprend le problème : pour python `nombre1` et `nombre2` sont en fait des chaines de caractères par conséquent, calculer leur moyenne n'a pas de sens ! \n\nPour résoudre ce problème nous devons convertir `nombre1` et `nombre2` en nombre à virgule, cela se fait grâce à l'instruction `float`. Voici le programme corrigé :\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"#Demande à l'utilisateur deux nombres puis calcule et affiche leur somme\nnombre1 = float(input(\"Taper un premier nombre : \")) #float() permet de convertir la valeur entrée en flottant\nnombre2 = float(input(\"Taper un deuxième nombre : \")) \nmoyenne = (nombre1 + nombre2)/2\nprint(\"La moyenne de ces deux nombres est \",moyenne)","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>Complétez le programme pour afficher la surface du cercle.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Circle')\nr = float(input('Entrez le rayon: '))\npi = 3.14\nprint()\nprint('rayon =', r)\nprint('diamètre =', 2 * r)\nprint('circonférence =', pi * 2 * r)\nprint('surface =', ...)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Nous pouvons également créer des programmes où nous demandons plusieurs valeurs à l'utilisateur. Cette fois, nous permettons seulement l'utilisation de nombres entiers, et donc transformons la chaine obtenue avec `int()` en nombre entier.\n\n<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> Exercice 4 </h3>Complétez le programme pour afficher le périmètre et la diagonale.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"print('Rectangle')\na = float(input('Entrez la largeur: '))\nb = float(input('Entrez la longueur: '))\n\nprint('surface =', a * b)\nprint('périmètre =', ...)\nprint('diagonale =', ...)","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\nChacun des programmes suivants devrait demander à l’utilisateur deux nombres, et écrire le produit de ces deux nombres mais il contient au moins une erreur. Corrigez chacun des programmes puis testez les\n\n**Programme A** "},{"metadata":{"trusted":true},"cell_type":"code","source":"int(input(\"premier nombre: \"))\nint(input(\"deuxième nombre: \"))\nprint(premier*deuxième)\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=input(\"premier nombre: \")\ny=input(\"deuxième nombre: \")\nx*y","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=int(\"premier nombre : \")\ny=int(\"deuxième nombre: \")\nz=x*y\nprint(“z”)","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>\n\nComplétez le programme Python ci-dessous qui calcule la surface d'un rectangle après avoir demandé sa largeur et sa longueur.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Programme pour calculer la surface d'un rectangle à partir de sa longueur et de sa largeur\nlongueur = _____(input(\"Entrer la longueur du rectangle : \")) #longueur doit être un flottant utiliser la conversion !\nlargeur = _____(_____(\"Entrer la largeur du rectangle : \"))\nsurface = _______*_________\n_____(\"La surface du rectangle est :\",___________)","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\nChacun des programmes devrait demander à l’utilisateur deux nombres n, et écrire les n premiers multiples de 100. Corriger les erreurs de chaque programme afin qu’il fonctionne.\n\n\n**Programme A** "},{"metadata":{"trusted":true},"cell_type":"code","source":"n = int(input(“Nombre de multiples: ”))\nfor _ in range(n):\n print(x)\n x+100\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme B**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples: “))\nn = 100\nfor _ in range(x):\n print(x)\n x = x+100","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme C**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples: “))\nn = 100\nfor _ in range(x):\n print(n)\nn = n+n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme D**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x = int(input(“Nombre de multiples:”))\nfor _ in range(x):\n n = 100\n print(n)\n n = n+100","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Programme E**"},{"metadata":{"trusted":true},"cell_type":"code","source":"x=int(input(“Nombre de multiples:”))\nn = 100\nfor _ in range (x):\n n = n + 100\n print(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 8 </h3>\n\nCpméàtez le programme Python qui demande à l’utilisateur un mot, et un nombre n et qui écrit n fois de suite le mot donné par l’utilisateur."},{"metadata":{"trusted":true},"cell_type":"code","source":"n = input(...)\nmot = input(...)\nfor #à compléter\n #à compléter","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\nOn considère le programme suivant:\n\n```python\n\nfrom turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n forward(100)\n right(angle)\n \ndone()\n```\n\n1. Tester le programme ci-dessus, puis modifiez le en définissant une fonction `polygone(lg, n)` qui permet de tracer des polygones avec `n` côtés et de longueur `lg`. Le programme doit produire la même figure mais en utilisant la fonction `polygone(lg, n)`."},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n forward(100)\n right(angle)\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. Modifiez le programme précédant afin d’obtenir un programme qui demande à l’utilisateur⋅trice la taille et le nombre de côtés du polygone puis trace ce polygone.\n\nExemple d’exécution du programme: \n\n```\nQuel est la nombre de côtés de votre polygone : 8\nQuel est la taille de votre polygone : 100\n```\nqui devrait générer un hexagone de côté 100:"},{"metadata":{"trusted":true},"cell_type":"code","source":"# votre programme complet...\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>\n\nCompléter le programme pour avoir un programme qui demande un nombre à l’utilisateur et qui dessine un carré ayant cette longueur comme côté.\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from turtle import *\n\nn = 10\nangle = int(360 / n)\n\nfor k in range(n):\n forward(100)\n right(angle)\n\ndone()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# 🟥 Fin\n\n<div class=\"alert alert-danger\" style=\"border-left:5px solid #a94442;border-radius: 5px;\">\n \n- **Ne pas Oublier de sauvegarder son travail.**\n \n- **Pour effectuer** une sauvegarde personnelle du document obtenu :\n - utilisez le menu `Fichier / Enregistrer sous…`.\n - nomez le fichier `variables1.ipynb`\n - choisissez de sauver votre fichier dans `Documents/1IN/Programmation/Les_variables`.\n\n </div>\n\n---\n\n#### Remarque générale\n\nCe document c'est inspiré des notebook trouvé sur\n- Les ressources pédagogiques du catalogue modulo https://modulo-info.ch/. \n- Les ressources pédagogiques du [Lycée Mounier](https://info-mounier.fr/snt/python/) \n\nLe notebook est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2} \ No newline at end of file