TP Python Boucles et tests

publicité
TP Python
Boucles et tests
L’informatique est destinée au traitement automatisé de données. Ce traitement consiste donc en partie à effectuer le même travail
sur des données différentes. Ces tâches répétitives sont confiées à des boucles.
Python – Boucles for et while
Syntaxe
Syntaxe Python
Scratch
Exemples
L’indentation délimite les boucles
Noter les deux points
sequence : intervalle range, liste, chaîne…
instruction
for k in sequence :
instruction
…
instruction
instruction
while expression :
instruction
…
instruction
Exemples de sequences :
for k in range(10) :
for c in 'azertyuiop':
for e in ['a', 3,[1,2]]:
Exemple de boucle:
s = 0 # Initialisation de la variable s
for k in range(10) : # 10 itérations
s += 2*k+1
# incrémentation de s
print(s)
# en dehors de la boucle
Exemples d’expression :
while k != 0 :
while i >=2 and i**2 < 100 :
while b:
# Sous-entendu : b == True
while not b: # ⇔ while b == False:
while 1:
# Boucle infinie !
Exemple de boucle
s = 0 # Initialisation de la variable s
k = 0 # Initialisation du compteur k !
while k < 10 :
# 10 itérations
s += 2*k+1
# incrémentation de s
k += 1 # Incrémentation du compteur k !
print(s)
# en dehors de la boucle
Choix du type de boucle
Le nombre d’itérations est connu
⇒ boucle for (boucle inconditionnelle).
Le nombre d’itérations est inconnu ⇒ boucle while (boucle conditionnelle).
Comparaison des boucles for et while
Boucle for
Boucle while
Avantages
Simplicité (initialisation et incrémentation du
compteur automatiques).
Permet de balayer un intervalle, une liste ou une
chaîne pour appliquer un traitement à la totalité
des éléments du premier au dernier.
Permet d’effectuer une sélection ou un
traitement à partir d’un critère complexe (cf.
expression ci-dessus).
Inconvénients
Certains traitements doivent s’interrompre dès
qu’une condition est satisfaite : préférer dans ce
cas la boucle while.
Ne pas oublier d’initialiser et d’incrémenter le
compteur.
Boucles imbriquées
Il est possible d’imbriquer les boucles mais plus le nombre de boucles imbriquées est grand plus le programme est lent (notion
de complexité : à venir…).
PCSI – IPT G. Monod
Boucles_tests.docx
1/2
Python – Tests
Syntaxe
Syntaxe Python
Scratch
Exemple
L’indentation délimite les boucles
Noter les deux points
instruction
a=9
b=4
if a%b == 0:
message = “a est multiple de b”
if expression :
instruction
…
print(message)
instruction
# en dehors du test
instruction
a=9
b=4
if a%b == 0:
message = “a est multiple de b”
else:
message = “a n’est pas multiple de b”
if expression :
instruction
…
else :
instruction
…
print(message)
instruction
instruction
if expression :
instruction
…
a=9
b=0
if b == 0:
message = “le diviseur ne peut pas être 0”
elif a%b == 0:
message = “a est multiple de b”
else:
message = “a n’est pas multiple de b”
elif expression :
instruction
…
else :
instruction
…
print(message)
instruction
Remarques
Il est possible d’imbriquer les boucles et les tests (souvent indispensable).
Le nombre de « elif » n’est pas limité.
Attention, la logique de tests imbriqués peut-être difficile à vérifier, préférer la structure if / elif / else dès que c’est possible
(les tests peuvent souvent être formulés de différentes façons, privilégier l’approche la plus simple qui minimise la
complexité des tests).
Utilisation de Pyzo : deux solutions pour interrompre(et redémarrer) un programme qui ne se termine pas…
Nouveau shell
Fermer = tuer le processus python en cours et fermer le shell
Terminer = tuer le processus python en cours sans fermer le shell
Redémarrer
PCSI – IPT G. Monod
Boucles_tests.docx
2/2
Téléchargement