# Python/Les types de base
## Vision des types

On retrouve en Python certains types usuels des langages les plus utilisés. Ceux-ci sont visibles avec la commande "type" :

## Liste des types

| | Rang | Nom du type (anglais) | Nom du type (français) | Code du type | Description |
| Types numériques | 1 | Integer | Entier | int | Entier compris entre -2 147 483 648 et 2 147 483 647 (codage sur 32 bits soit 4 octets) |
| Types numériques | 2 | Long integer (n'existe plus) | Entier long | long | Entier compris entre $-\infty$ et -2 147 483 647 ou entre 2 147 483 648 et $+\infty$ |
| Types numériques | 3 | Floating point number | Nombre à virgule flottante | float | Valeur spécifiée avec un point dans le programme (exemple : a = 2.0) permettant une approximation de nombre réel |
| Types numériques | 4 | Complex | Nombre complexe | complex | Nombre complexe |
| Types d'objets itérables | 5 | Character string | Chaîne de caractères | str | Chaîne de caractères |
| Types d'objets itérables | 6 | Unicode character string | Chaîne de caractères Unicode | unicode | Chaîne de caractères encodés selon la norme Unicode |
| Types d'objets itérables | 7 | basestring | Chaîne de caractères | basestring | Chaîne de caractères str + unicode |
| Types d'objets itérables | 8 | N-uplet | N-uplet | tuple | Tuple de forme (1,2,3,"je suis un tuple",5,3.14159) |
| Types d'objets itérables | 9 | List | Liste | list | Liste de forme [1,2,3,"je suis une liste",'...'] |
| Types d'objets itérables | 10 | X range | Intervalle X | xrange | Liste dont les numéros peuvent être générés automatiquement |
| Types d'objets itérables | 11 | Dictionary | Dictionnaire | dict | Dictionnaire de forme {'Œuf': 1, 'Jambon': 0} |
| Types d'objets itérables | 12 | Set | Collection | set | Collection désordonnée d'éléments uniques |
| Types d'objets itérables | 13 | Frozenset | Collection figée | frozenset | Collection désordonnée immuable d'éléments uniques |
| Types d'objets itérables | 14 | File | Fichier | file | Fichier informatique |
| Autres types d'objets |
| Autres types d'objets | 15 | None | Rien | (pas de code de type) | Type d'un vide (par exemple, par assignation de la valeur none à une variable) |
| Autres types d'objets | 16 | Type | Type | type | Type du type des objets (exemple : type de la valeur renvoyée par la fonction type) |
| Autres types d'objets | 17 | Object | Objet | object | Type basique |
| Autres types d'objets | 18 | Slice | Couper | slice | Objet extensible |
| Autres types d'objets | 19 | Not implemented type | Absence d'implémentation | NotImplementedType | |
| Autres types d'objets | 20 | Boolean | Valeur booléenne | bool | Type de True et de False (renvoyés par exemple lors de tests ou d'opérations booléennes) |
| Autres types d'objets | 21 | Exception | Exception | exception | Message d'erreur |
| Autres types d'objets | 22 | function | Fonction | fonction | Fonction |
| Autres types d'objets | 23 | module | Module | module | Module |

## Conversion des types

Il existe plusieurs fonctions qui permettent de forcer le type d'une variable en un autre type :
* int : permet de modifier une variable en entier.
* long : transforme une valeur en long. (n'existe plus)
* float : permet la transformation en flottant.
* str : permet de transformer la plupart des variables d'un autre type en chaînes de caractère.
* repr : similaire à str.
* eval : évalue le contenu de son argument comme si c’était du code Python.
* unicode : convertit en Unicode.
Exemple de conversion :
| L'interpréteur | Les structures de données |