<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Language-De-Programmation | Dr. Goulu</title><link>https://drgoulu.com/tag/language-de-programmation/</link><atom:link href="https://drgoulu.com/tag/language-de-programmation/index.xml" rel="self" type="application/rss+xml"/><description>Language-De-Programmation</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Tue, 26 Nov 2019 00:00:00 +0000</lastBuildDate><image><url>https://drgoulu.com/media/icon_hu_8d57a97d564ea9bb.png</url><title>Language-De-Programmation</title><link>https://drgoulu.com/tag/language-de-programmation/</link></image><item><title>Qu'est-ce qu'un bon exemple de variable globale et de son utilisation en Python ?</title><link>https://drgoulu.com/2019/11/26/qu-est-ce-qu-un-bon-exemple-de-variable-globale-et-de-son-utilisation-en-python/</link><pubDate>Tue, 26 Nov 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/11/26/qu-est-ce-qu-un-bon-exemple-de-variable-globale-et-de-son-utilisation-en-python/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;il n&amp;rsquo;y a aucun bon exemple d&amp;rsquo;utilisation d&amp;rsquo;une variable globale dans aucun langage. Les variables globales, c&amp;rsquo;est le Mal.&lt;/p&gt;
&lt;p&gt;En Python, les quelques variables globales indispensables sont rangées dans un dict retourné par la fonction globals():&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;globals&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;__name__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__doc__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__package__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__loader__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;_frozen_importlib.BuiltinImporter&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__spec__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__annotations__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__builtins__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;builtins&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;built&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Comme vous le voyez, toutes les variables globales ont un nom encadré par des &lt;strong&gt;doubles&lt;/strong&gt; , ce qui signifie qu&amp;rsquo;elles sont privées et ne doivent pas être utilisées, sauf par des adultes consentants.&lt;/p&gt;
&lt;p&gt;quand vous faites&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;gt;&amp;gt;&amp;gt; a=1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;vous polluez cette pure beauté minimaliste:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;globals&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;__name__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__doc__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__package__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__loader__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;_frozen_importlib.BuiltinImporter&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__spec__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;None&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__annotations__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__builtins__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;builtins&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;built&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="ow"&gt;in&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;a&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;BEARK !&lt;/p&gt;</description></item><item><title>Pourquoi dit-on que Python est un langage facile à apprendre ?</title><link>https://drgoulu.com/2019/10/29/pourquoi-dit-on-que-python-est-un-langage-facile-a-apprendre/</link><pubDate>Tue, 29 Oct 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/10/29/pourquoi-dit-on-que-python-est-un-langage-facile-a-apprendre/</guid><description>&lt;p&gt;&lt;em&gt;Réponse publiée
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Parce qu&amp;rsquo;il l&amp;rsquo;est.&lt;/p&gt;
&lt;p&gt;Si vous ne connaissez aucun langage de programmation, Python vous permettra d&amp;rsquo;apprendre la programmation en acquérant de bons réflexes : indentation, variables locales, …&lt;/p&gt;
&lt;p&gt;Si vous connaissez d&amp;rsquo;autres langages de programmation, Python vous apparaîtra plus simple pour tout.&lt;/p&gt;
&lt;p&gt;Avec un peu de pratique vous verrez qu&amp;rsquo;il n&amp;rsquo;y a rien de superflu ou de verbeux en Python. Tout est aussi simple et clair qu&amp;rsquo;il doit l&amp;rsquo;être.&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;</description></item><item><title>Lisp est-il un langage de programmation facile ?</title><link>https://drgoulu.com/2019/05/29/lisp-est-il-un-langage-de-programmation-facile/</link><pubDate>Wed, 29 May 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/05/29/lisp-est-il-un-langage-de-programmation-facile/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Lots of Insipid and Stupid Parenthesis ? Non, pas facile du tout.&lt;/p&gt;
&lt;p&gt;Au début ça va, si on a un IDE qui formate ça bien avec des parenthèses multicolores, ce qui n&amp;rsquo;est pas le cas ci-dessous:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(defun factorial (n &amp;amp;optional (acc 1))
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#34;Calcule la factorielle de l&amp;#39;entier n.&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;(if (&amp;lt;= n 1)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; acc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; (factorial (- n 1) (* acc n))))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;et puis ça donne des
(un bout de browser en LISP trouvé sur GitHub) …&lt;/p&gt;
&lt;p&gt;Sérieusement : dès que j&amp;rsquo;ai appris LISP en 1986, je me suis dépêché d&amp;rsquo;apprendre Prolog pour ce qu&amp;rsquo;on appelait intelligence artificielle à l&amp;rsquo;époque., et aujourd&amp;rsquo;hui les bonnes idées de LISP (car il y en a quand même…) se retrouvent beaucoup plus clairement dans des langages comme Python&lt;/p&gt;
&lt;p&gt;voir
&lt;/p&gt;</description></item><item><title>Qu'est-ce qu'une classe en Python ?</title><link>https://drgoulu.com/2019/05/09/qu-est-ce-qu-une-classe-en-python/</link><pubDate>Thu, 09 May 2019 00:00:00 +0000</pubDate><guid>https://drgoulu.com/2019/05/09/qu-est-ce-qu-une-classe-en-python/</guid><description>&lt;p&gt;&lt;em&gt;Article initialement publié sur
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;En première approximation, la même chose qu’une
dans n’importe quel autre langage.&lt;/p&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;Les classes sont un moyen de réunir des données et des fonctionnalités. Créer une nouvelle classe crée un nouveau &lt;em&gt;type&lt;/em&gt; d&amp;rsquo;objet et ainsi de nouvelles &lt;em&gt;instances&lt;/em&gt; de ce type peuvent être construites. Chaque instance peut avoir ses propres attributs, ce qui définit son état. Une instance peut aussi avoir des méthodes (définies par la classe de l&amp;rsquo;instance) pour modifier son état.
(
)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;En deuxième approximation, c’est plus subtil et plus puissant :
, on peut définir des
, des
…&lt;/p&gt;</description></item></channel></rss>