.. todo:: Expliquer ce qu'est un type. En fait, on devrait parler de classe.
On décrit dans ce paragraphe les types de base utilisés par Python.
Un objet de type booléen peut prendre les valeurs logiques vrai (True
) ou faux (False
).
.. ipython:: python type(True) type(False)
Les entiers Python ne sont théoriquement pas limités en taille même si, en pratique, on est limité par la mémoire de la machine.
.. ipython:: python type(12) type(-34)
Les nombres non entiers (nombres "à virgule") sont stockés sous la forme de nombres flottants. La virgule est notée à l'anglo-saxonne à l'aide du caractère .
. On peut également utiliser la notation scientifique : 1.23e45
signifie 1,23\times10^{45}.
.. ipython:: python type(1.23) type(1.) type(1.23e45)
Les nombres flottants sont en fait de la forme \pm m.2^e où m est un réel de l'intervalle [1,2[ appelé mantisse et e est un entier. Les nombres m et e sont stockés sur un nombre fixé de bits [1] : il n'existe par conséquent qu'un nombre fini de nombres flottants.
Il faut bien comprendre que les nombres flottants ne sont en fait que des approximations des nombres réels que l'on considère, ce qui peut parfois créer des surprises.
.. ipython:: python 2.3-1.5
Les nombres complexes se notent à l'aide de la lettre j
qui indique la partie imaginaire. Par exemple, le complexe 1+2i s'écrit 1+2j
.
.. ipython:: python type(1.2+3.4j)
Note
Pour représenter un complexe la lettre j
doit toujours être précédée d'un caractère numérique. Le complexe i sera donc représenté par 1j
.
On peut accéder aux parties réelle et imaginaire d'un nombre complexe grâce aux attributs real
et imag
.
.. ipython:: python z = 3 + 4j z.real z.imag
.. ipython:: python type({'toto': 123, 'titi': 4.56, 'tata': 'abc'})
Notes
[1] | Pour plus de précision, on pourra consulter la définition de la norme IEEE 754. |
.. todo:: duck typing