Leçons ·
Les variables et les types
Nommer une valeur, reconnaître son type, calculer et convertir, avec les ventes d'Awa.
Transcription
Reprenons Awa, qui gère sa boutique à Yaoundé. Sur chaque article, elle colle une étiquette avec un prix. Ainsi, quand un client demande combien coûte le savon, elle n'a pas besoin de tout retenir dans sa tête : elle lit simplement l'étiquette.
Un programme a exactement le même besoin, car il doit se souvenir de certaines valeurs pendant qu'il travaille. Pour cela, il utilise une variable. Donc une variable, c'est un peu comme cette étiquette ? Oui, c'est une très bonne image. Une variable, c'est un nom posé sur une valeur.
Regardons comment Awa l'écrit. À gauche, elle met le nom, ici prix. Au milieu, elle met le signe égal. À droite, elle met la valeur, ici 1500. Et voilà, l'étiquette est collée.
Mais ce signe égal, c'est le même qu'en mathématiques ? Non, et c'est très important de bien le comprendre. En mathématiques, il dit que deux choses sont égales. Ici, il donne un ordre : mets la valeur 1500 sur le nom prix. On peut donc lire cette ligne ainsi : prix reçoit la valeur 1500.
Maintenant, Awa veut voir ce prix à l'écran. Elle utilise pour cela la fonction print, qui veut dire afficher. Entre les parenthèses, elle écrit le nom prix, sans guillemets. Python va donc lire l'étiquette et il affiche sa valeur, 1500.
Et si le prix change demain, est-ce qu'elle doit réécrire tout son programme ? Non, elle fait comme dans sa boutique : elle remplace l'étiquette. Elle écrit à nouveau prix, le signe égal, puis la nouvelle valeur, 1800. L'ancienne valeur est alors perdue pour ce nom.
Python lit toujours le code de haut en bas, une ligne après l'autre. Quand il arrive à ce deuxième print, la dernière valeur donnée à prix est 1800, et c'est donc 1800 qu'il affiche.
Dans sa boutique, Awa n'a pas que des prix. Elle a aussi des quantités, des noms de villes et des clients inscrits ou non. Est-ce que Python range tout cela de la même façon ? Non, et c'est logique. On peut additionner deux quantités, mais additionner deux noms de villes n'aurait aucun sens. Python doit donc savoir de quelle sorte est chaque valeur, et c'est ce qu'on appelle son type.
Commençons par la quantité, 25. C'est un nombre sans virgule, qu'on appelle un entier. En Python, ce type s'appelle int. Regardez, il se range sur l'étagère des nombres entiers.
Voici maintenant un prix de 1500 virgule 5. Il a une partie après la virgule, donc c'est un autre type, qu'on appelle float. Faites bien attention à une chose : en Python, on écrit un point à la place de la virgule.
Passons au nom de la ville, Douala. C'est un texte, et ce type s'appelle str. On reconnaît toujours un texte à ses guillemets, qui disent à Python : ceci n'est pas un nom de variable, c'est du texte.
Alors si j'écris 25 entre guillemets, ce n'est plus un nombre ? Exactement, et regardez où il se range : sur l'étagère des textes. Pour nous, cela ressemble à un nombre, mais pour Python, c'est juste deux caractères, le 2 et le 5. Retenez bien ce détail, car il cause beaucoup d'erreurs, et nous allons le retrouver dans un instant.
Enfin, pour dire si un client est inscrit ou non, il n'y a que deux réponses possibles : vrai ou faux. Ce type s'appelle bool, et ses deux valeurs s'écrivent True et False, avec une majuscule.
Maintenant qu'elle a ses nombres, comment fait-elle ses calculs ? L'addition, la soustraction et la multiplication s'écrivent presque comme à l'école, avec le signe plus, le signe moins et l'étoile.
La division, elle, mérite qu'on prenne notre temps, car elle a plusieurs formes. Imaginons qu'Awa ait 17 articles à ranger par lots de 5.
Avec une seule barre oblique, on fait la division habituelle : 17 divisé par 5 donne 3 virgule 4. Mais Awa ne peut pas faire 3 lots et 4 dixièmes de lot.
Elle veut donc savoir combien de lots complets elle peut former. Pour cela, elle écrit deux barres obliques, qui gardent seulement la partie entière. Le résultat est 3, et vous voyez ses trois lots complets.
Et les articles qui ne rentrent dans aucun lot ? C'est le reste de la division, et on l'obtient avec l'opérateur modulo, qui s'écrit avec le signe pourcentage. Ici, il ne s'agit donc pas d'un pourcentage. Le résultat est 2, puisque 3 lots de 5 font 15 articles, et qu'il en reste 2 pour arriver à 17.
Retenez aussi un petit piège. Même quand la division tombe juste, la barre oblique simple donne toujours un float. Ainsi, 10 divisé par 2 ne donne pas 5, mais 5 point 0.
Revenons maintenant à nos chiffres entre guillemets. Quand un client remplit un formulaire sur internet et tape 42 dans la case quantité, sa réponse arrive presque toujours sous forme de texte, même s'il a tapé un nombre.
Donc si Awa ajoute 8 à cette réponse, elle n'obtient pas 50 ? Non, elle obtient même une erreur, et Python s'arrête. Cette erreur s'appelle TypeError, c'est-à-dire une erreur de type. Il refuse d'additionner un texte et un nombre, car il ne sait pas ce que vous voulez vraiment. Une erreur n'est pas une catastrophe : c'est Python qui vous explique ce qui ne va pas.
Et comment corriger cette erreur ? Il faut d'abord transformer le texte en nombre, et c'est ce qu'on appelle une conversion. La fonction int prend le texte 42 et donne le nombre entier 42. Regardez bien : les guillemets ont disparu.
Maintenant, Python a deux nombres devant lui, 42 et 8, et l'addition donne bien 50. Retenez donc cette règle : ce qui vient d'un formulaire est du texte, et on le convertit avant de calculer.
Il reste une dernière chose à voir, car on veut souvent afficher un résultat dans une phrase. Prenons un bulletin scolaire, avec un nom et une note de 15 virgule 75.
On écrit alors une f-string, qui ressemble à un texte à trous. On met la lettre f juste avant les guillemets. Puis, à chaque endroit où l'on veut une valeur, on ouvre des accolades et on écrit le nom de la variable.
Et le format deux-points, point 1 f, à quoi sert-il ? Il demande à Python d'arrondir le nombre à un seul chiffre après la virgule. C'est pourquoi 15 virgule 75 s'affiche 15 point 8. Python remplit donc les trous, et la phrase apparaît.
Très bien, et maintenant, que doit-on faire pour vérifier qu'on a compris ? Le mieux est d'essayer sans revoir la vidéo. Cela peut sembler difficile, mais c'est justement en cherchant la réponse de mémoire qu'on la retient. Dans la leçon, vous allez donc écrire vous-même ces calculs, puis repérer l'erreur dans un code écrit par une intelligence artificielle.
Voix : Google Chirp 3 HD (Despina, Enceladus).
Photos : One Idea LLC, StockSnap, CC0

