Dans les langages de programmation comme Python
, un nombre comme
502
et un mot comme "classe"
,
ne sont évidemment pas représentés de la même façon dans l'ordinateur, même si l'unité fondamentale de
codage en informatique est le bit qui peut prendre deux valeurs 0 ou 1.
La façon dont une valeur est représentée dans le langage s'appelle son type.
En Python
, un entier est de type int
et
un mot est de type str
, qui signifie chaîne de caractères .
De plus, tous les nombres n'appartiennent pas au même type, par exemple les nombres réels sont approchées en machine
par un sous-ensemble des décimaux qui est l'ensemble des flottants, de typefloat
.
Enfin, dans les structures de test, nous utiliserons des booléens, des valeurs de type bool
, qui ne prend
que deux valeurs logiques True
ou False
.
En général, on ne peut pas réaliser une opération dont les opérandes sont des valeurs de types différents.
Python
applique toutefois des conversions de type implicites : on peut ainsi ajouter deux valeurs de
types int
et float
et le résultat sera de type float
.
In [8]: a = 502
In [9]: type(a)
Out[9]: int
In [10]: a = 502
In [11]: print(type(a))
<class 'int'>
In [12]: b = "pa"
In [13]: print(type(b))
<class 'str'>
In [14]: a = a + a
In [15]: a
Out[15]: 1004
In [16]: b = b = b
In [17]: b
Out[17]: 'pa'
In [19]: b = b + b
In [20]: print(b)
papa
In [21]: c = 1/3
In [22]: print(type(c))
<class 'float'>
In [23]: a + b
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-22-bd58363a63fc> in <module>()
----> 1 a + b
TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [24]: d = a + c
In [25]: d
Out[25]: 1004.3333333333334
In [26]: print(type(d))
<class 'float'>
In [27]: e = True
In [28]: print(type(e))
<class 'bool'>
In [28]: f = False
In [29]: e and f
Out[29]: False