Nous avons déjà vu un certain nombre de notions importantes. Nous avons vu la notion d'objet, les notions de variable, de typage dynamique, puis nous avons vu des types centraux en Python, comme les chaînes de caractères ou les listes, et les opérations que l'on peut effectuer sur les séquences. Mais vous pouvez peut-être vous demander comment je fais pour écrire de vrais programmes ? En fait, pour écrire de vrais programmes, il faut maîtriser d'autres notions comme par exemple les tests, les modules, les boucles for, les fonctions. Pour vous permettre, dès cette semaine, de commencer à écrire de vrais programmes, nous allons faire un survol rapide de ces différentes notions clés à l'écriture de vrais programmes.
Dans cette vidéo, je vais vous parler de l'instruction if else, qui permet de faire de l'exécution conditionnelle, c'est-à-dire qu'un morceau de votre code va s'exécuter en fonction du fait qu'un test soit vrai ou qu'un test soit faux. Par exemple, dans une instruction if else, vous pouvez tester si quelque chose est supérieur ou supérieur ou égal à quelque chose d'autre, vous pouvez tester inférieur ou inférieur ou égal, vous pouvez tester l'égalité ou la différence, l'égalité étant le double signe égal et la différence étant notée par point d'exclamation égal, et vous pouvez également faire des tests d'appartenance. En fait, dans un if, vous pouvez mettre n'importe quel type d'expression mais nous reviendrons sur ça lorsque nous détaillerons le fonctionnement précis de l'instruction if else. Maintenant, prenons un exemple de test if else.
Supposons que vous vouliez afficher un message si vous avez une note qui est supérieure à 10 sur 20. Prenons cet exemple ; je commence par définir une variable note qui vaut l'entier 8. Puis je vais écrire mon instruction if. Mon instruction if s'écrit de la manière suivante: j'écris if, c'est l'instruction, une expression, là, mon expression, c'est note supérieure à 10, et un : Ensuite je vais écrire un bloc d'instructions print('reçu'); print('bravo !') puis je peux écrire une condition supplémentaire, c'est-à-dire que si mon if est faux je rentre dans la clause else. Donc après le else, j'ai un : et là encore, j'ai un bloc d'instructions print('recalé').
Revenons maintenant sur cette syntaxe. Vous remarquez que j'ai un : . Vous avez systématiquement un : avant un bloc d'instruction mais qu'est-ce que c'est, un bloc d'instructions ? Un bloc d'instructions, c'est un ensemble d'instructions qui sont toutes indentées du même nombre de caractères vers la droite : la convention est d'indenter tous les blocs d'instructions de 4 caractères vers la droite. Si mon test if est vrai, je vais exécuter les instructions qui sont dans le bloc d'instructions, donc dans ce cas-là, si la note est supérieure strictement à 10. Si jamais ce test est faux, je vais rentrer dans ma clause else qui est elle aussi suivie par un : et je vais exécuter le bloc d'instructions qui est dans ma clause else. Là encore, mon bloc d'instructions c'est toutes les instructions qui sont décalées de 4 caractères vers la droite. Python est un langage qui est conçu autour de cette notion de bloc d'instructions. Et c'est quelque chose qu'il est très important de bien comprendre. Dans un certain nombre de langages, vous n'avez pas cette notion de blocs d'instructions mais les blocs d'instructions sont délimités par exemple par des accolades.
Regardons un exemple. Voici un même test if else que l'on vient d'écrire mais avec une syntaxe qui pourrait être une syntaxe, par exemple, à la Java. Toutes mes instructions finissent par un ; pour déterminer la fin de l'instruction, et mes blocs d'instructions sont séparés par des accolades ouvrantes et des accolades fermantes. Cela constitue un problème connu en programmation, puisque, pour être capable de savoir où placer les accolades, on définit ce qu'on appelle des conventions de codage. La convention de codage n'a absolument aucun impact sur l'exécution de mon code, elle est simplement là pour faciliter la lecture et l'écriture du code. Or, ces conventions de codage font partie d'écoles de programmation, et certaines personnes préfèrent certaines conventions de codage, par exemple mettre les accolades en fin de ligne et en début de ligne, ou alors mettre les accolades alignées avec les instructions. En fait, vous vous rendrez compte, si vous programmez dans d'autres langages que Python, que lire un code écrit avec une convention de codage qui n'est pas la vôtre rend extrêmement difficile l'interprétation ou la lecture de ce code.
En Python, vous n'avez pas ce problème puisque la convention de codage fait partie de la syntaxe. Si vous ne respectez pas la convention de codage, vous aurez une erreur de syntaxe donc votre code ne s'exécutera pas. L'avantage de ça, c'est qu'en Python, vous n'avez qu'une seule manière de présenter votre code. Regardons cela. Ici, j'ai un code avec des accolades et des points virgules à la manière de Java. En Python, vous supprimez tout ce qui est point virgule, la fin d'une instruction, c'est le retour chariot, vous supprimez tout ce qui est accolade les blocs d'instructions sont tous décalés de 4 caractères vers la droite, et vous n'avez que ce fameux symbole ':' . Vous pouvez vous demander mais pourquoi est-ce que je garde quand même le : ? En fait, vous gardez le : parce que ce : a été l'objet de tests utilisateurs et on s'est rendu compte que pour les utilisateurs, c'était plus facile de détecter qu'il y avait des blocs d'instructions lorsqu'ils étaient précédés d'un : Le fait que Python utilise l'indentation comme base de sa syntaxe n'a presque que des avantages ; ça vous permet d'avoir un code écrit toujours de la même manière, extrêmement bien présenté, facile à lire, facile à écrire.
Il a cependant un seul inconvénient, c'est que cette convention, cette syntaxe qui est basée sur l'indentation ne supporte pas très bien le copier-coller. Par conséquent, ma recommandation est lorsque vous copiez-collez du code, par exemple, que vous récupérez d'internet ou d'autres morceaux de code, vous devez toujours très attentivement vérifier que l'indentation respecte ce que vous voulez faire.
Ensuite cette convention de codage qui décale les blocs d'instructions de 4 caractères vers la droite a la tendance à créer des lignes qui sont un petit peu grandes. En Python, on vous recommande de ne pas dépasser 79 caractères sur une seule ligne ; l'idée est de pouvoir, même si aujourd'hui on a des écrans très grands, de pouvoir mettre plusieurs éditeurs l'un à côté de l'autre, et puis de toute manière, c'est plus facile de lire des lignes qui sont courtes que des lignes qui sont longues. En Python, on vous encourage à avoir peu de niveaux d'imbrications de blocs de code pour essayer de rester à ce niveau de 79 colonnes par fichier.
Pour finir, Python vous permet assez facilement de retourner à la ligne tout ce qui est entre parenthèses, entre crochets ou entre accolades supporte le retour chariot sans créer de problème dans la syntaxe de Python. Par exemple, si vous avez une grande liste ou un grand nombre d'expressions séparées par des parenthèses, vous pouvez très facilement faire un retour chariot, et votre éditeur vous permettra de bien aligner ces instructions tout en respectant la syntaxe des blocs d'instructions.