{"id":393,"date":"2020-04-21T14:58:41","date_gmt":"2020-04-21T12:58:41","guid":{"rendered":"http:\/\/labopothier.com\/?p=393"},"modified":"2024-09-10T05:55:03","modified_gmt":"2024-09-10T03:55:03","slug":"initiation-au-langage-python","status":"publish","type":"post","link":"https:\/\/labopothier.com\/index.php\/2020\/04\/21\/initiation-au-langage-python\/","title":{"rendered":"INITIATION au langage Python"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Pr\u00e9sentation de Python<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Le langage Python (source : <a href=\"https:\/\/cache.media.eduscol.education.fr\/file\/Programmer_en_physique-chimie\/12\/2\/RA18_Lycee_PHCH_environnement_langages-proceduraux-python_1044122.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">Eduscol<\/a>)<\/h3>\n\n\n\n<p>Python&nbsp;est un langage de programmation multiplateforme, c\u2019est-\u00e0-dire disponible sur plusieurs architectures (compatible PC, tablettes, smartphones, Raspberry &#8230;) et syst\u00e8mes d\u2019exploitation (Windows, Linux, Mac, Android&#8230;), il est gratuit, sous licence libre.<\/p>\n\n\n\n<p>Python&nbsp;est utilis\u00e9 dans le cadre de l\u2019enseignement d\u2019informatique, du secondaire au sup\u00e9rieur, mais aussi pour le d\u00e9veloppement d\u2019applications professionnelles.<\/p>\n\n\n\n<p><strong>Sp\u00e9cificit\u00e9s<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00a0Langage de haut niveau, d\u2019apprentissage ais\u00e9.<\/li>\n\n\n\n<li>\u00a0Langage tr\u00e8s utilis\u00e9 et notamment dans l\u2019enseignement : math\u00e9matiques au lyc\u00e9e,CPGE, IUT.<\/li>\n\n\n\n<li>\u00a0Langage disposant de beaucoup de biblioth\u00e8ques (acc\u00e8s simplifi\u00e9 au traitement de donn\u00e9es).<\/li>\n\n\n\n<li>Evolutions constantes assur\u00e9es par une large communaut\u00e9 de d\u00e9veloppeurs.<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Activit\u00e9s utilisant ce langage<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Etude \u00e9nerg\u00e9tique d\u2019un mouvement rectiligne.<\/li>\n\n\n\n<li>Dynamique de la chute libre.<\/li>\n\n\n\n<li> Stoechiom\u00e9trie et bilan de mati\u00e8re.<\/li>\n\n\n\n<li>&#8230;<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quels outils pour programmer en Python ?<\/h3>\n\n\n\n<p>Python n\u2019est pas un logiciel, il s\u2019agit juste d\u2019un langage !<\/p>\n\n\n\n<p>Pour programmer en Python, nous avons donc besoin d\u2019un logiciel appel\u00e9 IDE (Environnement de D\u00e9veloppement Int\u00e9gr\u00e9). On trouvera dans cet IDE deux fen\u00eatres principales : un&nbsp;\u00e9diteur&nbsp;(pour taper les programmes) et un&nbsp;interpr\u00e9teur&nbsp;(pour voir le r\u00e9sultat apr\u00e8s ex\u00e9cution du code)<\/p>\n\n\n\n<p>On utilisera ici le logiciel <strong>Pyzo<\/strong>. <\/p>\n\n\n\n<p>D\u2019autres IDE sont possibles pour programmer en Python :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/edupython.tuxfamily.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Edupython<\/a><\/strong>\u00a0\u00a0est facile \u00e0 installer mais peut pr\u00e9senter des probl\u00e8mes de compatibilit\u00e9.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.spyder-ide.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">Spyder<\/a><\/strong> (distribution Anaconda) est tr\u00e8s complet mais l\u2019installation est lourde. De plus, le programme prend du temps \u00e0 se lancer &#8230;<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/pyzo.org\/start.html\" target=\"_blank\" rel=\"noreferrer noopener\">Pyzo<\/a><\/strong>\u00a0\u00a0est convivial et adapt\u00e9 \u00e0 la programmation scientifique. Il faut cependant penser \u00e0 bien installer les biblioth\u00e8ques (voir ci dessous).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"> Installation et fonctionnalit\u00e9s de l\u2019IDE Pyzo<\/h3>\n\n\n\n<p>L\u2019installation de Python se fait en plusieurs \u00e9tapes :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00a0Installation de l\u2019environnement Python<\/li>\n\n\n\n<li> Installation du logiciel Pyzo (IDE adapt\u00e9 \u00e0 la programmation scientifique) et configuration de l\u2019interpr\u00e9teur (appel\u00e9 aussi console ou shell en anglais)<\/li>\n\n\n\n<li> Installation des biblioth\u00e8ques dans Pyzo (pour calculs, trac\u00e9s de courbes, communication avec la carte Arduino,&#8230;)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"> Etape 1 : Installer l\u2019environnement Python<\/h4>\n\n\n\n<p>Installer Python en t\u00e9l\u00e9chargeant la bonne version (Windows 32 bits, Windows 64 bits, Mac, Linux,..) sur ce lien :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noreferrer noopener\">   https:\/\/www.python.org\/downloads\/ <\/a><\/p>\n\n\n\n<p>Choisir<strong>&nbsp;Customize installation<\/strong>&nbsp;puis cocher la case&nbsp;<strong>All Users<\/strong>&nbsp;dans&nbsp;<strong>Advanced Options<\/strong>&nbsp;.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"405\" data-id=\"205\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/pyzo-customize.png\" alt=\"\" class=\"wp-image-205\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/pyzo-customize.png 660w, https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/pyzo-customize-300x184.png 300w\" sizes=\"auto, (max-width: 660px) 100vw, 660px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"662\" height=\"405\" data-id=\"206\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/pyzo-all-users-1.png\" alt=\"\" class=\"wp-image-206\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/pyzo-all-users-1.png 662w, https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/pyzo-all-users-1-300x184.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><\/figure>\n<\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"> Etape 2 : Installer l&rsquo;IDE Pyzo<\/h4>\n\n\n\n<p>Installer Pyzo en t\u00e9l\u00e9chargeant la bonne version (Windows 32 bits, Windows 64 bits, Mac, Linux,..) sur ce lien :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><br><a rel=\"noreferrer noopener\" href=\"https:\/\/pyzo.org\/start.html\" target=\"_blank\">https:\/\/pyzo.org\/start.html<\/a><\/p>\n\n\n\n<p class=\"has-text-align-left\"><a rel=\"noreferrer noopener\" href=\"https:\/\/pyzo.org\/start.html\" target=\"_blank\"><br><\/a><strong>Vue d\u00e9taill\u00e9e du logiciel Pyzo :<\/strong><\/p>\n\n\n\n<p>Les deux fen\u00eatres principales dans un IDE sont :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>L\u2019\u00e9diteur de script\u00a0<\/strong>: c\u2019est dans cette fen\u00eatre qu\u2019on \u00e9crit le code, il faudra bien penser \u00e0 sauvegarder r\u00e9guli\u00e8rement\u00a0(<strong>Ctrl+S<\/strong>). Pour ex\u00e9cuter le code, le raccourci est\u00a0<strong>Ctrl+shift+E<\/strong><\/li>\n\n\n\n<li>L\u2019<strong>interpr\u00e9teur <\/strong>(ou console\/shell)\u00a0: Le r\u00e9sultat apr\u00e9s ex\u00e9cution du code s\u2019affiche dans cette fen\u00eatre. Des messages en rouge peuvent appara\u00eetre en cas d\u2019erreur&#8230;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/Capture-d\u2019\u00e9cran-2020-04-21-\u00e0-15.47.01-1024x628.png\" alt=\"\" class=\"wp-image-419\" style=\"width:648px;height:397px\"\/><figcaption class=\"wp-element-caption\">IDE Pyzo<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Etape 3 : Configuration du shell<\/h4>\n\n\n\n<p>Ouvrir <strong>Pyzo<\/strong> <\/p>\n\n\n\n<p>L\u2019interpr\u00e9teur indique si un environnement python a \u00e9t\u00e9 d\u00e9tect\u00e9 (dans ce cas cliquer sur&nbsp;detect&nbsp;pour valider le choix).<br>Sinon il faut aller dans le menu&nbsp;<strong>Shell &gt; Edit shell configurations<\/strong>, une fen\u00eatre s\u2019ouvre et il faut renseigner la ligne exe avec le bon chemin parmi les choix propos\u00e9s (Python 3.7).<\/p>\n\n\n\n<p>Pour choisir la langue fran\u00e7aise :&nbsp;<strong>menu Settings &gt; Select language<\/strong>&nbsp;<\/p>\n\n\n\n<p>Red\u00e9marrer Pyzo pour que les changements prennent effet.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Etape 4 : Installation des biblioth\u00e8ques<\/h4>\n\n\n\n<p>Ouvrir Pyzo Dans le shell (qu\u2019on peut faire glisser en haut par commodit\u00e9), \u00e9crire une \u00e0 une les commandes suivantes et valider \u00e0 chaque fois (Attention : il faut \u00eatre connect\u00e9 \u00e0 Internet)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>pip install numpy<\/strong><\/li>\n\n\n\n<li><strong>pip install matplotlib<\/strong><\/li>\n\n\n\n<li><strong>pip install scipy<\/strong><\/li>\n<\/ul>\n\n\n\n<p><strong>numpy<\/strong>&nbsp;et&nbsp;<strong>scipy<\/strong>&nbsp;sont des biblioth\u00e8ques pour des calculs scientifiques.<br><strong>matplotlib<\/strong>&nbsp;contient les fonctions pour tracer des graphiques (avec le module pyplot)<\/p>\n\n\n\n<p> Pour v\u00e9rifier, \u00e9crire dans le shell :&nbsp;<strong>import&nbsp;<\/strong><em><strong>nom de la biblioth\u00e8que<\/strong>&nbsp;<\/em>(par exemple&nbsp;import matplotlib) L\u2019absence de message d\u2019erreur signifie que la biblioth\u00e8que est bien install\u00e9e.<\/p>\n\n\n\n<p><strong>Compl\u00e9ment (optionnel)<\/strong> :  Pour installer <strong>nanpy<\/strong> qui permet de programmer une carte Arduino avec le langage Python<\/p>\n\n\n\n<p class=\"has-text-align-center\"> <strong>pip install D:\\Nanpy_Python.zip<\/strong><\/p>\n\n\n\n<p>Indiquer chemin du fichier, ici sur la racine&nbsp;d\u2019une&nbsp;cl\u00e9 USB sur le D :<\/p>\n\n\n\n<p>Ce fichier zip est disponible ci dessous :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a rel=\"noreferrer noopener\" href=\"https:\/\/drive.google.com\/file\/d\/1NFCzAGMrU0fRCT2C9JW5dDFMp3KG26xW\/view\" target=\"_blank\">Nanpy_Python.zip<\/a><\/p>\n\n\n\n<p>Vous trouverez des informations sur l&rsquo;installation et l&rsquo;utilisation de Nanpy dans l&rsquo;article suivant : <\/p>\n\n\n\n<p class=\"has-text-align-center\"><a rel=\"noreferrer noopener\" href=\"https:\/\/labopothier.com\/index.php\/2020\/04\/04\/programmer-en-python-pour-la-carte-arduino\/\" target=\"_blank\">Programmer-en-python-pour-la-carte-arduino<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Premi\u00e8re approche de la programmation Python<\/h2>\n\n\n\n<p>Dans cet article, nous ne rentrerons pas en d\u00e9tail dans l\u2019apprentissage du langage Python qui est tr\u00e8s riche. Le but est de comprendre quelques notions de base qui sont utilis\u00e9es dans le cadre des nouveaux programmes de physique.<\/p>\n\n\n\n<p>Cet article est largement inspir\u00e9 par le site Chimsoft qui propose une excellente premi\u00e8re approche du langage Python pour la physique-chimie dans ce document PDF <a href=\"https:\/\/chimsoft.com\/download\/python\/PythonLycee.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">PythonLycee.pdf<\/a><\/p>\n\n\n\n<p>Les  objectifs de cette initiation sont :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ecrire quelques lignes de codes pour faire des calculs simples et afficher les r\u00e9sultats dans la console avec la fonction\u00a0<strong>print<\/strong>.<\/li>\n\n\n\n<li>Diff\u00e9rencier les types de donn\u00e9es\u00a0<strong>int<\/strong>,\u00a0<strong>str<\/strong>\u00a0et\u00a0<strong>float<\/strong>.<\/li>\n\n\n\n<li>Affecter une valeur \u00e0 une variable.<\/li>\n\n\n\n<li>Savoir utiliser la biblioth\u00e8que\u00a0<strong>matplotlib<\/strong>\u00a0pour tracer un graphe \u00e0 partir d\u2019une s\u00e9rie de mesures<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quelques lignes de code pour s\u2019exercer<\/h3>\n\n\n\n<p>Ci dessous un tableau de quelques types de donn\u00e9es que l\u2019on peut utiliser avec Python :<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter is-style-regular\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong><em>Type de donn\u00e9es<\/em><\/strong><\/td><td><strong><em>Nom en python<\/em><\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Nombre entier<\/td><td><strong>int<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Nombre d\u00e9cimal (flottant)<\/td><td><strong>float<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Cha\u00eene de caract\u00e8res (du texte par exemple)<\/td><td><strong>str<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Liste (pour une s\u00e9rie de mesures par exemple)<\/td><td><strong>list<\/strong><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Types de donn\u00e9es Python<\/figcaption><\/figure>\n\n\n\n<p><br>Un programme Python doit \u00eatre \u00e9crit dans la fen\u00eatre d\u2019\u00e9diteur de script. Il faut utiliser la fonction&nbsp;print&nbsp;pour qu\u2019un r\u00e9sultat s\u2019affiche dans l\u2019interpr\u00e9teur. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Premi\u00e8re s\u00e9rie de tests : Afficher le texte <em>Coucou !<\/em><\/h3>\n\n\n\n<p>On d\u00e9cide d\u2019afficher un texte, il s\u2019agit donc d\u2019une cha\u00eene de caract\u00e8res.<\/p>\n\n\n\n<p><br>Dans Python, il n\u2019est pas tout le temps n\u00e9cessaire de d\u00e9clarer les types de variables.<br>Ici, il suffit d\u2019utiliser les guillemets \u00a0\u00bb \u00ab\u00a0(ou apostrophes \u2019 \u2019) pour que le texte <em>Coucou !<\/em><br>soit reconnu comme une cha\u00eene de caract\u00e8res (<strong>str<\/strong>).<\/p>\n\n\n\n<p><br>Ecrire ces lignes de codes dans l\u2019\u00e9diteur et ensuite les ex\u00e9cuter pour faire appara\u00eetre le r\u00e9sultat dans la console (<strong>Ex\u00e9cuter\/D\u00e9marrer le script<\/strong>&nbsp;ou raccourci&nbsp;<strong>CTR+SHIFT+E<\/strong>) :<\/p>\n\n\n\n<pre title=\"Premi\u00e8re s\u00e9rie de tests : Afficher le texte Coucou !\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">print (\"Coucou !\") # Faire le test sans les guillemets aussi\n\ntexte = \"Coucou !\" # On peut affecter le texte Coucou ! a une variable nommee texte\n# (encore une fois penser aux guillemets pour le contenu du texte)\n\nprint (texte)\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Deuxi\u00e8me s\u00e9rie de tests : Manipuler un nombre entier<\/h3>\n\n\n\n<p>Un nombre entier sera reconnu comme un entier sauf si on le met entre guillemets, \u00e7a deviendra une cha\u00eene de caract\u00e8res !<br>Si on affecte une valeur \u00e0 une variable x, la valeur est \u00ab\u00a0stock\u00e9e\u00a0\u00bb dans cette variable.<\/p>\n\n\n\n<pre title=\"Deuxi\u00e8me s\u00e9rie de tests : Manipuler un nombre entier\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">print (2)\nprint (2+2) # le resultat apparait dans l ' interpreteur\nprint(\"2+2\") # pas d'addition car c'est ici une chaine de caracteres !\n\nx=2 # on affecte la valeur \u00e0 une variable x\nprint(x) # la valeur de x est affichee\nprint (\"x\") # ici ca devient une chaine de caracteres ,\n            # ce n'est plus la variable !\n\nx=2\nprint (x+x) # le resultat apparait dans l ' interpreteur\n\nx=2 \n# une maniere plus elegante de presenter les resultats \nprint (\"x = \",x) # la virgule permet de separer la chaine de\n                   # caracteres et la valeur de la variable\nx=2\nprint (\"x+x = \",x+x)<\/code><\/pre>\n\n\n\n<p><strong><em>Rq :<\/em><\/strong>&nbsp;Raccourci pour ex\u00e9cuter seulement une s\u00e9lection de lignes :&nbsp;<strong>ALT+ENTREE<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Troisi\u00e8me s\u00e9rie de tests : Manipuler un nombre d\u00e9cimal<\/h3>\n\n\n\n<p>M\u00eame r\u00e8gle pour les nombres d\u00e9cimaux appel\u00e9s flottants (<strong>float<\/strong>) Attention, penser \u00e0 utiliser un point et non pas la virgule.<\/p>\n\n\n\n<pre title=\"Troisi\u00e8me s\u00e9rie de tests : Manipuler un nombre d\u00e9cimal\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">print (2 ,5) # avec la virgule , les entiers 2 et 5 sont affiches separement\nprint (2.5) # avec le point , on recupere bien le nombre decimal 2.5 \nprint (2.5+2.5) # l 'addition se fait bien\nprint (\"2.5+2.5\") # pas d'addition car c'est une chaine de caracteres !\n\n\nx=2.5 # on affecte la valeur \u00e0 une variable x\nprint (x) \n\nx=2.5\nprint(x+x) # l 'addition se fait bien\n\nx=2.5 \nprint (\"x = \" ,x) # une maniere plus elegante de presenter les resultats\nprint (\"x+x = \" ,x+x)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Tracer un graphe avec Python<\/h3>\n\n\n\n<p>La biblioth\u00e8que&nbsp;<strong>matplotlib<\/strong>&nbsp;permet de tracer des courbes dans Python.<br>Pour importer cette biblioth\u00e8que dans un programme Python, il faut taper la ligne de code suivante :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>import matplotib.pyplot as plt<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Exemple simple de trac\u00e9 d\u2019une courbe avec matplotlib<\/h4>\n\n\n\n<pre title=\"Exemple simple de trac\u00e9 d\u2019une courbe avec matplotlib\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\"># Importation du module pyplot de la bibliotheque permettant le trace de courbes, on attribue un alias plt \u00e0 ce module.\nimport matplotlib.pyplot as plt\n\n# Les valeurs des abscisses X et ordonnees Y sont stockees dans des listes : des crochets sont utilises pour delimiter les listes. Les valeurs dans ces listes sont separees par des virgules.\nX = [1,2,3,4,5] \nY = [2,4,6,8,10]\n\n# Permet de placer les points de coordonnees (x,y) en les reliant . Il faut utiliser plt.scatter si on ne veut pas relier les points .\nplt.plot (X, Y) # faire l ' essai avec plt.scatter (X,Y)\n\n# Pour nommer l 'axe des abscisses\nplt.xlabel (\"X\")\n\n# Pour nommer l ' axe des ordonnees\nplt.ylabel (\"Y\") #Pour mettre un titre\n\nplt.title (\" Exemple de courbe \") \n\n# Pour afficher le graphique\nplt.show()\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mise en application : Loi de Boyle Mariotte<\/h4>\n\n\n\n<p>Faire plusieurs mesures de pression P pour diff\u00e9rentes mesures de volume d\u2019air V contenu dans une seringue. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/Capture-d\u2019\u00e9cran-2020-04-21-\u00e0-23.23.32-1024x134.png\" alt=\"\" class=\"wp-image-431\" style=\"width:464px;height:60px\"\/><figcaption class=\"wp-element-caption\">Valeurs de pression et de volume<\/figcaption><\/figure>\n\n\n\n<p>Avec le langage de programmation Python dans Pyzo, tracer le graphique P=f(V) \u00e0 partir de ces valeurs.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/graphe-Mariotte1.png\" alt=\"\" class=\"wp-image-432\" style=\"width:415px;height:357px\"\/><figcaption class=\"wp-element-caption\">P = f(V)<\/figcaption><\/figure>\n\n\n\n<pre title=\"Trac\u00e9 de la pression en fonction du volume dans une seringue\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">import matplotlib . pyplot as plt\n\nV= [18,24,30,34,40,50,60]\nP = [1139 ,857 ,693 ,610 ,522 ,420 ,352]\n\nplt.plot (V,P) # faire l ' essai avec plt.scatter (X,Y) \n\nplt.xlabel (\"V en mL\") \nplt.ylabel (\"P en Pa\") \n\nplt.title(\"P=f(V)\") \n\nplt.show()<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pour aller plus loin : Manipulons les listes !<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Fonctions de base :<\/h3>\n\n\n\n<figure class=\"wp-block-table aligncenter\"><table><tbody><tr><td><strong>liste = [ ]<\/strong><\/td><td>cr\u00e9e une liste vide nomm\u00e9e liste<\/td><\/tr><tr><td><strong>liste.append(\u00ab\u00a0cerises\u00a0\u00bb)<\/strong><\/td><td>ajoute l\u2019element&nbsp;<strong>cerises<\/strong>&nbsp;en queue de liste<\/td><\/tr><tr><td><strong>len(liste)<\/strong><\/td><td>permet de recuperer la longueur de liste (nombre d\u2019elements)<\/td><\/tr><tr><td><strong>liste[i]<\/strong><\/td><td>l\u2019element d\u2019indice i contenu dans liste.<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Fonctions de base pour les listes&nbsp;Attention : l\u2019indice commence \u00e0 0 ! ! !<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Petits tests pour manipuler une liste :<\/h3>\n\n\n\n<pre title=\"Petits tests pour manipuler une liste :\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">liste = [\"pommes\",\"poires\",\"bananes\"]\nprint ( liste [0]) # 1er element de la liste , indice 0\n\nprint (len(liste)) # 3 elements dans la liste\n\nprint (liste [3]) # message d'erreur car on est alles trop loin dans la numerotation , l'element d'indice 3 \n                   # correspond \u00e0 l'element de rang 4 qui n'existe pas !\nprint ( liste [2]) # ici on retrouve bien le troisieme element de la liste\n\nliste.append(\"cerises\")\nprint ( liste ) # un 4eme element a ete rajoute en queue de liste<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La boucle&nbsp;<strong><em>for &#8230; in<\/em><\/strong><\/h3>\n\n\n\n<p><br>Pour r\u00e9cup\u00e9rer successivement les \u00e9l\u00e9ments d\u2019une liste, on peut cr\u00e9er une boucle en utilisant la fonction :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong><em>for element in liste<\/em><\/strong><\/p>\n\n\n\n<p><br><strong>! ! ! Deux informations tr\u00e8s importantes pour l\u2019\u00e9criture d\u2019une boucle ! ! !<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ne pas oublier le <strong>\u00a0<em>:<\/em>\u00a0<\/strong> en fin de premi\u00e8re ligne pour d\u00e9marrer la boucle.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pour diff\u00e9rencier ces instructions de la suite du programme, apr\u00e8s cette premi\u00e8re ligne, on tape en d\u00e9but de boucle une tabulation, avec la touche\u00a0        <\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"394\" height=\"388\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/Capture-d\u2019\u00e9cran-2020-04-21-\u00e0-23.39.43-1.png\" alt=\"\" class=\"wp-image-438\" style=\"width:45px;height:44px\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/Capture-d\u2019\u00e9cran-2020-04-21-\u00e0-23.39.43-1.png 394w, https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/Capture-d\u2019\u00e9cran-2020-04-21-\u00e0-23.39.43-1-300x295.png 300w\" sizes=\"auto, (max-width: 394px) 100vw, 394px\" \/><\/figure>\n\n\n\n<p>En langage&nbsp;Python, cette&nbsp;indentation&nbsp;(ce d\u00e9calage) est indispensable !<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La fonction&nbsp;<strong><em>in range ()&nbsp;<\/em><\/strong>dans&nbsp;Python<\/h3>\n\n\n\n<p>La fonction&nbsp;<strong><em>in range&nbsp;(valeur d\u00e9but, valeur fin exclue)<\/em><\/strong> permet de g\u00e9n\u00e8rer une liste de nombres entiers incr\u00e9ment\u00e9s de +1 en partant de la valeur de d\u00e9but jusqu\u2019\u00e0 la valeur de fin (qui est <strong>exclue<\/strong> !).<br>Si on \u00e9crit un seul param\u00eatre, seule la valeur de fin (qui est exclue) est indiqu\u00e9e. Par d\u00e9faut la valeur de d\u00e9but est <strong>0<\/strong>.<\/p>\n\n\n\n<p>Ecrire ces lignes de codes dans l\u2019\u00e9diteur et ensuite les ex\u00e9cuter pour faire appara\u00eetre le r\u00e9sultat dans la console&nbsp;(<strong>CTR+SHIFT+E<\/strong>)&nbsp;:<\/p>\n\n\n\n<pre title=\"Fonction in range\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">a = range(5, 15, 2) # le 15 est exclu, on va de 2 en 2\nprint (list(a)) # pour afficher sous forme de liste \n\nfor i in range(0,4) :\n    print (i) # on voit bien que 4 est exclu de la liste. \n                    #Remarque : penser au decalage (indentation)\n\nfor i in range(4) :\n    print (i) # idem, la valeur de debut est 0 par defaut\n\nfor i in range(1,4) :\n    print (i) # on change la valeur de debut\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">R\u00e9aliser des op\u00e9rations math\u00e9matiques sur toutes les valeurs d\u2019une liste<\/h3>\n\n\n\n<p>On part ici d\u2019une liste : L= [1,2,3,4]<br>Pour effectuer une op\u00e9ration math\u00e9matique sur les \u00e9l\u00e9ments d\u2019une liste (par exemple tout multiplier par 2), il faut :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cr\u00e9er une liste vide, L2 = [ ]<\/li>\n\n\n\n<li>Parcourir tous les \u00e9l\u00e9ments de la liste L pour appliquer le calcul. La boucle\u00a0<strong><em>for i in range(len(L)) :\u00a0<\/em><\/strong>permet d\u2019y acc\u00e9der par l\u2019indice i de chaque \u00e9l\u00e9ment<\/li>\n\n\n\n<li>Dans la boucle, ajouter dans la liste L2 les valeurs calcul\u00e9es en \u00e9crivant L2.append(L[i]*2)<\/li>\n<\/ul>\n\n\n\n<p>Cela peut para\u00eetre un peu compliqu\u00e9 mais c\u2019est une technique qui est tr\u00e8s courante dans Python pour faire des calculs scientifiques.<br>C\u2019est en fait une question d\u2019habitude. Au bout d\u2019un certain temps de pratique, on fait \u00e7a machinalement &#8230; Donc pratiquons pour nous familiariser avec cette m\u00e9thode !<\/p>\n\n\n\n<pre title=\"Manipuler les \u00e9l\u00e9ments d'une liste avec la boucle for i in range\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">L = [1,2,3,4] # liste initiale\n\nL2 = [ ] # creation d'une nouvelle liste qui contiendra les doubles\n\nfor i in range (len(L)): # boucle pour parcourir les elements de L avec l'indice i\n    L2.append (L[i]*2) # pour chaque indice, l'element de L multiplie par 2 est ajoute a la liste L2\n\t\t\nprint (L2) # on sort de la boucle pour afficher le resultat final\n---------------------------------------------------------------------------------------------------------\n# La methode ci-dessous est plus simple et plus rapide car on ne passe pas \n# par les indices ... mais c'est une mauvaise habitude avec Python ! \n# Il vaut mieux travailler avec les indices de maniere generale.\n\nL = [1,2,3,4] # liste initiale\n\nL2 = [ ] # creation d'une nouvelle liste qui contiendra les doubles\n\nfor x in L : # on s'interesse directement aux valeurs des elements de la liste\n    L2.append (x*2) # chaque element de la liste L multiplie par 2 \n\t\t                 # est ajoute a la liste L2                \n                                 \nprint (L2) # on sort de la boucle pour afficher le resultat final\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Mise en application avec la loi de Boyle Mariotte :<\/h3>\n\n\n\n<p>A partir des mesures de P et de V effectu\u00e9es pr\u00e9c\u00e9demment, on souhaiterait mettre en \u00e9vidence la loi de Boyle-Marotte :<\/p>\n\n\n\n<p><strong>Loi de Boyle-Mariotte<\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-large is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>A temp\u00e9rature constante et pour une quantit\u00e9 de mati\u00e8re donn\u00e9e de gaz : PxV =cste<\/strong><\/p>\n\n\n\n<p><\/p>\n<\/blockquote>\n\n\n\n<p><strong>Exercice<\/strong> :&nbsp;Calculer les valeurs de P x V avec Python en parcourant les listes de valeurs de P et de V (gr\u00e2ce aux indices). <\/p>\n\n\n\n<p>Il faudrait donc utiliser la m\u00e9thode&nbsp;<strong><em>for i &#8230;in range (len())&nbsp;:<\/em><\/strong> pour cr\u00e9er une nouvelle liste de valeurs calcul\u00e9es, qu\u2019on appellera PV.<\/p>\n\n\n\n<p>On pourrait aussi tracer avec matplotlib un nouveau graphe repr\u00e9sentant PV en fonction de V.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"782\" src=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/graphe_Mariotte2-1024x782.png\" alt=\"\" class=\"wp-image-443\" style=\"width:518px;height:396px\" srcset=\"https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/graphe_Mariotte2-1024x782.png 1024w, https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/graphe_Mariotte2-300x229.png 300w, https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/graphe_Mariotte2-768x587.png 768w, https:\/\/labopothier.com\/wp-content\/uploads\/2020\/04\/graphe_Mariotte2.png 1119w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre title=\"Loi de Boyle Mariotte PV en fonction de V\" class=\"wp-block-code\"><code lang=\"python\" class=\"language-python line-numbers\">import matplotlib.pyplot as plt\n\nV = [18,24,30,34,40,50,60]\nP = [1139,857,693,610,522,420,352]\n\nPV = [ ] # creation d'une liste vide\n\n# calcul de PV a partir des differentes valeurs de P et de V\nfor i in range (len(V)):             \n    PV.append(P[i]*V[i]) \n\nprint ('Produit PxV :',PV)\n\nplt.plot(V,PV) # faire l'essai avec plt.scatter(X,Y)\n\nplt.xlabel (\"V en mL\")\n\nplt.ylabel (\"PxV en Pa.mL\")\n\nplt.ylim (0,25000) # on definit des limites pour l'axe des ordonnees\n\nplt.title (\" PxV=f(V)\")\n\nplt.show()\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Pr\u00e9sentation de Python Le langage Python (source : Eduscol) Python&nbsp;est un langage de programmation multiplateforme, c\u2019est-\u00e0-dire disponible sur plusieurs architectures (compatible PC, tablettes, smartphones, Raspberry &#8230;) et syst\u00e8mes d\u2019exploitation (Windows, Linux, Mac, Android&#8230;), il est gratuit, sous licence libre. Python&nbsp;est utilis\u00e9 dans le cadre de l\u2019enseignement d\u2019informatique, du secondaire au sup\u00e9rieur, mais aussi pour le [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":720,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9,7],"tags":[12,13],"class_list":["post-393","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-microcontroleurs-et-python","tag-astra-1586102354-via-wpmarmite","tag-menu-python-arduino"],"_links":{"self":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts\/393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/comments?post=393"}],"version-history":[{"count":24,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts\/393\/revisions"}],"predecessor-version":[{"id":1455,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/posts\/393\/revisions\/1455"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/media\/720"}],"wp:attachment":[{"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/media?parent=393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/categories?post=393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labopothier.com\/index.php\/wp-json\/wp\/v2\/tags?post=393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}