Aller au contenu
Bases

Types de base

Le type d'une valeur dit ce qu'elle sait faire : int et float calculent, str porte du texte, bool sert aux tests et None marque l'absence. Vérifiez-le dès qu'une donnée vient d'un fichier.

  • int
  • float
  • str
  • bool
  • None
  • type
  • isinstance
  • isclose

Syntaxe

Modèle
int     # entier : 42float   # décimal : 3.14str     # texte : "Lyon"bool    # booléen : True / FalseNone    # absence de valeurtype(x)   isinstance(x, (int, float))

Exemple

Exemple concret
quantite = 3            # intprix = 19.90            # floatproduit = "Clavier"     # stren_stock = True         # boolremise = None           # pas encore de remiseprint(type(prix).__name__)          # → floatprint(isinstance(quantite, (int, float)))  # → Trueprint(0.1 + 0.2 == 0.3)             # → Falseprint(0.1 + 0.2)                    # → 0.30000000000000004import mathprint(math.isclose(0.1 + 0.2, 0.3)) # → Trueprint(sum([True, False, True]))     # → 2print(remise is None)               # → True

À retenir

  1. type(x) donne le type exact ; isinstance(x, (int, float)) teste l'appartenance en acceptant les sous-types : c'est la forme à préférer dans une condition.
  2. Piège : un float est stocké en binaire, donc 0.1 + 0.2 vaut 0.30000000000000004 et 0.1 + 0.2 == 0.3 est faux. Comparez avec math.isclose(a, b) ou arrondissez avec round(x, 2) ; pour des montants exacts, utilisez decimal.Decimal.
  3. bool est un sous-type d'int : True vaut 1 et False vaut 0. sum(liste_de_booleens) compte donc les valeurs vraies, pratique pour compter les lignes qui vérifient une condition.
  4. None joue le rôle du NULL de SQL. Testez-le avec x is None, jamais avec x == None.
  5. Un int Python a une précision illimitée : 2 ** 100 ne déborde pas, contrairement aux entiers de numpy ou de beaucoup d'autres langages.

Voir aussi