Feat(PPS): Ajout d'une partie sur les fonctions

This commit is contained in:
Bertrand Benjamin 2018-12-03 21:53:08 +01:00
parent 53fb2a81b0
commit 7a7bfdd00d
2 changed files with 647 additions and 252 deletions

View File

@ -13123,9 +13123,8 @@ div#notebook {
<li><a href="#G&amp;#233;n&amp;#233;rateur-d&#39;excuses">Générateur d'excuses</a></li>
<li><a href="#Magic-8-ball">Magic 8 ball</a></li>
<li><a href="#Deviner-un-nombre">Deviner un nombre</a></li>
<li><a href="#Pierre-Feuille-Ciseau">Pierre feuille ciseau</a></li>
<li><a href="#Deviner-un-nombre">Deviner un nombre (améliorations)</a></li>
<li><a href="#Generateur-de-simleys">Generateur de Smiley</a></li>
<li><a href="#Pierre-Feuille-Ciseau">Pierre feuille ciseau</a></li>
<li><a href="#Chiffrement-de-Cesar">Chiffrement de Cesar</a></li>
<li><a href="#Polynome-du-2nd-degre">Polynome du 2nd degré</a></li>
</ul>
@ -13136,7 +13135,7 @@ div#notebook {
<li><a href="#Condition-if">Les conditions if</a></li>
<li><a href="#Boucles-for">Les boucles for</a></li>
<li><a href="#Boucles-while">Les boucles while</a></li>
<li><a href="#Fonction">Les fonctions</a></li>
<li><a href="#Fonctions">Les fonctions</a></li>
</ul>
<hr>
<p>Ressouces Python</p>
@ -13453,9 +13452,10 @@ Je suis innocent (monsieur)!
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<ul>
<li>Modifier les lignes précédentes pour se présenter <strong>Bonjour, je m'appelle (Bob)</strong>.</li>
<li>Modifier les lignes précédentes pour se présenter <strong>Bonjour, je m'appelle Bob</strong><strong>Bob</strong> est un nom stocké dans une variable <strong>nom</strong>.</li>
</ul>
<p>Pour demander quelque chose à l'utilisateur, on utilise la fonction <code>input</code></p>
<p>Pour demander quelque chose à l'utilisateur, on utilise la fonction <code>input</code>.</p>
<p>Dans le programme suivant, l'ordinateur pose une question (<strong>Nom du coupable (masculin)?</strong>), attend que l'utilisateur donne une réponse puis réutilise cette réponse pour faire une phrase (<strong>C'est pas moi! c'est ....</strong>)</p>
</div>
</div>
@ -13483,8 +13483,8 @@ Je suis innocent (monsieur)!
<div class="output_subarea output_stream output_stdout output_text">
<pre>Nom du coupable (masculin)? bob
C&#39;est pas moi! C&#39;est bob
<pre>Nom du coupable (masculin)? Bob
C&#39;est pas moi! C&#39;est Bob
</pre>
</div>
</div>
@ -13497,7 +13497,10 @@ C&#39;est pas moi! C&#39;est bob
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<ul>
<li>Finir d'écrire le programme qui permettra de générer une excuse</li>
<li>Modifier les lignes précédentes pour que l'ordinateur demande un verbe d'action puis construit une phrase utilisant ce verbe d'action.</li>
</ul>
<h3 id="Proposition-d'&#233;tapes">Proposition d'&#233;tapes<a class="anchor-link" href="#Proposition-d'&#233;tapes">&#182;</a></h3><ul>
<li>Finir d'écrire le programme qui demande des informations puis qui génére une excuse</li>
</ul>
</div>
@ -13578,7 +13581,7 @@ C&#39;est pas moi! C&#39;est bob
<div class="output_text output_subarea output_execute_result">
<pre>&#39;reponse 1&#39;</pre>
<pre>&#39;reponse 2&#39;</pre>
</div>
</div>
@ -13590,8 +13593,9 @@ C&#39;est pas moi! C&#39;est bob
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<ul>
<li>En réutilisant la fonction <strong>input</strong> vue précédement, écrire un programme qui propose de poser une question et qui lui apporte une réponse!</li>
<h3 id="Proposition-d'&#233;tapes">Proposition d'&#233;tapes<a class="anchor-link" href="#Proposition-d'&#233;tapes">&#182;</a></h3><ul>
<li>L'ordinateur demande une question existentielle.</li>
<li>L'ordinateur apporte une réponse aléatoire choisie parmis plusieurs réponses</li>
</ul>
</div>
@ -13601,6 +13605,9 @@ C&#39;est pas moi! C&#39;est bob
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Deviner-un-nombre">Deviner un nombre<a class="anchor-link" href="#Deviner-un-nombre">&#182;</a></h2><p>Nous allons maintenant écrire un programme qui va chercher à faire deviner à l'utilisateur un nombre choisi aléatoirement par Python.</p>
<p>L'ordinateur choisit un nombre aléatoire entre 1 et 20.
L'utilisateur propose un nombre.
L'ordinateur répond si le nombre proposé est plus grand, plus petit ou égal au nombre choisi.</p>
<p>Pour faire choisir un nombre entier à Python, on utilise la fonction <code>randint(min,max)</code> (<code>randint</code> signifie random integer = entier aléatoire)</p>
</div>
@ -13629,7 +13636,7 @@ C&#39;est pas moi! C&#39;est bob
<div class="output_subarea output_stream output_stdout output_text">
<pre>2
<pre>15
</pre>
</div>
</div>
@ -13642,97 +13649,19 @@ C&#39;est pas moi! C&#39;est bob
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Faites executer plusieurs fois cette commande pour remarquer qu'elle ne retourne pas toujours le même résultat.</p>
<ul>
<h3 id="Propositions-d'&#233;tapes">Propositions d'&#233;tapes<a class="anchor-link" href="#Propositions-d'&#233;tapes">&#182;</a></h3><ul>
<li><p>Completer votre programme pour demander une réponse à l'utilisateur <em>(utilisez <code>int(input("question"))</code> plutôt que <code>input("question")</code> pour que la réponse soit transformée en entier)</em></p>
</li>
<li><p>Regarder la section sur <a href="#Condition-if">Condition if</a> pour adapter l'exemple et savoir lequel du nombre choisi par l'ordinateur ou de l'utilisateur est le plus grand.</p>
</li>
</ul>
<ul>
<li><p>Écrire le programme final qui fait choisir un nombre à l'ordinateur, qui demande un nombre à l'utilisateur puis qui dit si le nombre donné par l'utilisateur est plus grand ou plus petit.</p>
</li>
<li><p>Pour améliorer notre programme, il faudrait que l'utilisateur puisse rententer de deviner le nombre. Regardez la section <a href="#Boucle-while">Boucle while</a> pour améliorer votre programme.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Pierre-Feuille-Ciseau">Pierre Feuille Ciseau<a class="anchor-link" href="#Pierre-Feuille-Ciseau">&#182;</a></h2><p>Vous devez connaître le jeu Pierre-Feuille-Ciseau. Deux adversaires s'affrontent choissicent en même temps Pierre, Feuille ou Ciseau.</p>
<p>Pierre gagne contre ciseau qui gagne contre feuille qui gagne contre pierre...</p>
<p>Nous allons écrire un jeu qui fera s'affronter l'utilisateur contre l'ordinateur.</p>
<h3 id="Choix-du-joueur-et-choix-de-l'ordinateur">Choix du joueur et choix de l'ordinateur<a class="anchor-link" href="#Choix-du-joueur-et-choix-de-l'ordinateur">&#182;</a></h3><ul>
<li>Écrire un programme qui demande le choix de l'utilisateur</li>
<li>Completer ce programme pour que l'ordinateur choisisse parmi les 3 choix</li>
</ul>
<h3 id="Comparaison-des-r&#233;sultats">Comparaison des r&#233;sultats<a class="anchor-link" href="#Comparaison-des-r&#233;sultats">&#182;</a></h3><ul>
<li>En utilisant les <a href="#Condition-if">conditions if</a> comparer les deux choix pour determiner qui est le vaincueur.</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Deviner-un-nombre-(am&#233;lioration)">Deviner un nombre (am&#233;lioration)<a class="anchor-link" href="#Deviner-un-nombre-(am&#233;lioration)">&#182;</a></h2><p>Reprenez votre programme qui fait deviner à l'utilisateur un nombre choisi par l'ordinateur. Le soucis de ce programme est que nous n'avons qu'un essai ce qui n'est pas très pratique pour trouver le nombre...</p>
<p>Nous allons améliorer ce programme laisser plus de chance à l'utilisateur. Pour cela nous allons faire une boucle <code>while</code> (tant que en français).</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a</span> <span class="o">=</span> <span class="mi">11</span>
<span class="k">while</span> <span class="n">a</span> <span class="o">&lt;</span> <span class="mi">20</span><span class="p">:</span> <span class="c1">#tant que a est plus petit que 20</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;un tour&quot;</span><span class="p">)</span>
<span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="o">+</span> <span class="mi">1</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Fini! Et a vaut &quot;</span><span class="p">,</span> <span class="n">a</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>un tour
un tour
un tour
un tour
un tour
un tour
un tour
un tour
un tour
Fini! Et a vaut 20
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>On peut aussi créer une variable <code>aPasTrouve = True</code> (True en anglais signifie vrai) et dès que l'utilisateur a trouvé la bonne valeur, on change <code>aPasTrouve = False</code> (False en anglais signifie faux).</p>
<ul>
<li>Écrire cette amélioration du programme.</li>
<li>Améliorer votre programme, en comptant le nombre de tentatives.</li>
<li><p>On pourra continuer à l'améliorer en comptant et en annonçant le nombre de tentative à la fin.</p>
</li>
</ul>
</div>
@ -13749,7 +13678,7 @@ Fini! Et a vaut 20
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">LISTE_CHAPEAU</span> <span class="o">=</span> <span class="p">[</span><span class="sa">u</span><span class="s2">&quot; </span><span class="se">\n</span><span class="s2"> _===_&quot;</span><span class="p">,</span> <span class="s2">&quot; ___ </span><span class="se">\n</span><span class="s2"> .....&quot;</span><span class="p">,</span> <span class="s2">&quot; _ </span><span class="se">\n</span><span class="s2"> /_\ &quot;</span><span class="p">,</span> <span class="s2">&quot; ___ </span><span class="se">\n</span><span class="s2"> (_*_)&quot;</span><span class="p">]</span>
@ -13781,6 +13710,30 @@ Fini! Et a vaut 20
(" ") </code></pre>
</li>
</ul>
<h3 id="Propositions-d'&#233;tapes">Propositions d'&#233;tapes<a class="anchor-link" href="#Propositions-d'&#233;tapes">&#182;</a></h3><ul>
<li>Recopier les listes de parties</li>
<li>Choisir aléatoirement un chapeau</li>
<li>Construire aléatoirement une tête '(oeil nez oeil)'</li>
<li>Construire aléatoirement les autres parties du corps</li>
<li>Construire tout le smiley</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Pierre-Feuille-Ciseau">Pierre Feuille Ciseau<a class="anchor-link" href="#Pierre-Feuille-Ciseau">&#182;</a></h2><p>Vous devez connaître le jeu Pierre-Feuille-Ciseau. Deux adversaires s'affrontent choissicent en même temps Pierre, Feuille ou Ciseau.</p>
<p>Pierre gagne contre ciseau qui gagne contre feuille qui gagne contre pierre...</p>
<p>Nous allons écrire un jeu qui fera s'affronter l'utilisateur contre l'ordinateur.</p>
<h3 id="Choix-du-joueur-et-choix-de-l'ordinateur">Choix du joueur et choix de l'ordinateur<a class="anchor-link" href="#Choix-du-joueur-et-choix-de-l'ordinateur">&#182;</a></h3><ul>
<li>Écrire un programme qui demande le choix de l'utilisateur</li>
<li>Completer ce programme pour que l'ordinateur choisisse parmi les 3 choix</li>
</ul>
<h3 id="Comparaison-des-r&#233;sultats">Comparaison des r&#233;sultats<a class="anchor-link" href="#Comparaison-des-r&#233;sultats">&#182;</a></h3><ul>
<li>En utilisant les <a href="#Condition-if">conditions if</a> comparer les deux choix pour determiner qui est le vaincueur.</li>
</ul>
</div>
</div>
@ -13845,7 +13798,7 @@ Fini! Et a vaut 20
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="prompt input_prompt">In&nbsp;[14]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">codage_a</span> <span class="o">=</span> <span class="nb">ord</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)</span>
@ -13891,7 +13844,7 @@ Fini! Et a vaut 20
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">lettre_100</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
@ -13935,7 +13888,7 @@ Fini! Et a vaut 20
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">message</span> <span class="o">=</span> <span class="s2">&quot;Bonjour&quot;</span>
@ -13987,7 +13940,7 @@ la lettre r est transformée en le nombre 114
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="prompt input_prompt">In&nbsp;[17]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">message_decale</span> <span class="o">=</span> <span class="p">[]</span>
@ -14031,7 +13984,7 @@ la lettre r est transformée en le nombre 114
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="prompt input_prompt">In&nbsp;[18]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">message_chiffre</span> <span class="o">=</span> <span class="p">[]</span>
@ -14073,7 +14026,7 @@ la lettre r est transformée en le nombre 114
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="prompt input_prompt">In&nbsp;[19]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">message_chiffre</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">message_chiffre</span><span class="p">)</span> <span class="c1"># join en anglais signifie joindre</span>
@ -14127,7 +14080,7 @@ la lettre r est transformée en le nombre 114
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[21]:</div>
<div class="prompt input_prompt">In&nbsp;[20]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Comment t&#39;appelles tu?&quot;</span><span class="p">)</span>
@ -14150,8 +14103,8 @@ la lettre r est transformée en le nombre 114
<div class="output_subarea output_stream output_stdout output_text">
<pre>Comment t&#39;appelles tu?
bob
Ah! Tu t&#39;appelles bob
Ivan
Ah! Tu t&#39;appelles Ivan
</pre>
</div>
</div>
@ -14178,17 +14131,17 @@ Ah! Tu t&#39;appelles bob
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[22]:</div>
<div class="prompt input_prompt">In&nbsp;[21]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">b</span> <span class="o">=</span> <span class="mi">3</span>
<span class="k">if</span> <span class="n">a</span> <span class="o">&gt;</span> <span class="n">b</span><span class="p">:</span>
<span class="k">if</span> <span class="n">a</span> <span class="o">&gt;</span> <span class="n">b</span><span class="p">:</span> <span class="c1"># Si</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;a plus grand que b&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">a</span> <span class="o">==</span> <span class="n">b</span><span class="p">:</span>
<span class="k">elif</span> <span class="n">a</span> <span class="o">==</span> <span class="n">b</span><span class="p">:</span> <span class="c1"># Sinon si</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;a est égal à b&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">else</span><span class="p">:</span> <span class="c1"># Sinon</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;a est plus petit que b&quot;</span><span class="p">)</span>
</pre></div>
@ -14228,7 +14181,7 @@ Ah! Tu t&#39;appelles bob
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="prompt input_prompt">In&nbsp;[22]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
@ -14280,7 +14233,7 @@ Finalement a vaut 502
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[24]:</div>
<div class="prompt input_prompt">In&nbsp;[23]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">phrase</span> <span class="o">=</span> <span class="s2">&quot;boujour toi&quot;</span>
@ -14337,7 +14290,7 @@ Toutes les lettres ont été énumérées
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="prompt input_prompt">In&nbsp;[24]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">liste</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;premier element&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="s2">&quot;coucou&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;aie&quot;</span><span class="p">,</span> <span class="mi">0</span><span class="p">]</span>
@ -14388,13 +14341,13 @@ Tout a été énuméré
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="prompt input_prompt">In&nbsp;[25]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">u</span> <span class="o">=</span> <span class="mi">2</span>
<span class="k">while</span> <span class="n">u</span> <span class="o">&lt;</span> <span class="mi">19</span><span class="p">:</span>
<span class="n">u</span> <span class="o">=</span> <span class="n">u</span> <span class="o">+</span> <span class="mi">3</span>
<span class="nb">print</span><span class="p">(</span><span class="n">u</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;u vaut &quot;</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;u a depassé 50 et vaut&quot;</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
</pre></div>
@ -14412,12 +14365,12 @@ Tout a été énuméré
<div class="output_subarea output_stream output_stdout output_text">
<pre>5
8
11
14
17
20
<pre>u vaut 5
u vaut 8
u vaut 11
u vaut 14
u vaut 17
u vaut 20
u a depassé 50 et vaut 20
</pre>
</div>
@ -14437,7 +14390,7 @@ u a depassé 50 et vaut 20
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[27]:</div>
<div class="prompt input_prompt">In&nbsp;[26]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">aPasTrouve</span> <span class="o">=</span> <span class="kc">True</span> <span class="c1"># True signifie vrai en anglais.</span>
@ -14467,6 +14420,15 @@ u a depassé 50 et vaut 20
<div class="output_subarea output_stream output_stdout output_text">
<pre>Quelle est la couleur du cheval blanc d&#39;Henri 4?
bleu
Non! Recommence!
Quelle est la couleur du cheval blanc d&#39;Henri 4?
vert
Non! Recommence!
Quelle est la couleur du cheval blanc d&#39;Henri 4?
jaune
Non! Recommence!
Quelle est la couleur du cheval blanc d&#39;Henri 4?
blanc
Bravo!
Voila tu as réussi!
@ -14477,6 +14439,268 @@ Voila tu as réussi!
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Fonctions">Fonctions<a class="anchor-link" href="#Fonctions">&#182;</a></h2><p>Une fonction est un morceau de programme qui évitera de coder plusieurs fois la même chose. Quand on programme on dit souvent <code>Si c'est la 3e fois que l'on écrit ces lignes c'est qu'il faut en faire une fonction</code>.</p>
<p>Voici différentes utilisation de fonctions.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Fonctions-num&#233;riques">Fonctions num&#233;riques<a class="anchor-link" href="#Fonctions-num&#233;riques">&#182;</a></h3><p>En math, on utilise les fonctions pour décrire les transformations (de nombres le plus souvent).</p>
<p>Par exemple:
$$ f:x \mapsto 3x + 2$$
Cette fonction $f$ prend un nombre, le multiplie par 3 puis ajoute 2. On pourra la coder de la façon suivante:</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[27]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">f</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="k">return</span> <span class="mi">3</span><span class="o">*</span><span class="n">x</span><span class="o">+</span><span class="mi">2</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>On vient de coder cette fonction, on peut ensuite l'utiliser</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[28]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="p">(</span><span class="mi">4</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;L&#39;image de 2.5 par la fonction f est &quot;</span><span class="p">,</span> <span class="n">f</span><span class="p">(</span><span class="mf">2.5</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;f(-2) = &quot;</span><span class="p">,</span> <span class="n">f</span><span class="p">(</span><span class="o">-</span><span class="mi">2</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>14
L&#39;image de 2.5 par la fonction f est 9.5
f(-2) = -4
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Au collège, on a vu les "programmes de calculs". Ils peuvent eux aussi être codé avec des fonctions.</p>
<ul>
<li>Choisir un nombre</li>
<li>Ajouter 5</li>
<li>Diviser par 10</li>
</ul>
<p>Se code de la façon suivante:</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[29]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">programme</span><span class="p">(</span><span class="n">nombre</span><span class="p">):</span>
<span class="n">reponse</span> <span class="o">=</span> <span class="n">nombre</span> <span class="o">+</span> <span class="mi">5</span>
<span class="n">reponse</span> <span class="o">=</span> <span class="n">reponse</span> <span class="o">/</span> <span class="mi">10</span>
<span class="k">return</span> <span class="n">reponse</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[30]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">programme</span><span class="p">(</span><span class="mi">60</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>6.5
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="D'autres-fonctions">D'autres fonctions<a class="anchor-link" href="#D'autres-fonctions">&#182;</a></h3><p>Les fonctions numériques sont très utilisées en math mais en programmation, on manipule beaucoup d'autres types de fonctions.</p>
<p>On pourrait vouloir transformer un texte en un titre entouré de symboles <code>#</code>.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[31]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">entoure</span><span class="p">(</span><span class="n">titre</span><span class="p">):</span>
<span class="k">return</span> <span class="s1">&#39;##### &#39;</span> <span class="o">+</span> <span class="n">titre</span> <span class="o">+</span> <span class="s1">&#39; #####&#39;</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[32]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">entoure</span><span class="p">(</span><span class="s1">&#39;Mon titre&#39;</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="n">entoure</span><span class="p">(</span><span class="s2">&quot;L&#39;histoire du petit chaperon rouge&quot;</span><span class="p">))</span>
<span class="nb">print</span><span class="p">(</span><span class="n">entoure</span><span class="p">(</span><span class="s1">&#39;Fin&#39;</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>##### Mon titre #####
##### L&#39;histoire du petit chaperon rouge #####
##### Fin #####
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered"><div class="prompt input_prompt">
</div><div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>On peut même mettre un autre argument (en plus de <code>titre</code>) pour entourer avec autre chose que <code>#</code>.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[33]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">entoure</span><span class="p">(</span><span class="n">texte</span><span class="p">,</span> <span class="n">symbole</span><span class="p">):</span>
<span class="k">return</span> <span class="n">symbole</span><span class="o">*</span><span class="mi">4</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="n">texte</span> <span class="o">+</span> <span class="s1">&#39; &#39;</span> <span class="o">+</span> <span class="n">symbole</span><span class="o">*</span><span class="mi">4</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[34]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="nb">print</span><span class="p">(</span><span class="n">entoure</span><span class="p">(</span><span class="s1">&#39;La belle au bois dormant&#39;</span><span class="p">,</span> <span class="s1">&#39;-&#39;</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>---- La belle au bois dormant ----
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -14,9 +14,8 @@
"* [Générateur d'excuses](#G&#233;n&#233;rateur-d'excuses)\n",
"* [Magic 8 ball](#Magic-8-ball)\n",
"* [Deviner un nombre](#Deviner-un-nombre)\n",
"* [Pierre feuille ciseau](#Pierre-Feuille-Ciseau)\n",
"* [Deviner un nombre (améliorations)](#Deviner-un-nombre)\n",
"* [Generateur de Smiley](#Generateur-de-simleys)\n",
"* [Pierre feuille ciseau](#Pierre-Feuille-Ciseau)\n",
"* [Chiffrement de Cesar](#Chiffrement-de-Cesar)\n",
"* [Polynome du 2nd degré](#Polynome-du-2nd-degre)\n",
"-----------\n",
@ -25,7 +24,7 @@
"* [Les conditions if](#Condition-if)\n",
"* [Les boucles for](#Boucles-for)\n",
"* [Les boucles while](#Boucles-while)\n",
"* [Les fonctions](#Fonction)\n",
"* [Les fonctions](#Fonctions)\n",
"------------\n",
"Ressouces Python\n",
"* [site du zero](http://openclassrooms.com/courses/apprenez-a-programmer-en-python) (cours en ligne)\n",
@ -258,9 +257,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"* Modifier les lignes précédentes pour se présenter **Bonjour, je m'appelle (Bob)**.\n",
"* Modifier les lignes précédentes pour se présenter **Bonjour, je m'appelle Bob** où **Bob** est un nom stocké dans une variable **nom**.\n",
"\n",
"Pour demander quelque chose à l'utilisateur, on utilise la fonction `input`"
"Pour demander quelque chose à l'utilisateur, on utilise la fonction `input`.\n",
"\n",
"Dans le programme suivant, l'ordinateur pose une question (**Nom du coupable (masculin)?**), attend que l'utilisateur donne une réponse puis réutilise cette réponse pour faire une phrase (**C'est pas moi! c'est ....**)"
]
},
{
@ -272,8 +273,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Nom du coupable (masculin)? bob\n",
"C'est pas moi! C'est bob\n"
"Nom du coupable (masculin)? Bob\n",
"C'est pas moi! C'est Bob\n"
]
}
],
@ -286,7 +287,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"* Finir d'écrire le programme qui permettra de générer une excuse"
"* Modifier les lignes précédentes pour que l'ordinateur demande un verbe d'action puis construit une phrase utilisant ce verbe d'action.\n",
"\n",
"### Proposition d'étapes\n",
"\n",
"* Finir d'écrire le programme qui demande des informations puis qui génére une excuse"
]
},
{
@ -340,7 +345,7 @@
{
"data": {
"text/plain": [
"'reponse 1'"
"'reponse 2'"
]
},
"execution_count": 11,
@ -356,7 +361,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"* En réutilisant la fonction **input** vue précédement, écrire un programme qui propose de poser une question et qui lui apporte une réponse!"
"### Proposition d'étapes\n",
"\n",
"* L'ordinateur demande une question existentielle.\n",
"* L'ordinateur apporte une réponse aléatoire choisie parmis plusieurs réponses"
]
},
{
@ -367,6 +375,10 @@
"\n",
"Nous allons maintenant écrire un programme qui va chercher à faire deviner à l'utilisateur un nombre choisi aléatoirement par Python.\n",
"\n",
"L'ordinateur choisit un nombre aléatoire entre 1 et 20.\n",
"L'utilisateur propose un nombre.\n",
"L'ordinateur répond si le nombre proposé est plus grand, plus petit ou égal au nombre choisi.\n",
"\n",
"Pour faire choisir un nombre entier à Python, on utilise la fonction `randint(min,max)` (`randint` signifie random integer = entier aléatoire)"
]
},
@ -379,7 +391,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"2\n"
"15\n"
]
}
],
@ -394,13 +406,70 @@
"source": [
"Faites executer plusieurs fois cette commande pour remarquer qu'elle ne retourne pas toujours le même résultat.\n",
"\n",
"### Propositions d'étapes\n",
"\n",
"* Completer votre programme pour demander une réponse à l'utilisateur *(utilisez `int(input(\"question\"))` plutôt que `input(\"question\")` pour que la réponse soit transformée en entier)*\n",
"\n",
"* Regarder la section sur [Condition if](#Condition-if) pour adapter l'exemple et savoir lequel du nombre choisi par l'ordinateur ou de l'utilisateur est le plus grand.\n",
"\n",
"\n",
"* Écrire le programme final qui fait choisir un nombre à l'ordinateur, qui demande un nombre à l'utilisateur puis qui dit si le nombre donné par l'utilisateur est plus grand ou plus petit.\n",
"\n",
"* Pour améliorer notre programme, il faudrait que l'utilisateur puisse rententer de deviner le nombre. Regardez la section [Boucle while](#Boucle-while) pour améliorer votre programme."
"* Pour améliorer notre programme, il faudrait que l'utilisateur puisse rententer de deviner le nombre. Regardez la section [Boucle while](#Boucle-while) pour améliorer votre programme.\n",
"\n",
"* On pourra continuer à l'améliorer en comptant et en annonçant le nombre de tentative à la fin."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generateur de simleys\n",
"\n",
"Pour ce projet, nous allons programmer un générateur de smileys. Nous allons définir quelquels éléments de ce smiley et l'ordinateur choisira aléatoirement parmi ces éléments pour créer le smiley.\n",
"\n",
"Voici les éléments du smiley."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"LISTE_CHAPEAU = [u\" \\n _===_\", \" ___ \\n .....\", \" _ \\n /_\\ \", \" ___ \\n (_*_)\"]\n",
"LISTE_NEZ = [u\",\", \".\", \"_\", \" \"]\n",
"LISTE_OEIL = [u\".\", \"o\", \"O\", \"-\"]\n",
"LISTE_GAUCHE_CORPS_HAUT = [u\" \", \"\\\\\", \" \", \" \"]\n",
"LISTE_GAUCHE_CORPS_BAS = [u\"<\", \" \", \"/\", \" \"]\n",
"LISTE_DROITE_CORPS_HAUT = [u\" \", \"/\", \" \", \" \"]\n",
"LISTE_DROITE_CORPS_BAS = [u\">\", \" \", \"\\\\\", \" \"]\n",
"LISTE_TORSE = [u\" : \", \"] [\", \"> <\", \" \"]\n",
"LISTE_BASE = [u\" : \", '\" \"', \"___\", \" \"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"* Le programme qui séléctionnera aléatoirement des éléments pour construire un smiley de ce type:\n",
"\n",
" _\n",
" /_\\ \n",
" (o O)\n",
" <( : ) \n",
" (\" \") \n",
" \n",
"### Propositions d'étapes\n",
"\n",
"* Recopier les listes de parties\n",
"* Choisir aléatoirement un chapeau\n",
"* Construire aléatoirement une tête '(oeil nez oeil)'\n",
"* Construire aléatoirement les autres parties du corps\n",
"* Construire tout le smiley"
]
},
{
@ -425,100 +494,6 @@
"* En utilisant les [conditions if](#Condition-if) comparer les deux choix pour determiner qui est le vaincueur."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Deviner un nombre (amélioration)\n",
"\n",
"Reprenez votre programme qui fait deviner à l'utilisateur un nombre choisi par l'ordinateur. Le soucis de ce programme est que nous n'avons qu'un essai ce qui n'est pas très pratique pour trouver le nombre...\n",
"\n",
"Nous allons améliorer ce programme laisser plus de chance à l'utilisateur. Pour cela nous allons faire une boucle `while` (tant que en français)."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"un tour\n",
"un tour\n",
"un tour\n",
"un tour\n",
"un tour\n",
"un tour\n",
"un tour\n",
"un tour\n",
"un tour\n",
"Fini! Et a vaut 20\n"
]
}
],
"source": [
"a = 11\n",
"while a < 20: #tant que a est plus petit que 20\n",
" print(\"un tour\")\n",
" a = a + 1\n",
"print(\"Fini! Et a vaut \", a)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut aussi créer une variable `aPasTrouve = True` (True en anglais signifie vrai) et dès que l'utilisateur a trouvé la bonne valeur, on change `aPasTrouve = False` (False en anglais signifie faux).\n",
"\n",
"* Écrire cette amélioration du programme.\n",
"* Améliorer votre programme, en comptant le nombre de tentatives."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generateur de simleys\n",
"\n",
"Pour ce projet, nous allons programmer un générateur de smileys. Nous allons définir quelquels éléments de ce smiley et l'ordinateur choisira aléatoirement parmi ces éléments pour créer le smiley.\n",
"\n",
"Voici les éléments du smiley."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"LISTE_CHAPEAU = [u\" \\n _===_\", \" ___ \\n .....\", \" _ \\n /_\\ \", \" ___ \\n (_*_)\"]\n",
"LISTE_NEZ = [u\",\", \".\", \"_\", \" \"]\n",
"LISTE_OEIL = [u\".\", \"o\", \"O\", \"-\"]\n",
"LISTE_GAUCHE_CORPS_HAUT = [u\" \", \"\\\\\", \" \", \" \"]\n",
"LISTE_GAUCHE_CORPS_BAS = [u\"<\", \" \", \"/\", \" \"]\n",
"LISTE_DROITE_CORPS_HAUT = [u\" \", \"/\", \" \", \" \"]\n",
"LISTE_DROITE_CORPS_BAS = [u\">\", \" \", \"\\\\\", \" \"]\n",
"LISTE_TORSE = [u\" : \", \"] [\", \"> <\", \" \"]\n",
"LISTE_BASE = [u\" : \", '\" \"', \"___\", \" \"]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* Le programme qui séléctionnera aléatoirement des éléments pour construire un smiley de ce type:\n",
"\n",
" _\n",
" /_\\ \n",
" (o O)\n",
" <( : ) \n",
" (\" \") "
]
},
{
"cell_type": "markdown",
"metadata": {},
@ -579,7 +554,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 14,
"metadata": {},
"outputs": [
{
@ -610,7 +585,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 15,
"metadata": {},
"outputs": [
{
@ -640,7 +615,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 16,
"metadata": {},
"outputs": [
{
@ -677,7 +652,7 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 17,
"metadata": {},
"outputs": [
{
@ -707,7 +682,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 18,
"metadata": {},
"outputs": [
{
@ -734,7 +709,7 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 19,
"metadata": {},
"outputs": [
{
@ -774,7 +749,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 20,
"metadata": {},
"outputs": [
{
@ -782,8 +757,8 @@
"output_type": "stream",
"text": [
"Comment t'appelles tu?\n",
"bob\n",
"Ah! Tu t'appelles bob\n"
"Ivan\n",
"Ah! Tu t'appelles Ivan\n"
]
}
],
@ -811,7 +786,7 @@
},
{
"cell_type": "code",
"execution_count": 22,
"execution_count": 21,
"metadata": {},
"outputs": [
{
@ -826,11 +801,11 @@
"a = 2\n",
"b = 3\n",
"\n",
"if a > b: \n",
"if a > b: # Si\n",
" print(\"a plus grand que b\")\n",
"elif a == b:\n",
"elif a == b: # Sinon si\n",
" print(\"a est égal à b\")\n",
"else:\n",
"else: # Sinon\n",
" print(\"a est plus petit que b\")"
]
},
@ -847,7 +822,7 @@
},
{
"cell_type": "code",
"execution_count": 23,
"execution_count": 22,
"metadata": {},
"outputs": [
{
@ -882,7 +857,7 @@
},
{
"cell_type": "code",
"execution_count": 24,
"execution_count": 23,
"metadata": {},
"outputs": [
{
@ -922,7 +897,7 @@
},
{
"cell_type": "code",
"execution_count": 25,
"execution_count": 24,
"metadata": {},
"outputs": [
{
@ -961,19 +936,19 @@
},
{
"cell_type": "code",
"execution_count": 26,
"execution_count": 25,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5\n",
"8\n",
"11\n",
"14\n",
"17\n",
"20\n",
"u vaut 5\n",
"u vaut 8\n",
"u vaut 11\n",
"u vaut 14\n",
"u vaut 17\n",
"u vaut 20\n",
"u a depassé 50 et vaut 20\n"
]
}
@ -982,7 +957,7 @@
"u = 2\n",
"while u < 19:\n",
" u = u + 3\n",
" print(u)\n",
" print(\"u vaut \", u)\n",
"print(\"u a depassé 50 et vaut\", u)"
]
},
@ -995,13 +970,22 @@
},
{
"cell_type": "code",
"execution_count": 27,
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Quelle est la couleur du cheval blanc d'Henri 4?\n",
"bleu\n",
"Non! Recommence!\n",
"Quelle est la couleur du cheval blanc d'Henri 4?\n",
"vert\n",
"Non! Recommence!\n",
"Quelle est la couleur du cheval blanc d'Henri 4?\n",
"jaune\n",
"Non! Recommence!\n",
"Quelle est la couleur du cheval blanc d'Henri 4?\n",
"blanc\n",
"Bravo!\n",
@ -1021,6 +1005,193 @@
" print(\"Non! Recommence!\")\n",
"print(\"Voila tu as réussi!\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Fonctions\n",
"\n",
"Une fonction est un morceau de programme qui évitera de coder plusieurs fois la même chose. Quand on programme on dit souvent `Si c'est la 3e fois que l'on écrit ces lignes c'est qu'il faut en faire une fonction`.\n",
"\n",
"Voici différentes utilisation de fonctions."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fonctions numériques\n",
"\n",
"En math, on utilise les fonctions pour décrire les transformations (de nombres le plus souvent). \n",
"\n",
"Par exemple:\n",
"$$ f:x \\mapsto 3x + 2$$\n",
"Cette fonction $f$ prend un nombre, le multiplie par 3 puis ajoute 2. On pourra la coder de la façon suivante:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [],
"source": [
"def f(x):\n",
" return 3*x+2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On vient de coder cette fonction, on peut ensuite l'utiliser"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"14\n",
"L'image de 2.5 par la fonction f est 9.5\n",
"f(-2) = -4\n"
]
}
],
"source": [
"print(f(4))\n",
"print(\"L'image de 2.5 par la fonction f est \", f(2.5))\n",
"print(\"f(-2) = \", f(-2))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Au collège, on a vu les \"programmes de calculs\". Ils peuvent eux aussi être codé avec des fonctions.\n",
"\n",
"- Choisir un nombre\n",
"- Ajouter 5\n",
"- Diviser par 10\n",
"\n",
"Se code de la façon suivante:"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"def programme(nombre):\n",
" reponse = nombre + 5\n",
" reponse = reponse / 10\n",
" return reponse"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6.5\n"
]
}
],
"source": [
"print(programme(60))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### D'autres fonctions\n",
"\n",
"Les fonctions numériques sont très utilisées en math mais en programmation, on manipule beaucoup d'autres types de fonctions.\n",
"\n",
"On pourrait vouloir transformer un texte en un titre entouré de symboles `#`."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"def entoure(titre):\n",
" return '##### ' + titre + ' #####'"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"##### Mon titre #####\n",
"##### L'histoire du petit chaperon rouge #####\n",
"##### Fin #####\n"
]
}
],
"source": [
"print(entoure('Mon titre'))\n",
"print(entoure(\"L'histoire du petit chaperon rouge\"))\n",
"print(entoure('Fin'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On peut même mettre un autre argument (en plus de `titre`) pour entourer avec autre chose que `#`."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def entoure(texte, symbole):\n",
" return symbole*4 + ' ' + texte + ' ' + symbole*4"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"---- La belle au bois dormant ----\n"
]
}
],
"source": [
"print(entoure('La belle au bois dormant', '-'))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {