Menu
Français

Types de données Python : int, float, str, bool, list, dict et plus

Un tour des types de données intégrés à Python — nombres, chaînes, booléens, None, listes, tuples, ensembles, dictionnaires — avec des exemples et quand utiliser chacun.

Pourquoi les types comptent

Un type est juste une catégorie qui dit à Python comment une valeur doit se comporter. Additionner deux entiers, c'est de l'arithmétique ; additionner deux chaînes, c'est les coller ; additionner une chaîne à un entier, c'est une erreur. Le type d'une valeur détermine quelles opérations ont un sens sur elle.

Python a un ensemble restreint et accueillant de types intégrés. Tu en utiliseras quatre — int, float, str, bool — dans presque tous les programmes que tu écriras. Les autres apparaissent quand tu commences à organiser les données en collections.

Nombres : int et float

Deux sortes de nombres, et Python choisit lequel tu obtiens selon la façon dont tu l'as écrit :

main.py
Output
Click Run to see the output here.

Pas de virgule décimale ? Tu obtiens un int. Une virgule décimale ? Tu obtiens un float. L'arithmétique les mélange librement — toute opération impliquant un float produit un float :

main.py
Output
Click Run to see the output here.

Les entiers en Python peuvent être aussi grands que ta mémoire le permet — pas de dépassement, pas de plafond fixe à 32 ou 64 bits. Tu peux calculer 2 ** 1000 et Python te rendra chaque chiffre.

Les flottants suivent les règles habituelles de l'IEEE 754, ce qui veut dire quelques surprises classiques :

main.py
Output
Click Run to see the output here.

Ça affiche 0.30000000000000004, pas 0.3. Ce n'est pas un bug Python — c'est ainsi que fonctionne la virgule flottante binaire dans chaque langage. Quand tu as besoin de décimaux exacts (l'argent, par exemple), utilise plutôt le module decimal. Pour tout le reste, un arrondi à l'affichage suffit généralement.

Chaînes : str

Les chaînes sont des séquences de caractères. Enveloppe-les dans des guillemets simples ou doubles — Python s'en moque, tant que le guillemet d'ouverture et celui de fermeture correspondent :

main.py
Output
Click Run to see the output here.

Les chaînes à triple guillemets (""" ... """) s'étendent sur plusieurs lignes :

main.py
Output
Click Run to see the output here.

Les chaînes ont une énorme API que tu apprendras au fil du temps — le découpage, des méthodes comme .upper(), .split(), .replace() et le formatage f-string qui te donne f"Hello, {name}". Il y a une page dédiée aux chaînes juste après.

Booléens : bool

Deux valeurs, écrites exactement comme indiqué — True et False, majuscule au début. Les comparaisons produisent des booléens :

main.py
Output
Click Run to see the output here.

Sous le capot, True et False sont littéralement 1 et 0, ce qui veut dire que tu peux additionner des booléens si tu as besoin de compter combien de conditions sont vraies :

main.py
Output
Click Run to see the output here.

None : l'absence de valeur

None est la façon de Python de dire « pas de valeur ». Les fonctions qui ne retournent rien explicitement retournent None. Tu l'utiliseras aussi comme espace réservé :

main.py
Output
Click Run to see the output here.

La convention, c'est de tester avec is None et is not None — pas == None. is vérifie l'identité, ce qui correspond à ce que tu veux vraiment dire ici.

Listes, tuples, ensembles, dictionnaires

Voici les quatre types de collections intégrés. Chacun a sa propre page en détail, mais voici le croquis rapide pour que tu les reconnaisses :

main.py
Output
Click Run to see the output here.

Règles empiriques :

  • Liste : une séquence que tu t'attends à voir changer. Ajouter, supprimer, trier — tout va bien.
  • Tuple : une séquence que tu veux protéger du changement. Souvent utilisé pour des enregistrements à forme fixe comme les coordonnées (x, y).
  • Set : un sac d'éléments uniques, quand les doublons seraient un bug.
  • Dict : des recherches par clé. La structure de forme JSON.

Convertir entre types

Python ne convertit pas les types pour toi automatiquement quand ce serait risqué. Transformer un entier en chaîne, ou une chaîne en nombre, c'est quelque chose que tu demandes :

main.py
Output
Click Run to see the output here.

Si une conversion n'a pas de sens — int("hello"), par exemple — Python lève ValueError et te dit ce que tu lui as donné. Erreur, expliquée, on corrige et on passe à la suite.

Vérifier un type

Deux outils à connaître :

main.py
Output
Click Run to see the output here.

type() est parfait pour un coup d'œil rapide dans le REPL. isinstance() est ce que tu utilises dans le vrai code parce qu'il s'entend bien avec l'héritage et peut vérifier plusieurs types à la fois.

Un petit exercice de reconnaissance

Essaie de lancer le bloc ci-dessous tel quel, puis change quelques valeurs et regarde en quoi les types se transforment :

main.py
Output
Click Run to see the output here.

Tu n'as pas besoin de comprendre for pour l'instant — on y arrivera — mais ça te donne une sensation des types intégrés en un coup d'œil.

Choisis le type qui colle aux données

Tu n'as pas besoin de mémoriser chaque type maintenant. Tu dois pouvoir en reconnaître un quand tu le vois, et choisir le bon quand tu crées des données. « Est-ce que c'est fixe ou changeant ? Unique ou pas ? Est-ce que je recherche par clé ou par position ? » Ces quatre questions choisissent le type de collection dans quatre-vingt-dix pour cent des cas.

Ensuite : les chaînes en profondeur, parce qu'elles sont le seul type de données que tu toucheras dans presque tous les programmes.

Questions fréquentes

Quels sont les principaux types de données en Python ?

Les nombres (int et float), les chaînes (str), les booléens (bool), None, et quatre types de collections — list, tuple, set et dict. Tout le reste de ce que tu vois dans le code Python est construit à partir de ceux-ci plus une poignée d'autres (bytes, complex, frozenset).

Comment vérifier le type d'une valeur en Python ?

Enveloppe-la dans type() : type(42) renvoie <class 'int'>, type('hi') renvoie <class 'str'>. Pour un test vrai/faux, utilise isinstance(valeur, int) — c'est plus flexible parce que ça gère aussi les sous-classes.

Python est-il à typage statique ou dynamique ?

À typage dynamique. Une variable peut pointer vers n'importe quel type de valeur, et la même variable peut changer de type au cours de sa vie. C'est différent de langages comme Java ou C++, où tu déclares le type d'une variable une fois et il ne peut pas changer.

Apprendre à coder avec Coddy

COMMENCER