3: Commentaires et guillemets

Un programme informatique ressemble à un langage codé, ce qui est nécessaire pour que l'ordinateur comprenne précisément ce que vos commandes signifient. Mais, étant un langage codé, il est difficile pour les humains de le lire. Pour compenser ce problème, vous êtes autorisés à écrire des notes dans votre programme que l'ordinateur ignore. Ces notes s'appellent des commentaires.

En Python, une ligne d'instructions qui contient le symbole # (dièse) signifie un commentaire. Le reste de la ligne sera ignoré quand le programme sera exécuté. Voici un exemple.

Exemple
Effet d'un commentaire.

Comme la seconde ligne de code commence avec le signe #, Python ignore complètement cette ligne, et comme vous pouvez le voir, le nombre 2 n'est pas affiché. Les utilisations courantes pour les commentaires sont:

  • Expliquer des parties du programme, pour vous ou pour d'autres personnes qui le liront plus tard;
  • laisser des notes "à faire" pendant que vous écrivez le programme;
  • désactiver temporairement (commenter) une ligne de votre programme sans l'effacer complètement afin qu'il soit plus facile de la remettre plus tard.

Voici un exercice d'illustration. Si vous éditez trop votre code et que vous voulez revenir à la version originale, sélectionnez Réinitialiser code.

Exercice de code : Service secondeaire
Déboguez ce programme afin qu'il écrive le nombre de secondes dans une semaine.

Chaînes de caractères

Les chaînes de caractères (ou chaînes) sont des séquences de lettres et de nombres, ou, en d'autres termes, des morceaux de textes. Elles sont entourées par deux guillemets: par exemple, dans la leçon 0, la partie "Bonjour, Python !" du premier programme était une chaîne de caractères. Si un dièse # apparaît dans une chaîne de caractères, il n'est pas considéré comme indiquant un commentaire:

Exemple
Une chaîne de caractères contenant le signe #.

Ce comportement est du au fait que la partie à l'intérieur des guillemets "" est un litéral de chaîne, ce qui signifie qu'il devrait être copié litéralement et pas intrerprété comme une commande. De la même manière, print("3 + 4") n'écrira pas le nombre 7 mais juste la chaîne 3 + 4.

Séquences d'échappement

Comment faire si vous voulez insérer des guillemets " à l'intérieur d'une chaîne? Si vous essayez d'exécuter print("J'ai dit "Wow!" très fort"), cela génère une erreur : le problème est que Python voit une chaîne, "J'ai dit " suivie de quelque chose qui n'est pas une chaîne: Wow!. Ce n'est pas ce que nous voulions!

Python propose deux moyens simples d'insérer des guillemets à l'intérieur d'une chaîne.

  • Vous pouvez commencer et terminer une chaîne litérale avec des apostrophes à la place des guillemets, par exemple 'blah blah'. Les guillemets peuvent ainsi être placés à l'intérieur 'Tu as dit "Wow!" très fort.'
  • Vous pouvez placer une barre oblique inversée suivie du guillemet ou de l'apostrophe (\" or \'). Cela s'appelle une séquence d'échappement; Python va supprimer la barre oblique inversée et n'afficher que le guillemet ou l'apostrophe à l'intérieur de la chaîne. Voici un exemple.
    Exemple
    Les barres obliques inversées protègent les guillemets mais ne sont pas affichées.

A cause des séquences d'échappement, la barre oblique inversée (\) est un symbole spécial. Pour l'inclure dans une chaîne, il faut l'échapper avec une deuxième barre oblique inversée, en d'autres termes, il faut écrire \\ dans votre chaîne litérale.

Exercice à choix multiple : Caractères d'échappements
Qu'affiche le code print("Les barres obliques inversées \\, les apostrophes \', les guillemets \" et les dièses # sont géniaux!")
Correct !

Exercice de code : Echappé belle
Ecrivez un programme qui affiche:

Echappez l'apostrophe et le guillemet, comme \"
Note: il y a plusieurs manière d'arriver au résultat (comme toujours)! Par exemple, vous pouvez entourer la chaîne d'apostrophes ou de guillemets. Dans chacun des cas, l'échappement est nécessaire. Pour pratiquer un peu plus, résolvez le problème d'une manière puis de l'autre. Pouvez-vous trouver une troisième solution?

Il y a d'autres séquences d'échappement comme saut de ligne dont nous ne parlerons pas pour le moment. Vous êtes prêt à passer à la leçon suivante!