« Programmation Python/Structures de contrôle » : différence entre les versions

Contenu supprimé Contenu ajouté
m JackPotte a déplacé la page Programmation Python/Contrôle du flux d'instructions vers Programmation Python/Structures de contrôle sans laisser de redirection
Aucun résumé des modifications
Ligne 170 :
En conséquence, la plupart des programmeurs préfèrent se passer des tabulations. Si vous utilisez un éditeur "intelligent", vous pouvez escamoter le problème en activant l'option "Remplacer les tabulations par des espaces".</ref>). Le nombre d'espaces à utiliser pour l'indentation est quelconque, mais la plupart des programmeurs utilisent des multiples de 4.
 
* Notez que le code du bloc le plus externe (bloc 1) ne peut pas lui-même être écarté de la marge de gauche (Ilil n'est imbriqué dans rien).
 
 
== Notion de bloc, instruction pass ==
De manière générale, un bloc contient tout le code avec une même indentation.
<source lang=python>
ceci est le bloc principal
if condition:
bloc 2
if condition2:
bloc 3
fin du bloc 2
fin du bloc 1
</source>
 
Si à un endroit on a syntaxiquement besoin d'un bloc mais qu'il n'y a rien à faire, on peut utiliser l'instruction <code>pass</code>, qui justement ne fait rien
<source lang=python>
if condition:
pass
else:
instruction ...
</source>
 
== L'instruction "if" ==
 
On utilise très souvent cette structure de contrôle. Sa syntaxe est très simple :
 
<source lang=python>
if condition:
instructions
...
</source>
 
L'indentation après le ":" est obligatoire.
 
Cette structure de contrôle permet de tester une condition et de n'exécuter les instructions que si cette condition est vérifiée. Exemple :
<source lang="python">
a = 11
if a > 10 :
print ("a est plus grand que dix")
</source>
 
"if" veut dire "si" en français.
 
En exécutant ce programme, on voit "a est plus grand que dix" apparaître à l'écran. On peut perfectionner le programme pour prendre en compte le cas ou a est plus petit que dix :
<source lang="python">
if a > 10 :
print ("a est plus grand que dix")
else:
print ("a n'est pas plus grand que dix")
</source>
 
"else" veut dire "sinon" en français.
 
On utilise aussi parfois elif (contraction de "else if") :
<source lang="python">
if a > 10 :
print ("a est plus grand que dix")
elif a == 10:
print ("a est égal à dix")
else:
print ("a est plus petit que dix")
</source>
 
== L'instruction "while" ==
 
permet d'exécuter des commandes '''tant qu''''une ou plusieurs conditions sont vraies.
 
<source lang=python>
while condition:
commandes
</source>
 
par exemple :
 
<source lang=python>
i=0
while i<5:
i=i+1
print i,
</source>
 
donne à l'exécution :
 
<source lang=python>
1 2 3 4 5
</source>
 
== L'instruction "for" ==
Exemple de la boucle en C for (i=0; i<5 ; i++ )
<source lang=python>
for i in range(5) :
commandes
</source>
 
Pour le "foreach" :
<source lang=python>
for champ in ['champ1', 'champ2', 'champ3']:
commandes
</source>
 
== Les instructions "break", "continue" ==
L'instruction break permet d'arrêter une boucle avant sa fin. L'instruction continue est similaire, mais au lieu d'interrompre la boucle, elle permet de passer à l'itération suivante.
<source lang=python>
for i in range(5):
if i==3:
break
print i
</source>
affichera
<source lang=python>
0 1 2
</source>
tandis que
<source lang=python>
for i in range(5):
if i==3:
continue
print i
</source>
affichera
<source lang=python>
0 1 2 4
</source>
 
== Exception ==
{{Exemple|Exemple|Exemple de gestion d'exception|
<source lang=python>
try:
# Code pouvant générer une exception
except MonException:
# Code en cas d'exception
else:
# Code en cas de non exception
#code dans tous les cas
</source>
}}
Exemple de gestion d'exception : intercepter une division par zéro.
<source lang=python>
a = int(input("Veuillez saisir le numérateur: "))
 
b = int(input("Veuillez saisir le dénominateur: "))
 
try:
 
c = a / b
 
print("Le resultat est :" +c)
 
except ZeroDivision:
 
print(" Pas de division par zéro SVP")
 
finally:
 
print("Fin du script")
</source>
 
 
== Notes ==
{{références}}
 
<noinclude>
----
{{lienDePage|Programmation Python|Opérateurs|Instructions répétitives}}
 
[[Catégorie:Structures de contrôle|Python]]
</noinclude>