IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Les bases de la programmation Python par l’exemple


précédentsommairesuivant

VI. Structures de contrôle

VI-A. Vérification de la condition

  • Vérification simple et combinaison des tests.
 
Sélectionnez
>>> num = 5
>>> num > 2
True
>>> num > 3 and num <= 5
True
>>> 3 < num <= 5
True
>>> num % 3 == 0 or num % 5 == 0
True
 
>>> fav_fiction = 'Harry Potter'
>>> fav_detective = 'Sherlock Holmes'
>>> fav_fiction == fav_detective
False
>>> fav_fiction == "Harry Potter"
True
  • Test de la variable ou de la valeur par elle-même.
 
Sélectionnez
>>> bool(num)
True
>>> bool(fav_detective)
True
>>> bool(3)
True
>>> bool(0)
False
>>> bool("")
False
>>> bool(None)
False
 
>>> if -1:
...     print("-1 évalue à True dans la vérification de condition")
...

-1 évalue à True dans la vérification de condition

  • Utilisation de l’opérateur « in » dans la vérification de condition.

Comparez cette méthode de vérification

 
Sélectionnez
>>> def num_chk(n):
...     if n == 10 or n == 21 or n == 33:
...         print("Le nombre passe la condition")
...     else:
...         print("Le nombre ne passe pas la condition")
... 
>>> num_chk(10)
Le nombre passe la condition 
>>> num_chk(12)
Le nombre ne passe pas la condition

avec celle-ci

 
Sélectionnez
>>> def num_chk(n):
...     if n in (10, 21, 33):
...         print("Le nombre passe la condition")
...     else:
...         print("Le nombre ne passe pas la condition")
... 
>>> num_chk(12)
Le nombre ne passe pas la condition
>>> num_chk(10)
Le nombre passe la condition

VI-B. if

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#!/usr/bin/python3
 
num = 45
 
# only if
if num > 25:
    print("Hourra! {} est plus grand que 25".format(num))
 
# if-else
if num % 2 == 0:
    print("{} est un nombre pair".format(num))
else:
    print("{} est un nombre impair".format(num))
 
# if-elif-else
# N’importe quel chiffre de elif peut être utilisé
if num < 0:
    print("{} est un nombre négatif".format(num))
elif num > 0:
    print("{} est un nombre positif".format(num))
else:
    print("{} n’est ni positif ni négatif".format(num))
  • Le bloc de code pour les fonctions, le contrôle des structures, etc. est distingué par un code de retrait (indentation) :

  • Une erreur de syntaxe commune est d’omettre « : » à la fin des instructions de la structure de contrôle.
  • L’utilisation de « () » autour des conditions est optionnelle.
  • L’indentation peut avoir un nombre quelconque d’instructions, y compris des lignes vides.
 
Sélectionnez
$ ./if_elif_else.py 
Hourra! 45 est plus grand que 25
45 est un nombre impair
45 est un nombre positif

VI-C. if-else comme opérateur de condition

 
Sélectionnez
1.
2.
3.
4.
5.
6.
#!/usr/bin/python3
 
num = 42
 
num_type = 'even' if num % 2 == 0 else 'odd'
print("{} is an {} number".format(num, num_type))
  • Contrairement à beaucoup d’autres langages, Python n’a pas d’opérateur conditionnel « ?: ».
  • L’utilisation de« if-else »dans une seule ligne comme dans cet exemple est une solution de contournement.
 
Sélectionnez
1.
2.
$ ./if_else_oneliner.py 
42 est un nombre pair

VI-D. for

 
Sélectionnez
1.
2.
3.
4.
5.
6.
#!/usr/bin/python3
 
number = 9
for i in range(1, 5):
    mul_table = number * i
    print("{} * {} = {}".format(number, i, mul_table))
  • Une boucle basée sur une itération traditionnelle peut être écrite en utilisant la fonction« range ».

    • Rappelez-vous que par défaut« start=0 », « step=1 » et que la valeur« stop »n’est pas incluse.
  • Les itérations sur des variables comme list, tuples, etc. seront traitées dans les chapitres suivants.
  • La documentation officielle est ici : Python docs – itertools .
 
Sélectionnez
1.
2.
3.
4.
5.
$ ./for_loop.py 
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36

VI-E. while

 
Sélectionnez
1.
2.
3.
4.
5.
6.
#!/usr/bin/python3
 
# toujours demander à l’utilisateur d’insérer un nombre jusqu’à avoir un nombre positif
usr_string = 'Ce n’est pas un nombre'
while not usr_string.isnumeric():
    usr_string = input("Entrez un entier positif : ")
  • La boucle while nous permet d’exécuter un bloc d’instructions jusqu’à satisfaction d’une condition.
  • Python docs - string methods .
 
Sélectionnez
1.
2.
3.
4.
5.
$ ./while_loop.py 
Entrez un entier positif : abc
Entrez un entier positif : 1.2
Entrez un entier positif : 23
$

VI-F. continue and break

Les mots-clefs « continue » et « break » sont utilisés pour modifier le flux normal des boucles dans certaines conditions.

continue – ignore le reste des instructions de la boucle et commence la prochaine itération.

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#!/usr/bin/python3
 
prev_num = 0
curr_num = 0
print("Les dix premiers nombres de la suite de Fibonacci: ", end='')
 
 
for num in range(10):
    print(curr_num, end=' ')
 
    if num == 0:
        curr_num = 1
        continue
 
    temp = curr_num
    curr_num = curr_num + prev_num
    prev_num = temp
 
print("")
  • La fonction « continue » peut être placée n’importe où dans la boucle sans avoir à se soucier de la complication du flux de code.
  • Cet exemple est juste pour vous montrer l’utilisation de la fonction « continue », veuillez voir ici pour d’autres méthodes Python.
 
Sélectionnez
1.
2.
$ ./loop_with_continue.py 
Les dix premiers nombres de la suite de Fibonacci: 0 1 1 2 3 5 8 13 21 34

break  – ignore le reste des instructions dans la boucle (s’il y en a) et quitte la boucle.

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#!/usr/bin/python3
 
import random
 
while True:
    # comme avec la fonction range(), 500 n’est pas inclus
    random_int = random.randrange(500)
    if random_int % 4 == 0 and random_int % 6 == 0:
        break
print("Nombre aléatoire divisible par 4 et 6: {}".format(random_int))
  • while True est généralement utilisée comme une boucle infinie.
  • randrange a les mêmes arguments de start, stop, step que la fonction  range .
  • Python docs – random .
 
Sélectionnez
1.
2.
3.
4.
5.
$ ./loop_with_break.py 
Nombre aléatoire divisible par 4 et 6: 168
$ ./loop_with_break.py 
Nombre aléatoire divisible par 4 et 6: 216
$ ./loop_with_break.py
 
Sélectionnez
Nombre aléatoire divisible par 4 et 6: 24

L’exemple while_loop.py peut être réécrit en utilisant la fonction « break ».

 
Sélectionnez
1.
2.
3.
4.
5.
6.
7.
8.
9.
>>> while True:
         usr_string = input("Entrez un entier positif : ")
         if usr_string.isnumeric():
             break
    
Entrez un entier positif : a
Entrez un entier positif : 3.14
Entrez un entier positif : 1
>>>

précédentsommairesuivant

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2018 Sundeep Agarwal. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.