{"id":857,"date":"2019-10-26T10:57:46","date_gmt":"2019-10-26T09:57:46","guid":{"rendered":"http:\/\/wollef.org\/?p=857"},"modified":"2019-10-26T10:57:46","modified_gmt":"2019-10-26T09:57:46","slug":"la-programmation-du-raspberry-pi-en-python","status":"publish","type":"post","link":"https:\/\/wollef.org\/blog\/la-programmation-du-raspberry-pi-en-python\/","title":{"rendered":"Raspberry Cars &#8211; La programmation du Raspberry Pi en Python"},"content":{"rendered":"<h1>Le langage Python<\/h1>\n<p>Le Raspberry Pi a aussi \u00e9t\u00e9 con\u00e7u pour permettre d\u2019apprendre la programmation.<\/p>\n<p>Le langage principal pour programmer sur Raspberry Pi est Python.<\/p>\n<p>J\u2019ai d\u00fb voir comment mettre en place mon environnement de programmation en Python sur\u00a0mon Raspberry Pi pour r\u00e9aliser mon projet.<\/p>\n<p>Python est un langage de programmation qui est utilis\u00e9 dans diff\u00e9rents domaines (application, web, \u2026) Il est souvent compar\u00e9 \u00e0 Perl, Ruby ou encore Java. D\u2019apr\u00e8s le site Raspberry Pi, les principaux points forts de Python sont\u00a0:<\/p>\n<ul>\n<li>Langage adapt\u00e9 aux d\u00e9butants (comme moi\u00a0\ud83d\ude09 )<\/li>\n<li>Les grandes possibilit\u00e9s du langage. Il va aussi bien \u00eatre adapt\u00e9 aux petits projets qu\u2019aux gros projets<\/li>\n<li>Peut-\u00eatre utilis\u00e9e sur diff\u00e9rents types d\u2019ordinateurs<\/li>\n<li>Stable, langage qui est assez vieux et qui a fait ses preuves<\/li>\n<li>Simple \u00e0 comprendre<\/li>\n<\/ul>\n<h1>L&#8217;environnement de travail Python sur le Raspberry Pi<\/h1>\n<p>Pour programmer en Python sur Raspberry Pi, on peut lancer le programme Thonny Python IDE.<\/p>\n<p>Voici \u00e0 quoi ressemble l\u2019IDE avec mon premier programme d\u2019exemple (d\u00e9crit dans la partie suivante).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-860\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/10\/python-raspberry-300x221.png\" alt=\"\" width=\"490\" height=\"361\" \/><\/p>\n<h1>Mes premiers essais en python<\/h1>\n<p>Pour d\u00e9couvrir Python j\u2019ai essay\u00e9 de r\u00e9\u00e9crire en python les programmes d\u2019exemples que j\u2019ai cod\u00e9<a href=\"http:\/\/wollef.org\/fr\/a-la-decouverte-de-java\/\">\u00a0quand j&#8217;ai d\u00e9couvert java<\/a> lors de mon travail personnel sur les <strong>langages de programmation<\/strong>\u00a0: ces exemples \u00e9taient l&#8217;\u00e9criture en <em>java<\/em> des <a href=\"http:\/\/wollef.org\/fr\/histoire-de-la-programmation-24-les-langages-historiques\/\">exemple de programmes Cobol, Fortran<\/a>\u00a0que j&#8217;avais lus quand j&#8217;avais regard\u00e9\u00a0&#8220;histoire des langages de programmation&#8221;.<\/p>\n<h2>Multiplication de deux nombres<\/h2>\n<p>Le premier programme faisait la multiplication de deux nombres\u00a0;<\/p>\n<p>Voici le r\u00e9sultat en python.<\/p>\n<pre><code># lit les nombres\ninput1 = input(\"Enter first number:\" );\nnum1 = int(input1)\ninput2 = input(\"Enter Second number:\");\nnum2 = int(input2)\n\n# \u00e7a fait le calcul\nresult = num1 * num2;\n\n# affiche le resultat\nprint(\"result is = \" , result);<\/code><\/pre>\n<p>Comme diff\u00e9rence avec Java, on voit que\u00a0:<\/p>\n<ul>\n<li>le programme est plus petit \u00e0 \u00e9crire.<\/li>\n<li>On n\u2019a pas besoin de dire le type des variables<\/li>\n<li>Il est plus facile d\u2019afficher les r\u00e9sultats ou de demander des saisies de l\u2019utilisateur<\/li>\n<li>Pour les commentaires on utilise \u00ab\u00a0#\u00a0\u00bb \u00e0 la place de \u00ab\u00a0\/\/\u00a0\u00bb<\/li>\n<li>On a d\u00fb faire attention \u00e0 convertir la saisie (input1) en nombre (num1)<\/li>\n<\/ul>\n<h2>PGCD\u00a0de deux nombres<\/h2>\n<p>Le second programme d\u00e9finissait une fonction qui pouvait \u00eatre r\u00e9utilis\u00e9e. La fonction calculait le PGCD de deux nombres. Voici ce que cela donne en python\u00a0:<\/p>\n<pre><code>def calculePGCD(na,nb):\n   ia = na\n   ib = nb\n\n   while ib !=0 :\n      itemp = ia\n      ia = ib\n      ib = itemp % ib\n   return ia\n\na = 55\nb = 33\nresultat =calculePGCD(a,b)\nprint(\"le pgcd de\",a,\"et\",b,\"est\", resultat)\n<\/code><\/pre>\n<p>Comme diff\u00e9rence avec Java\u00a0:<\/p>\n<ul>\n<li>Pour utiliser une fonction on utilise \u00ab\u00a0def\u00bb<\/li>\n<li>Il faut faire attention aux indentations\u00a0; Python se sert des indentations pour structurer le programme (int\u00e9rieur de la fonction, int\u00e9rieur de la boucle while). En Java on utilisait les \u00ab\u00a0{ }\u00a0\u00bb<\/li>\n<li>Ici aussi, le code est tr\u00e8s compact \u00e0 \u00e9crire.<\/li>\n<\/ul>\n<h2>Reduction de fractions<\/h2>\n<p>Le troisi\u00e8me programme utilisait la fonction PGCD pour r\u00e9duire une fraction. Voici ce que cela donne en Python\u00a0:<\/p>\n<pre><code>#lit les nombres.\ninputNumerateur = input (\"Entre le num\u00e9rateur:\")\nnumerateur = int(inputNumerateur)\ninputDenominateur = input (\"Entre le d\u00e9nominateur:\")\ndenominateur = int(inputDenominateur)\nprint (\"la saisie est :\",numerateur,\"\/\",denominateur)\n\n# calcul du pgcd en utilisant le programme d'exemple\npgcd = calculePGCD (numerateur , denominateur)\n\n#calcul du nouveu num\u00e9rateur et du nouveau d\u00e9nominateur\nnumerateur = (int) (numerateur \/ pgcd)\ndenominateur = (int) (denominateur \/ pgcd)\n\n# affiche le resultat\nprint (\"le resultat est :\",numerateur,\"\/\",denominateur)\n<\/code><\/pre>\n<p>Comme point particulier, on a d\u00fb faire attention \u00e0 ce que le r\u00e9sultat des nouveaux num\u00e9rateurs et d\u00e9nominateurs soit bien un entier (par d\u00e9faut, on obtenait un nombre d\u00e9cimal).<\/p>\n<h1>Conclusion<\/h1>\n<p>Python a l\u2019air plus facile \u00e0 manipuler pour apprendre que ce que j\u2019avais d\u00fb faire en java (par exemple pour le jeu Pong du Tutorial que j\u2019avais repris).<\/p>\n<p><em>Je vais maintenant devoir voir comment utiliser Python pour les diff\u00e9rentes t\u00e2ches que je dois faire pour le projet (lire les capteurs, envoyer les donn\u00e9es \u00e0 Salesforce, etc\u2026).<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le langage Python Le Raspberry Pi a aussi \u00e9t\u00e9 con\u00e7u pour permettre d\u2019apprendre la programmation. Le langage principal pour programmer sur Raspberry Pi est Python. J\u2019ai d\u00fb voir comment mettre en place mon environnement de programmation en Python sur\u00a0mon Raspberry Pi pour r\u00e9aliser mon projet. Python est un langage de programmation qui est utilis\u00e9 dans <a class=\"read-more\" href=\"https:\/\/wollef.org\/blog\/la-programmation-du-raspberry-pi-en-python\/\">Continue Reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31,16,17],"tags":[],"class_list":["post-857","post","type-post","status-publish","format-standard","hentry","category-raspberry-cars","category-python","category-raspberry-pi"],"_links":{"self":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/comments?post=857"}],"version-history":[{"count":0,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/857\/revisions"}],"wp:attachment":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/media?parent=857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/categories?post=857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/tags?post=857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}