Types de données en Python
Les programmes informatiques traitent des données de différents types. Voyons ce que cela signifie.
Le type "chaîne de caractères" (string)
- Assure-toi que l'interpréteur Python est actif
- En veillant bien à entourer la phrase par des guillemets, frappe la commande
>>> print "Bonjour tout le monde"
- En veillant à ne pas mettre les guillemets, frappe ensuite la commande
>>> print Bonjour tout le monde
- Note la différence de comportement
- En veillant bien à entourer la phrase par des guillemets, frappe la commande
>>> print "oP78 %@__98[##"
Ouaahh, puissant!! Et il faut vraiment un ordinateur pour faire ça?
L'intérêt de l'ordinateur est plutôt minime. L'expérience nous permet toutefois de tirer une leçon.
Lorsque l'on souhaite faire écrire une suite de caractères en langage Python (même si cette suite n'a aucun sens pour nous), les caractères doivent être entourés de guillemets.
Nous venons ainsi de faire la connaissance d'un premier type de données appelé "chaîne de caractères".
En informatique, on désigne souvent les "chaînes de caractères" par le nom "string" (qui signifie "chaîne", en anglais).
Le type "entier" (int)
- L'interpréteur Python est toujours actif
- En veillant bien à entourer la phrase par des guillemets, frappe la commande
>>> print "5+3"
- En veillant à ne pas mettre les guillemets, frappe ensuite la commande
>>> print 5+3
- Note la différence de comportement
- Effectue ensuite quelques autres additions, soustractions et multiplications (opérateur *)
- Dans le premier cas, l'ordinateur écrit la suite de caractères "5", le signe + et "3". Il s'agit bien d'une chaîne.
- Quand l'écriture n'est pas entourée de guillemets, l'ordinateur écrit le résultat du calcul
- Toujours sans guillemets, frappe la commande
>>> print 4 / 2
- Frappe ensuite les commandes
>>> print 5 / 2
>>> print 14 / 4
>>> print 31 / 9
>>> print 14 / 4
>>> print 31 / 9
Pouaaah!! Ridicule. On a trouvé le premier ordinateur incapable de calculer correctement. Le voilà bon pour la casse, le pauvre.
Contrairement à ce que l'on pourrait croire, les résultats des opérations précédentes sont parfaitement corrects. Simplement, l'ordinateur calcule en nombre entiers, comme vous le faisiez au début de l'école primaire.
>>> print 5/2
2
2
Le résultat est 2 et il reste 1 (ce que l'ordinateur ne dit pas puisque nous ne l'avons pas demandé)
>>> print 14/4
3
3
Les résultat est bien 3 et il reste 2
>>> print 31/9
3
3
Le résultat est 3 et il reste 4
En informatique, le type "entier" est encore appelé "integer" ou "int" (en anglais).
Bon, d'accord, tout ça est bien gentil. Mais on n'ira jamais sur la lune avec un ordinateur qui ne connaît que les nombres entiers.
Pas de panique: il peut aussi traiter les nombres réels.
Le type "réel" (float)
- En n'omettant pas d'indiquer un point à la place de la virgule, frappe les commandes
>>> print 5.7 / 3
>>> print 31/9.0
>>> print 1E3 / 20
>>> print 882.567E15 / 20
>>> print 31/9.0
>>> print 1E3 / 20
>>> print 882.567E15 / 20
- Note les résultats
Pour que l'interpréteur Python travaille dans l'ensemble des réels, il suffit que l'un des termes de l'opération à effectuer:
- contienne un "point" décimal (équivalent de la virgule utlisée en français)
- le signe "E" qui signifie "x 10 exposant" (comme sur les calculatrices scientifiques)
En informatique, le type "réel" est encore appelé "flottant" ou "float" (en anglais).
Flottant? J'aimerais bien savoir ce qui flotte là-dedans, moi.
Tout simple: c'est la virgule qui flotte.
Exemple: 6482 est noté 6.482 E 3
Si ce nombre est divisé par 10000, il devient 6.482 E -1
Si ce nombre est divisé par 10000, il devient 6.482 E -1
En fait, l'exposant de 10 utilisé indique de combien de rangs il faut déplacer la virgule pour obtenir le nombre, en notation plus traditionnelles. Cet exposant sert donc bien à faire "flotter" la virgule.
Dans la mémoire de l'ordinateur, ce type de nombre est représenté comme en notation scientifique:
- un seul chiffre devant la virgule suivi d'un certain nombre de décimales
- l'exposant de 10 nécessaire pour obtenir la valeur correcte du nombre
Remarque: le reste de la division entière
Appliqué aux nombres entier, l'opérateur "/" permet de calculer le résultat de la division entière de deux nombres.
L'opérateur "%" permet de calculer le reste de la division entière.
- Frappe les commandes
>>> print 5 / 3
>>> print 5 % 3
>>> print 20 / 7
>>> print 20 % 7
>>> print 5 % 3
>>> print 20 / 7
>>> print 20 % 7
- Note les résultats