miroir de
https://github.com/PAPAMICA/Wiki-Tech.io.git
synchronisé 2024-11-18 15:30:43 +01:00
127 lignes
7,9 Kio
HTML
127 lignes
7,9 Kio
HTML
<!--
|
|
title: Python - Conditions et boucles
|
|
description: IF, ELSE, ELIF, WHILE, Comparaisons, etc…
|
|
published: true
|
|
date: 2021-06-08T10:07:37.487Z
|
|
tags:
|
|
editor: ckeditor
|
|
dateCreated: 2021-05-24T16:12:00.664Z
|
|
-->
|
|
|
|
<figure class="image image_resized" style="width:58.86%;"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/Python_logo_and_wordmark.svg/1200px-Python_logo_and_wordmark.svg.png" alt="Fichier:Python logo and wordmark.svg — Wikipédia"></figure>
|
|
<h1>Structures conditionnelles</h1>
|
|
<h2>IF</h2>
|
|
<p>La structure conditionnelle <strong>IF</strong> permet de faire un <strong>choix</strong>. Cela permet de rendre le code <i>intelligent</i>.<br>Dans un langage courant, cela donnerait ceci :</p>
|
|
<pre><code class="language-plaintext">Si <réfrigérateur_vide = 1>
|
|
Alors Afficher "Faire des courses"
|
|
Fin si</code></pre>
|
|
<p>En python, cela donnerait :</p>
|
|
<pre><code class="language-python">refrigerateur_vide = 1
|
|
if refrigerateur_vide == 1:
|
|
print "Faire des courses"</code></pre>
|
|
<p> </p>
|
|
<blockquote>
|
|
<p><strong>Attention :</strong> Dans d'autres langages de programmation tel que le <strong>C#</strong>, la fonction est délimitée par <strong>{}</strong>. En python, la fonction commence par <strong>:</strong> et c'est l'indentation qui délimite.</p>
|
|
<p>Pour éviter les erreurs, les indentations (généralement faites automatiquement) doivent être 4 espaces et non une tabulation.</p>
|
|
</blockquote>
|
|
<p><i>Démonstration :</i></p>
|
|
<pre><code class="language-python">refrigerateur_vide = 1
|
|
if refrigerateur_vide == 1: #Je débute le IF
|
|
print "Aller faire des courses" # Je suis dans le IF
|
|
print "Je suis encore de le IF"
|
|
print "Ici aussi"
|
|
print "Ici non, mon IF est terminé"</code></pre>
|
|
<p> </p>
|
|
<h2>IF ELSE</h2>
|
|
<p>Je peux également grâce au <strong>ELSE</strong> définir une action si ma condition est fausse.</p>
|
|
<pre><code class="language-python">refrigerateur_vide = 1
|
|
if refrigerateur_videv == 1: # Si le frigo est vide, alors ...
|
|
print "Faire des courses"
|
|
else: # Sinon ...
|
|
print "Ne pas faire de courses"</code></pre>
|
|
<p> </p>
|
|
<h2>ELIF</h2>
|
|
<p>Cette condition permet d'avoir <strong>plusieurs conditions</strong> dans une clause IF.</p>
|
|
<pre><code class="language-python">refrigerateur_vide = 1
|
|
if refrigerateur_vide == 1: # Si le frigo est vide, alors ...
|
|
print "Faire des courses"
|
|
elif refrigerateur_vide == 0.5: # Si le frigo est presque vide, alors ...
|
|
print "Faire de petites courses"
|
|
else: # Sinon ...
|
|
print "Ne pas faire de courses"</code></pre>
|
|
<p> </p>
|
|
<h2>Opérateurs de comparaison</h2>
|
|
<figure class="table">
|
|
<table style="background-color:rgb(255, 255, 255);">
|
|
<thead>
|
|
<tr>
|
|
<th style="background-color:rgb(239, 241, 243);border-bottom:2px solid rgb(158, 158, 158);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;"><strong>Opérateur</strong></th>
|
|
<th style="background-color:rgb(239, 241, 243);border-bottom:2px solid rgb(158, 158, 158);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;"><strong>Signification</strong></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;text-align:center;"><</td>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;">Strictement inférieur à</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;text-align:center;">></td>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;">Strictement supérieur à</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;text-align:center;"><=</td>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;">Inférieur ou égal à</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;text-align:center;">>=</td>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;">Supérieur ou égal à</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;text-align:center;">==</td>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;">Égal à</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;text-align:center;">!=</td>
|
|
<td style="border-bottom:1px solid rgb(238, 238, 238);border-left:1px solid rgb(207, 216, 220);border-right:1px solid rgb(207, 216, 220);border-top:1px solid rgb(207, 216, 220);padding:0.75rem;">Différent de</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</figure>
|
|
<blockquote>
|
|
<p><strong>Attention :</strong> Pour tester l'égalité de deux valeurs, on utilise <strong>==</strong> et non <strong>=</strong> qui lui sert à l'affectation de valeurs</p>
|
|
</blockquote>
|
|
<blockquote>
|
|
<p><strong>Info :</strong> Une condition renvoie uniquement deux valeurs : <strong>True</strong> ou <strong>False</strong> (vrai ou faux). Si le test est correcte, il renverra <strong>True</strong>, sinon <strong>False</strong>.</p>
|
|
</blockquote>
|
|
<p> </p>
|
|
<h2>Plusieurs conditions pour une clause IF</h2>
|
|
<p>Si un test à besoin de plusieurs conditions pour être vrai, on peut combiner plusieurs conditions pour une seule clause IF.</p>
|
|
<pre><code class="language-python">permis=False
|
|
majeur=True
|
|
if permis == True and majeur == True: # Pour que je puisse conduire, il faut que j'ai mon permis et que je sois majeur
|
|
print "Je peux conduire"
|
|
else:
|
|
print "Je ne peux pas conduire"</code></pre>
|
|
<p>Si un test a besoin qu'une condition soit vraie parmi plusieurs, on peut utiliser un “or”.</p>
|
|
<pre><code class="language-python">vote_gagne = False
|
|
dictature = True
|
|
|
|
if (vote_gagne or dictature) == True:
|
|
print("Je dirige le pays")</code></pre>
|
|
<h1>Les boucles</h1>
|
|
<h2>La boucle <strong>WHILE</strong></h2>
|
|
<p>La boucle <strong>while</strong> (ou tant que) répète une série d'instructions tant qu'une condition n'est pas vraie.<br>Syntaxe :</p>
|
|
<pre><code class="language-python">while condition:
|
|
instruction1
|
|
instruction2
|
|
...</code></pre>
|
|
<p><i>Exemple : Je veux répéter une instruction tant que i n'est pas égal à 10 :</i></p>
|
|
<pre><code class="language-python">i = 0
|
|
while 1 != 10:
|
|
print ("i ne vaut pas 10")
|
|
i+=1</code></pre>
|
|
<p> </p>
|
|
<blockquote>
|
|
<p><strong>Attention</strong> : Il ne faut pas oublier d'incrémenter le compteur, sinon la boucle sera infinie !</p>
|
|
</blockquote>
|
|
<p> </p>
|