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