Logo de Python

4: Les conditions

Dans les chapitres précédents, vous avez appris à créer des variables et à les utiliser. Tout cela est bien joli mais votre code est assez limité et vos programmes ne sont clairement pas interactifs. Dans ce chapitre, nous allons découvrir les tests qui vous permettront de rendre votre code plus interactif et plus conditionnel.

1 : Qu’est-ce qu’un test ?

1.1 : Théorie -> Les tests dans le monde de la programmation

Le monde entier est composé de tests. Oui ou Non, Vrai ou Faux, 1 ou 0. En informatique, c’est la même chose. Il est nécessaire de faire des tests pour avoir un peu plus d’interactivité et d’autonomie dans un programme.

Un test peut s’appliquer à toutes les situations. Tous les programmes de l’univers Inter-galactique sont construits autour de tests. Par exemple, on peut tester, dans un jeu vidéo, si un ennemi touche le joueur. Dans ce cas, on soustrait 1 au compte de vie du joueur…

Autre exemple : Si la température du capteur B est supérieure à 50°C, allumer la diode rouge. Sinon, allumer la diode verte…

1.2 : Les tests en Python

Pour créer des tests en Python, il ne suffit que de 3 mots-clé :

  • if (‘Si’ en anglais…)
  • elif (Contraction de ‘else if’, ‘sinon si’ en anglais…)
  • else (‘Sinon’, en anglais…)

Les tests en eux-même sont diversifiés. On peut :

  • Tester si une variable est plus grande qu’une autre
  • Tester si une variable est plus petite qu’une autre
  • Tester si une variable est égale à une autre
  • Tester si une variable est différente à une autre

Voilà sur quoi se basent tous les programmes dans tous les langages de programmation (à quelques différences près). Mais maintenant, voyons quelques exemples, et décortiquons les, afin de comprendre leur fonctionnement. Vous découvrirez dedans comment utiliser tous les tests que je viens de citer.

 

2 : Exemples de tests

Exemple 1 :

var1 = 0 # Création d'une variable dont la valeur va être testée
if var1 < 20: 
    print("Plus petit que 20") 
elif var1 > 20:
    print("Plus grand que 20, on rétablie ça")
    var1 = 10
else:
    print("Aucun des deux ?")

Dans le premier exemple, nous voyons un arbre de condition typique. C’est extrêmement facile à lire, malgré quelques subtilités :

  • Si la valeur de la variable var1 est plus petite que vingt, on exécute print(“Plus petit que 20“)
  • Sinon si la valeur de la variable var1 est plus grande que vingt, on exécute le code, on exécute print(“Plus grand que 20, on rétablie ça”) et on défini la valeur de la variable à 10
  • Sinon, si aucune des conditions n’est valide, on utilise la condition par défaut, et on exécute print(“Aucun des deux ?”)

Une petite chose pour ne pas provoquer d’erreurs, il ne faut pas oublier de faire une tabulation après votre if., si celle-ci n’est pas insérée automatiquement dans l’éditeur. La tabulation représente l’intérieur du if. Si il n’y a plus de tabulation, vous sortez du bloc de code du if. De plus, erreur bête, surveillez à ne pas oublier les deux points.

 

Exemple 2 :

 

if var1 == var2:
    print("Egalité !")
else:
    print("Pas d'egalité !")

Dans ce code, nous voyons un exemple typique de test d’une égalité. On note surtout la présence d’un double égal pour tester une égalité. Est-ce une faute de frappe ? Non, c’est tout simplement car l’opérateur ‘=’ est déjà réservé à l’initialisation (Lorsque l’on donne une valeur à une variable). Donc, on utilise l’opérateur ‘==’ pour tester une égalité. Ecrire ‘if var1 = var2:’ est une erreur. 

 

Exemple 3 :

 

if input("Dites un mot") != "Bonjour":
    print("Quel impoli !")

Ici, nous voyons qu’il est possible de faire des tests immédiatement avec une valeur retournée, sans créer de variables. Généralement, les débutants créent beaucoup de variables inutiles, alors qu’il serait possible de réduire le code un minimum, en utilisant directement les valeurs retournées des fonctions. A part ça, on voit aussi qu’il est possible de comparer des chaînes de caractères.

Sinon, l’opérateur != signifie “est différent de”. La condition sera vrai uniquement si la valeur à gauche de l’opérateur est différente de la valeur à droite.

 

Exemple 4 :

 

if True:
    print("Code absolument inutile")

Ce test est inutile, car il sera toujours valide. En programmation True signifie Vrai, et False signifie Faux. Si vous écrivez ‘if True:’, True est toujours vrai, donc le test sera toujours concluant. 

 

Exemple 5 :

 

if var1 == 5 and var2 == 10:
    print("Les deux sont ok")

Ce code nous présente les tests multiples. Le mot-clé ‘and’ permet de combiner plusieurs tests en un seul. Ici, pour que le test soit valide, et que le code soit exécuté, il faut que les deux conditions soient valides. Si var1 est égal à 5, mais var2 est égal à 15, alors, le test sera non-valide, et la phrase “Les deux sont ok” ne sera jamais affiché.

 

Exemple 6 :

if var1 == 5 or var2 == 10:
    print("L'un des deux est ok")

 

Ici, nous avons un autre test multiple, mais fait d’une manière différente. Le mot-clé ‘or’ définit que le test sera valide si une des deux conditions est vraie. Ici, si var1 équivaut à 5, et var2 égal 15, le test sera quand même validé, et la phrase “L’un des deux est ok” s’affichera à l’écran.

 

Exemple 7 :

 

if var1 == 5 or var1 == 10 and var3 == 10:
    print("Test ok")

Enfin, pour conclure ce chapitre, ce dernier test nous montre qu’il est possible de combiner le mot-clé and et le mot clé or dans un seul test. Ici, le test sera valide si var1 est égale à 5 ou si var est égale à 10 et var3 est égale à 10.