Structures de contrôle
Contenu
4. Structures de contrôle¶
%matplotlib inline
import numpy as np
from IPython.display import HTML,display,IFrame,Video
from IPython.display import YouTubeVideo,Markdown
display(Markdown("**Video du cours: Introduction**"))
YouTubeVideo('iKoa5WBKOVA')
Video du cours: Introduction
Astuce
pour tester les programmes Python, vous pouvez vous connectez sur un serveur Jupyter, par exemple, pour les étudiants Lyon1 https://jupyter.mecanique.univ-lyon1.fr
4.1. Expression logique¶
expression |
notation algorithmique |
syntaxe Python |
---|---|---|
valeur logique |
Vrai , Faux |
True (\(\neq 0\)) , False(\(= 0\)) |
opérateurs logiques |
et , ou , non |
and , or , not |
comparaisons |
supérieur, supérieur ou égale |
> , >= |
» « |
inférieur, inférieur ou égale |
< , <= |
» « |
égalité |
== |
» « |
différence |
!= |
display(Markdown("**Video du cours: expression logique et test**"))
YouTubeVideo('5oCl0q6lQRw')
Video du cours: expression logique et test
Attention
Les vidéos utilisent un ancien interpréteur python 2.7, pour lequel print
est un mot clé,
soit print 'bonjour'
.
Avec Python 3, print
est une fonction et il faut donc utiliser des parenthèses,
soit print('bonjour')
4.1.1. Exemple en Python¶
print(type(True))
print(True and False)
print(False or True)
a = 4
print(a < 4, a <= 4, a >= 4, a > 4, a == 5, a != 5 , not (a == 5))
print(True + False)
<class 'bool'>
False
True
False True True False False True True
1
4.2. Test conditionnel (branchement)¶
4.2.1. Organigramme: représentation graphique d’un algorithme¶
Algorithme
si (test vrai) alors
intruction(s) 1
sinon
intruction(s) 2
fin si
instruction(s) 3
from diagramme1 import trace_diagramme1
HTML(trace_diagramme1())
4.2.2. syntaxe Python¶
notation algorithmique
si (expression vrai) alors
execute intruction(s) 1
sinon
execute intruction(s) 2
fin si
execute instruction(s) 3
syntaxe Python (noter les :)
if expression :
intruction1
else :
intruction2
instruction3
4.2.3. indentation des structures de contrôle¶
print "bloc1"
if (condition1) :
print "bloc2"
if (condition2) :
print "bloc3"
print "bloc2 suite"
print "bloc1 suite"
4.2.4. tests imbriqués¶
si (condition1) alors
instruction1
sinon si (condition2) alors
instruction2
sinon
instruction3
fin si
i=15
print("si i=",i)
if i%2 == 0 :
print("i divisible par 2")
elif i%3 == 0 :
print("i divisible par 3 mais pas par 2")
elif i%5 == 0 :
print("i divisible par 5 mais pas par 2 ni 3")
else :
print("i non divisible par 2,3 et 5")
si i= 15
i divisible par 3 mais pas par 2
4.2.5. erreur de syntaxe: attention à l’indentation et au symbol :¶
a = 4
if a > 5:
print("a est plus grand que 5")
else
print("a est plus petit ou egal a 5")
File "<ipython-input-7-5162c46baa06>", line 4
else
^
SyntaxError: invalid syntax
4.2.6. Exemple d’application¶
Problème: étant donné un nombre entier positif p, est-il pair ou impair ?
ALGORITHME Parite
Initialisez p
si (p modulo 2) == 0 alors
Affiche "p est pair"
sinon
Affiche "p est impair"
fin si
4.2.7. Programme Python¶
# programme parite
p = 17
print("valeur p =", p)
if p%2 == 0:
print("p est pair.")
else:
print("p est impair.")
valeur p = 17
p est impair.
4.3. Boucle itérative¶
nombre d’itérations n connues
compteur de boucle i (variable)
attention en algorithmique on compte en général à partir de 0
premier élément d’une séquence i=0
display(Markdown("**Video du cours: boucle itérative pour**"))
YouTubeVideo('2fv2KdqMr2o')
Video du cours: boucle itérative pour
Attention
Les vidéos utilisent un ancien interpréteur python 2.7, pour lequel print
est un mot clé,
soit print 'bonjour'
.
Avec Python 3, print
est une fonction et il faut donc utiliser des parenthèses,
soit print('bonjour')
4.3.1. Organigramme et algorithme¶
Algorithme
pour i de 0 a n-1
execute intruction(s) 1
fin pour
execute instruction(s) 2
from diagramme2 import trace_diagramme2
HTML(trace_diagramme2())