Quand on programme, il est indispensable de pouvoir expliquer à notre cher ordinateur quoi faire selon les cas qu'il va rencontrer. C'est là qu'entre en jeu la structure if... else....
"if" veut dire "si" et "else" veut dire "sinon". Une fois qu'on sait ça, la structure devient assez intuitive mais il reste à respecter une certaine syntaxe.
La structure if... elif... else...
if tout seul : Décortiquons un exemple.
>>>note=input("note")
>>>if note>16 :
>>> print("Très Bien !")
La première ligne demande simplement à l'utilisateur de rentrer sa note.
Pour la deuxième, on pourrait traduire le "if" par "si" et l'indispensable ":" en fin de ligne par "faire" ce qui donnerait "Si note>16 faire".
L'ordinateur comprend alors qu'il doit faire ce qui suit seulement si la note est supérieure à 16. Plus précisément, il ne va pas faire tout ce qui suit mais seulement ce qui est écrit en décalé (on dit que le texte est indenté). C'est pour cela que print n'est pas écrit au même niveau que if. Pour indenter, on utilise la touche tabulation.
Pour résumer notre exemple, si on rentre la note 19, le programme affichera Très Bien !. Si on rentre la note 15 il ne fera rien.
if... else... : Étoffons notre exemple en rajouter ce qu'il doit mettre si la note n'est pas supérieure à 16.
>>>note=input("note")
>>>if note>16 :
>>> print("Très Bien !")
>>>else :
>>> print("Tu devras recopier 3 fois toutes les décimales de pi !")
Comme pour tout à l'heure, on peut traduire "else" par "sinon" et le ":" par "faire". L'ordinateur comprend alors que si la condition note>16 n'est pas vérifiée alors il exécutera ce qui est indenté en dessous de else.
if... elif... else... : elif est simplement un condensé de else et if c'est à dire qu'on peut le traduire par "sinon si". Il nous permet d'enchainer les distinctions de cas.
On peut en mettre autant que l'on veut.
>>>note=input("note")
>>>if note>16 :
>>> print("Très Bien !")
>>>elif note>13 :
>>> print("Bien")
>>>elif note>10
>>> print("Assez Bien")
>>>elif note>20 :
>>> print("Tu es un génie")
>>>else :
>>> print("Tu devras recopier 3 fois toutes les décimales de pi !")
Remarque : Pour le premier elif, je n'ai pas besoin de vérifier que la note est en dessous de 16 car si c'était le cas il aurait affiché "Très Bien !" et serait passé directement à la suite du else sans regarder les autres conditions.
C'est pour cette même raison que "Tu es un génie" ne pourra jamais s'afficher car si la note est par exemple 22, on a note>16 et donc il s'affichera "Très Bien !" et c'est tout.
Les conditions
True et False : Ce sont les booléens. True signifiant vrai et False faux. C'est la seule chose qu'on peut mettre après un if ou un elif !
Mais c'est exactement comme lorsqu'on dit que x est un nombre, un booléen peut se présenter de différente façon.
Comparaisons : Une façon d'obtenir un booléen est en comparant deux objets. Voici les notations pour pouvoir comparer :
== : pour tester l'égalité. Il faut doubler le = pour le différencier de l'affectation des variables.
!= : différent de.
< : strictement inférieur.
<= :inférieur ou égal.
> : strictement supérieur.
>= : supérieur ou égal.
>>>1+1 == 2
True
>>>2*3 == 3
False
>>> 2+3 != 4
True
>>> 14 >= 15
False
Les inégalités ne fonctionnent pas que pour les nombres. Par exemple on peut comparer des mots avec l'ordre lexicographique (celui du dictionnaire).
>>> "elephant" < "souris"
True
>>> "français" < "mathématiques"
True
>>> (1,5)<(2,3)
True
not, and et or : On les appelle des connecteurs logiques. Il en existe plusieurs mais ce sont les principaux.
Si on les traduit, ça donnerait "contraire de" pour not, "et" pour and et "ou" pour or.
Par exemple :
not x<3 est identique à x>=3.
x<3 and x>1 est identique à 1<x<3 car x doit vérifier les deux conditions en même temps.
x<3 or x>5 est identique... à elle même car il n'y a pas de façon plus concise de l'écrire. Elle sera vraie si une des deux conditions est vérifiée.
Exercices
Tous les exercices sont maintenant regroupés dans ce recueil : Lien vers le recueil d'exercices