Comparer :
if , elif , else
En langage naturel une instruction conditionnelle se formule par :
Si condition alors :
bloc d’instruction
Sinon :
bloc d’instruction
La construction utilisée avec l’instruction if est un premier
exemple d’instruction composée. Sous Python, les instructions composées
ont toujours la même structure : une ligne d’en-tête terminée par un
double point, suivie d’une ou de plusieurs instructions indentées sous
cette ligne d’en-tête.
Commande |
Effet. |
if condition :
{indentation} BLOC
|
Effectue tout le BLOC d’instructions dès lors que la condition est vérifiée. Il faut respecter une indentation pour tout le BLOC. |
if condition :
{indentation}BLOC1
else :
{indentation}BLOC2
|
Effectue tout le BLOC1 d’instructions dès lors que la condition est vérifiée, dans le cas contraire, c’est le BLOC2 qui est exécuté. Il faut respecter une indentation pour le BLOC1 et le BLOC2. |
if condition1 :
{indentation} BLOC1
elif condition2 :
{indentation} BLOC2
elif condition3:
{indentation} BLOC3
|
L’instruction elif n’est utilisée que si l’ensemble des instructions précédentes n’ont pas vu leurs conditions vérifiées.
|
.
Exemple : |
# 0205 instruction conditionnelle.py
# if ;elif; else
# la commande \n effectue un retour à la ligne
print(" programme qui détermine:\n si un nombre est positif ou négatif
")
nbre1=input(" Donner un nombre :")
# float() effectue la conversion de ma variable en nombre décimal
nbre=float(nbre1)
if nbre<0:#
si condition
print("Le nombre ",nbre," est négatif")
elif nbre==0:#elif
suit obligatoirement une instruction if
print(" Le nombre est ègal à zéro ")
else:#
sinon
print(" Le nombre ",nbre," est positif ")
|
.
TEST D’APPARTENANCE :
On peut déterminer si un élément fait partie d’une liste ou d’une chaîne
de caractères à l’aide de l’instruction in. (lignes 9, 10 et 15)
.
Appartenance |
# 0206 test d'appartenance.py
# if ; else , in
print(" Instructions imbriquées :")
va="a"
vb="b"
print(" le programme détecte si le mot comporte les lettres a ou b ")
print(" Donner un mot :")
mot=input()
if vb in mot:
if va in mot:
print(" Il y les lettres a et b dans ",mot)
else:
print("Il y a la lettre b et pas de lettre a dans ",mot
)
else:
if va in mot:
print(" Il y a la lettre a et pas la lettre b dans ",mot
)
else:print("Il n'y a pas de lettre a ni de lettre b dans ",mot)
|
.
BOUCLE CONDITIONNELLE :
in
Un bloc d’instructions est répété tant que la condition reste
vérifiée.
Commande |
Effet. |
while condition :
{indentation} BLOC
|
Répète le BLOC d’instructions tant que la condition est vérifiée. Il faut respecter une indentation pour tout le BLOC. |
while
Le mot while signifie tant que en anglais. Cette instruction utilisée indique à Python qu’il lui faut répéter continuellement le bloc d’instructions qui suit, tant que le contenu de la variable Continue est égal à True
.
Comme l’instruction if
, l’instruction while
amorce une instruction composée. Le double point
à la fin de la ligne introduit le bloc d’instructions à répéter, lequel doit obligatoirement se trouver en retrait.
Toutes les instructions d’un même bloc doivent être indentées exactement au même niveau (c’est-à-dire décalées à droite d’un même nombre d’espaces). (de la ligne 6 à la ligne 11)
Continuer à exécuter |
# 0207 tant que ca continue.py
# Tant que condition
# Continue est un booléen , faux: False , vrai : True
Continue=True
while
Continue==True:
print("***********ESSAI************")
reponse=input("voulez vous continuer : oui / non ")
if
reponse=="oui":
Continue=True
else:
Continue=False
|
- Avec l’instruction
while
, Python commence par évaluer la
validité de la condition fournie entre parenthèses (celles-ci
sont optionnelles)
- Si la condition se révèle fausse, alors tout le bloc qui suit
est ignoré et l’exécution du programme se termine. (ligne
18)
- Si la condition est vraie, alors Python exécute tout le bloc
d’instructions constituant le corps de la boucle, c’est-à-dire :
- L’instruction
\(\mathbf{i}\mathbf{=}\mathbf{i}\mathbf{+}\mathbf{\ 1}\) (ligne
11) qui incrémente d’une unité le contenu de la variable i (ce
qui signifie que l’on affecte à la variable i une nouvelle
valeur, qui est égale à la valeur précédente augmentée d’une unité).
- L’appel de la fonction
print(i)
pour afficher la valeur de la
variable i
.
- Lorsque ces deux instructions ont été exécutées, nous avons assisté à une première itération, et le programme boucle, c’est-à-dire que l’exécution reprend à la ligne contenant l’instruction
while
. (ligne 10)
- La condition qui s’y trouve est à nouveau évaluée, et ainsi de suite.
- La variable évaluée dans la condition doit exister au préalable (il faut qu’on lui ait déjà affecté au moins une valeur).(ligne 9)
- Si la condition est fausse au départ, le corps de la boucle n’est jamais exécuté.
- Si la condition reste toujours vraie, alors le corps de la boucle est répété indéfiniment. Il faut donc veiller à ce
que le corps de la boucle contienne au moins une instruction qui change la valeur d’une variable intervenant dans la condition évaluée par
while
, de manière à ce que cette condition puisse devenir fausse et la boucle se terminer.
BOUCLE ITERATIVE :
Définiton :
Une boucle permet de répéter plusieurs fois de suite un même traitement.
- Les instructions peuvent s’étendre sur plusieurs lignes si elles
se trouvent dans une paire syntaxique, par exemple une paire de
crochets.
- Lorsque le nombre de répétitions (ou itérations) noté « n »est connu à
l’avance, on utilise un compteur initialisé à 1 et qui s’incrémente
automatiquement de 1 à chaque itération jusqu’à n. On parle de boucle
itérative
- On peut également terminer une ligne d’instructions par un
commentaire.
Un bloc d’instructions est répété à l’aide de l’instruction for,
c’est une variable qui parcourt les éléments d’une séquence.
Commande |
Effet |
for
i in range(N):
#indentation
{BLOC}
|
Répète N fois le BLOC d’instructions.
La variable i prend successivement les valeurs de 0 à N \(\mathbf{- 1}\) .
N est un entier, i est un entier, il y a plusieurs syntaxes possibles. Il faut respecter une indentation pour tout le BLOC. |
Pour utiliser la boucle for
, on a souvent besoin de créer des
séquences de nombres entiers.
Si vous devez manipuler des séquences de nombres, vous pouvez les créer
à l’aide de la
fonction \( \mathbf{\text{range}}\mathbf{\ }\mathbf{}\mathbf{}\mathbf{(\ )}\).
Cette fonction crée un itérateur, c’est-à-dire un distributeur
d’entiers consécutifs.
Création d’une liste de nombres à l’aide de la fonction
\(\mathbf{\text{range}}\mathbf{(\ )}.\)
\(\mathbf{\text{range}}\mathbf{(}\mathbf{n}\mathbf{)}\) : (n un
entier naturel)
Renvoie un itérateur qui parcours les nombres entiers
naturels\(\ \mathbf{i}\) tels que
\(\mathbf{0 ≤}\mathbf{i}\mathbf{≤}\mathbf{n}\mathbf{- 1}\).
Calcul d'une racine carré |
# 0209 calcul d'une racine carrée.py
#for , in, print , range
def
racine_carre(var):
var1=var
for i in range(1,20):
u=0.5*(var1+var/var1)
var1=u
return
u
print("Calcul de la solution positive de x²-N = 0 ")
print("N est un nombre positif et")
print("on calcule U qui est la racine carrée de N")
nbre=input("Donner la valeur de N :")
var=float(nbre)
u=racine_carre(var)
print("U = ",
u)
print("U² =
",u*u)
|
Mots clés :
and, is, or
et
not
Si on doit tester plusieurs conditions pour rentrer dans une boucle il
existe plusieurs solutions :
and
: signifie et en anglais.
if condition1==True and condition2 ==True :
Bloc d’instructions
or
: signifie ou en anglais.
if condition1==True or condition2 ==True :
Bloc d’instructions
is not
: signifie n’est pas en anglais.
Programme avec des conditions |
#0210 mots cles.py
#is not ,and , or
rep=input("Donner un entier : ")
nombre=int(rep)
gagner=False
lettre=input("Donner une lettre : ")
if nombre==18
and lettre=="a":
print("Vous avez gagné !")
gagner=True
elif nombre==18
or lettre=="a":
print("Vous avez trouvé un des deux bons termes")
gagner=True
if gagner is not True:print("Vous avez
perdu !")
|
REGLES DE SYNTAXE :
Les limites des instructions et des blocs sont définies par la mise en
page.
Dans de nombreux langages de programmation, il faut terminer chaque
ligne d’instructions par un caractère spécial (souvent le
point-virgule). Sous Python, c’est le caractère de fin de ligne qui joue
ce rôle.
- Les instructions peuvent s’étendre sur plusieurs lignes si elles
se trouvent dans une paire syntaxique, par exemple une paire de
crochets.
- Une instruction peut aussi s’étendre sur plusieurs lignes si elle
finit par un .
- On peut également terminer une ligne d’instructions par un
commentaire.
- Un commentaire Python commence toujours par le caractère spécial #.
- Tout ce qui est inclus entre ce caractère et le saut à la ligne
suivant est complètement ignoré par le compilateur.
- Avec Python, vous devez utiliser les sauts à la ligne et
l’indentation, mais en contrepartie vous n’avez pas à vous
préoccuper d’autres symboles délimiteurs de blocs. En définitive,
Python vous force donc à écrire du code lisible, et à prendre de
bonnes habitudes que vous conserverez lorsque vous utiliserez
d’autres langages.
- Instruction composée : en-tête, double point, bloc d’instructions
indenté. Les blocs d’instructions sont toujours associés à une
ligne d’en-tête contenant une instruction bien spécifique (if,
elif, else, while, def, etc.) se terminant par un double point.
- Les blocs sont délimités par l’indentation : toutes les lignes
d’un même bloc doivent être indentées exactement de la même manière
(c’est-à-dire décalées vers la droite d’un même nombre d’espaces).
- 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 (il n’est imbriqué dans
rien)
INSTRUCTIONS :
Il est parfaitement possible d’imbriquer les unes dans les autres
plusieurs instructions composées, de manière à réaliser des structures
de décisions complexes.
Le schéma en résume le principe.
Principe d'indentation |
BLOC 1
Ligne (if elif while for ):
#indentation
BLOC 2
Ligne (if elif while for ):
#indentation
BLOC 3
Ligne (if elif while for ):
BLOC 2
Suite et fin:
BLOC 1
Suite
et fin:
|