CPES Scientifique
Informatique
TP 4
Tests et boucles
Résumé
Ce TP aborde quelques structures de controle de base : les instructions à branchement
conditionnel et les boucles while.
1 Tests à alternatives
1.1 Description
Les test à alternatives permettent de faire dépendre les instructions à exécuter du résultat
d’un test. Il y a plusieurs variantes.
1.1.1 Test simple
La variante la plus simple sont les tests à une alternative. Leur syntaxe est la suivante :
i f ( c o n d i t i o n ) :
# I n s t r u c t i o n s (1)
# I n s t r u c t i o n s (2)
...
# I n s t r u c t i o n s (n)
Dans cette premiere variante les instructions (1),...,(n)sont exécutées si et seulement si l’ex-
pression « condition » s’évalue à True.
Par exemple, si on définit la fonction suivante :
def f ( x ) :
r e s = 0
i f ( x >= 0 ) :
r e s = 1
return res
alors dans la console on a
>>> f(0)
1
>>> f(-1)
0
1.1.2 Test avec deux alternatives
On peut aussi donner deux alternatives :
1
i f ( c o n d i t i o n ) :
# I n s t r u c t i o n s (T 1)
# I n s t r u c t i o n s (T 2)
...
# I n s t r u c t i o n s (T n)
e l s e :
# I n s t r u c t i o n s (F 1)
# I n s t r u c t i o n s (F 2)
...
# I n s t r u c t i o n s (F m)
Dans cette variante, les instructions (T1),...,(T n)sont exécutées si et seulement si l’expression
«condition » s’évalue à True, et les instructions (F1),...,(F m)sont exécutées si et seulement
si l’expression « condition » s’évalue à False,
Par exemple, avec
def test_if_else (x):
i f x >= 0 :
return True
e l s e :
return False
on a, dans la console :
>>> test_if_else(0)
True
>>> test_if_else(-1)
False
Attention. Dans le test avec deux alternatives, l’expression condition n’est évaluée qu’une
seule fois.
1.1.3 Tests imbriqués
Enfin, Python offre un moyen simple d’imbriquer des tests :
i f (condition_1 ):
# I n s t r u c t i o n s a e xe c ut er s i " condition_1 " e s t v r ai e
elif (condition_2 ):
# I n s t r u c t i o n s a e xe c ut er s i :
# " condition_1 " e s t f a us s e ET " condition_2 " e s t v ra i e
Les tests imbriqués peuvent être combinés avec des tests à alternatives :
i f (condition_1 ):
# I n s t r u c t i o n s a e xe c ut er s i " condition_1 " e s t v r ai e
elif (condition_2 ):
# I n s t r u c t i o n s a e xe c ut er s i :
# " condition_1 " e s t f a us s e ET " condition_2 " e s t v ra i e
e l s e :
# I n s t r u c t i o n s a e xe c ut er s i :
# " condition_1 " e s t f a us s e ET " condition_2 " e s t f au s s e
Par exemple,avec
2
def t e s t _ i f _ e l i f ( x ) :
i f x > 0 :
return 1
elif x == 0 :
return 0
e l s e :
return 1
on a, dans la console :
>>> test_if_elif(5)
1
>>> test_if_elif(0)
0
>>> test_if_elif(-10)
-1
1.2 Exercices
Question 1.1 (Calcul du maximum de deux nombres).Écrire et tester une fonction Python
prennant deux arguments et renvoyant le maximmum de ses arguments.
Question 1.2 (Calcul du maximum de trois nombres).Même chose qu’à la question précédente,
mais avec trois arguments.
2 Boucles « tant que »
2.1 Description
Les « boucles tant-que » (ou boucles « while ») permettent de répéter l’exécution d’instruc-
tions tant qu’une certaine condition est satisfaite.
La syntaxe est la suivante :
while ( c o n d i t i o n ) :
# I n s t r u c t i o n s a e xe c ut er
# ta nt que " c on d it i on " e s t v r ai e
Par exemple, avec
def f ( n ) :
i = n
r e s = 0
while ( i != 0 ) :
i = i 1
r e s = r e s + 1
return res
on a
>>> f(0)
0
>>> f(1)
1
>>> f(2)
3
2
>>> f(3)
3
2.2 Exercices
Question 2.1. On considère la fonction « f» ci-dessus.
1. crire l’exécution de « f» sur les entrées 0,1,2,3et 4.
2. Que calcule « f» ?
Question 2.2. Considérons la fonction « g» ci-dessous :
def g ( x ) :
re s = 0
while ( x > 0)
re s = r es + x
x = x 1
return r es
1. crire l’exécution de « g» sur les entrées 0,1,2,3et 4.
2. Que calcule « g» ?
Question 2.3. Considérons la fonction « h» ci-dessous :
def h (n) :
re s = 1
while (n > 0) :
re s = r es n
n = n1
1. crire l’exécution de « h» sur les entrées 0,1,2et 3.
2. Que calcule « h» ?
Question 2.4 (Somme des npremiers entiers pairs).Écrire et tester une fonction Python
prennant en argument un entier « k» et renvoyant la sommes des kpremiers entiers pairs.
Question 2.5 (Somme des npremiers carrés).Écrire et tester une fonction Python prennant
en argument un entier « n» et renvoyant la sommes des npremiers carrés.
Question 2.6 (Division Euclidienne).
1. Écrire et tester une fonction Python calculant le reste de la division euclidienne.
2. Écrire et tester une fonction Python calculant le quotient de la division euclidienne.
Question 2.7 (Partie entière).Écrire une fonction Python qui prend en agument un nombre à
virgule flottante positif et qui renvoie sa partie entière.
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !