Algo.tn

Python-Condition-Boucle

Les structures conditionnelles

if : elif : else

Forme simple réduite:

Si condition alors          
        Traitement
FinSi

En Python:
if condition:
 ↔  Traitement

Python utilise la notion d'indentation(espacement) pour spécifier un bloc d'indstructions.

>>>a=int(input('Donner a='))
donner a=4
>>>if a==4:
        print('ok')
ok  

Forme simple:

Si condition alors          
        Traitement1
             sinon
        Traitement2
FinSi

En Python:
if condition:
 →  Traitement1
else:
 →  Traitement2
 
 >>>a=int(input('Donner a=') )
donner a=4
>>>if a%2==0:
        print('pair')
   else:
        print('impair')
pair

Forme imbriquée:

Si condition alors          
        Traitement1
sinon
     si condition2 alors 
                  Traitement2
                  sinon
                  Traitement3
FinSi

En Python:
if condition:
 →  Traitement1
elif condition2:
 →  Traitement2
else
 →  Traitement3

 >>>a=int(input('Donner a=') )
donner a=4
>>>if a>0:
        print('positif')
   elif a < 0:
        print('négatif')
   else:
        print('nul')        
positif

Les boucles :

while

tant que condition faire
    Traitement
FinTantque

En Python
while condition:
    Traitement
 

Nombre de fois connu à l'avance:

Exercice: Calculer la somme s=1+2+3+..+n avec n est une donnée
>>>n=5
>>>s,i=0,1
>>>while i<=n:
        s+=i
        i+=1
>>>s
15

Nombre de fois imprévisible:

Exercice: Saisir un entier x strictement positif.
x=int(input('Donner x='))
while x<0:
    x=int(input('Donner x='))
print(x)

Répéter jusqu'a:

Répéter
    Traitement
jusqu'a condition

En Python
while 1:
    Traitement
    if condition: break
 
Contrôle de saisie avec répéter jusqu'a:
Saisir un entier x strictement positif.
while 1:
    x=int(input('Donner x='))
    if x>0: break
Exercice reprendre l'exercice de somme avec répéter jusqu'a
while 1:
    x=int(input('Donner x='))
    if x>0: break
s=0
i=1
while 1:
    s+=i
    i+=1
    if i>x:break
print(s)

Intervalle (range)

L'objet range représente un intervalle (suite de valeurs discrètes)
range(BI,BS,pas)
BI: Borne inf(par défaut=0)
BS: Borne sup jamais atteinte, on s'arrête à BS-1
pas: par défaut égale à 1 (peut être positif ou négatif)

>>>range(4)
range(0,4)
>>>4 in _
False 
 
Remarque:_ donne le résultat de la dernière commande
>>>range(1,4)
range(1,4)
>>>0 in _
False
>>>range(1,20,2) #1,3,5,..,19
>>>range(10,1) #intervalle vide car BI>BS
>>>range(10,1,-1) #10,9,8,7..,2
>>>r=_
>>>2 in r
True

La notion d'intervalle est utilisé pour déterminer la plage de valeurs que va prendre un compteur dans une boucle pour.

Boucle pour (for)

Boucle croissante

>>>for compteur in range(BI,BS,pas):
        Traitement
 

Exercice 1:Affichage des entiers entre 0 et 3

>>>for i in range(4):
        print(i)

Exercice 1:Affichage des entiers entre 1 et 10

>>>for i in range(1,11):
        print(i)

Exercice 1:Affichage des entiers impairs entre 1 et 20

>>>for i in range(1,20,2):
        print(i)

Boucle décroissante

>>>for i in range(10,0,-1):
        print(i)

Remarque:On peut utiliser une boucle pour itérer sur les éléments d'un conteneur.
for i in conteneur

>>>s='python'
>>>for i in s:
        print(i)
p
y
t
h
o
n

continue - break - else

continue

Permet de sauter une itération de la boucle

>>>for i in range(5):
        if i==2:continue #on n'affiche pas le 2
        print(i)
0
1
3
4

break

Permet de quitter la boucle.

>>>i,n=1,10
>>>while i<=n:
        print(i)
        i+=1
        if i==4:break #on quitte quand i=4
1
2
3       

else

Traitement alternatif quand une boucle se termine.

>>>n=10
>>>for i in range(2,n//2+1):
        if n%i==0:
            print('non premier')
            break
    else:  #else de for pas de if
        print('premier')

Contrôle d'erreur lors de l'exécution:

try : except : else :

try:
    instruction provoquant une erreur
except:
    traitement en cas d'erreur
else:
    traitement si tout va bien
Exemple:
    
>>>while 1:
        try:
            n=int(input('Donner n=') )
        except:
            print('Type incorrecte')
        else:
            if n > 0 :break  
  

Algo.tn ©