Dans cette séquence nous aborderons 2 notions fondamentales :
Si quelqu'un vous dit que « 4 est égal à 5», vous lui répondez quoi ? «C'est faux». Si maintenant la même personne vous dit que «7 est égal à 7», vous lui répondrez bien évidemment que «c'est vrai».
En Python, ces deux «affirmations» («4 est égal à 5» et «7 est égal à 7») s'écriront «4 == 5» et «7 == 7» (notez bien le double signe égal).
Tester dans la console le code suivant:
print(4==5)
print(7==7)
Le «double égal» (==) est l'opérateur d'égalité. L'opérateur d'égalité est soit vrai (True) soit faux (False).
L'utilisation de l'opérateur d'égalité va prendre tout son sens avec des variables.
Soit le programme suivant (quel est le résultat attendu après l'exécution de ce programme ?) :
a=4
b=7
print(a==b)
a=7
print(a==b)
Quel est le résultat attendu après l'exécution de ce programme ?
ATTENTION : Il ne faut pas confondre l'opérateur d'égalité (==) et l'opérateur d'affectation (=) utilisé pour attribuer une valeur aux variables. La confusion entre ces 2 opérateurs est une erreur classique qui est parfois très difficile à détecter !
Il est possible d'utiliser aussi l'opérateur « différent de » != Testez le programme suivant :
a=4
b=7
print(a!=b)
a=7
print(a!=b)
À chaque fois ces opérateurs sont True (vrai) ou False (faux).
Quel est le résultat attendu après l'exécution du programme ci-dessous ?
a=4
b=4
print(a<b)
a=7
print(a<b)
si condition:
suite_instruction1
sinon:
suite_instruction2
Si « condition » est True alors « suite_instruction1 » est exécuté et « suite_instruction2 » est ignoré.
Sinon (sous-entendu que « condition » est False) « suite_instruction2 » est exécuté et « suite_instruction1 » est ignoré.
Notez l'utilisation d'un élément nouveau : le décalage de «suite_instruction1» et de « suite_instruction2». Ce décalage est appelé indentation, il permet de rendre le code plus lisible. Dans le cas de l'utilisation d'un si/alors, l'indentation est obligatoire en Python.
Quel est le résultat attendu après l'exécution du programme ci-dessous ?
a=4
b=7
if a<b:
print('Je suis toto.')
print("Je n'aime pas titi.")
else:
print('Je suis titi.')
print("Je n'aime pas toto.")
print("En revanche, j'aime le Python.")
Notez la présence des guillemets " à la place de l'apostrophe '. Pourquoi d'après vous ?
Écrire un programme qu'on nommera script6.py qui demande l'âge de l'utilisateur. Si l'utilisateur a 18 ans ou plus, le programme devra afficher « Bonjour, vous êtes majeur.». Si l'utilisateur a moins de 18 ans, le programme devra afficher « Bonjour, tu es mineur.»
Pour l'instant, ce problème est insoluble, surtout si l'utilisateur s'acharne à entrer n'importe quoi. Nous verrons une solution à notre problème un peu plus loin.
Un if
peut contenir plusieurs conditions, nous aurons alors une structure de la forme :
si condition1 op_logique condition2:
suite_instruction1
sinon:
suite_instruction2
« op_logique » étant un opérateur logique.
Nous allons étudier 2 opérateurs logiques : le «ou» (noté en Python or) et le «et» (noté en Python and).
Par exemple (condition1 or condition2) est vrai si condition1 est vraie et condition2 est vraie.
Autre exemple (condition1 and condition2) est faux si condition1 est vraie et condition2 est faux.
Les résultats peuvent être regroupés dans ce que l'on appelle une table de vérité :
Table de vérité pour le ou
condition1 | condition2 | condition1 || condition2 |
---|---|---|
vrai | vrai | vrai |
vrai | faux | vrai |
faux | vrai | vrai |
faux | faux | faux |
condition1 | condition2 | condition1 && condition2 |
---|---|---|
vrai | vrai | vrai |
vrai | faux | faux |
faux | vrai | faux |
faux | faux | faux |
Nous aurons l'occasion d'utiliser ces opérateurs logiques très prochainement.
La notion de boucle est fondamentale en informatique. Une boucle permet d'exécuter plusieurs fois des instructions qui ne sont présentes qu'une seule fois dans le code.
La structure de la boucle while est la suivante :
while condition:
instruction1
instruction2
suite programme
Tant que la condition reste vraie, les instructions à l'intérieur du bloc (partie indentée) seront exécutées.
Quel est le résultat attendu après l'exécution du programme ci-dessous ? Essayez-le et sauvegardez le sous script7.py.
NB : l'option end = ""
empêche le retour à la ligne.
i=0
while i<=10:
print("i vaut :", end=""),
print(i)
i=i+1
print("C'est terminé")
Écrivez un programme script8.py permettant d'afficher une table de multiplication. L'utilisateur entre la table qu'il désire (de 1 à 9), le programme permet alors d'afficher la table demandée.
Par exemple si l'utilisateur demande la table des 3, le programme devra afficher :
1 x 3 = 3
2 x 3 = 6
.
.
10 x 3 = 30
Modifiez le programme précédent pour que si l'utilisateur entre un nombre inférieur à 1 ou supérieur 9, le programme lui pose de nouveau la question : « Quelle table désirez-vous ? ».
Ecrivez un programme script10.py qui affiche sur une même ligne les 20 premiers termes de la table de multiplication par 7, en signalant au passage (par une astérisque) ceux qui sont des multiples de 3.
Vous devez obtenir : 7 14 21 * 28 35 42 * .....