Typage des variables

modifier
Début d’un principe
Fin du principe


Python est un langage à typage dynamique. Cela signifie que bien que gérant différents types, lorsqu'une variable est affectée, l'interpréteur trouvera automatiquement son type sans que l'utilisateur soit contraint de le préciser. Ceci constitue une particularité intéressante de Python, qui le rattache à une famille particulière de langages où l'on trouve aussi par exemple Lisp, Scheme, et quelques autres.

Par opposition, le typage statique est préférable dans le cas des langages compilés comme C++ et Java, parce qu'il permet d'optimiser l'opération de compilation (dont le résultat est un code binaire « figé »). Dans ces langages, il faut toujours - par des instructions distinctes - d'abord déclarer (définir) le nom et le type des variables, et ensuite seulement leur assigner un contenu, lequel doit bien entendu être compatible avec le type déclaré.

Le typage dynamique quant à lui permet d'écrire plus aisément des constructions logiques de niveau élevé (métaprogrammation, réflexivité), en particulier dans le contexte de la programmation orientée objet (polymorphisme). Il facilite également l'utilisation de structures de données très riches telles que les listes et les dictionnaires.


Types natifs

modifier
Liste des types
int Nombre entier optimisé
long Nombre entier de taille arbitraire
float Nombre à virgule flottante
complex Nombre complexe
str Chaîne de caractère
unicode Chaîne de caractère unicode
tuple Liste de longueur fixe
list Liste de longueur variable
dict dictionnaire
file Fichier
bool Booléen
NoneType Absence de type
NotImplementedType Absence d'implementation
function fonction
module module
Tableau 2 : Liste des types prédéfinis en Python
Tableau des types Python 3.x ayant changé de nom depuis 2.x
nom description équivalent 2.x
int nombre entier de longueur arbitraire long
byte chaîne de caractères ASCII str
str chaîne de caractères Unicode unicode

Détermination d'un type

modifier

La fonction type() permet de connaître le type d'une variable.

>>> a=3
>>> type(a)
<type 'int'>
Exemple 1 : utilisation de la fonction type


Conversion des types

modifier

Il existe plusieurs fonctions qui permettent de forcer le type d'une variable en un autre type.

  • bool() : convertit en booléen : "0", "" et "None" donnent "False" et le reste "True".
  • int() : permet de modifier une variable en entier. Provoque une erreur si cela n'est pas possible.
  • long() : transforme une valeur en long.
  • str() : permet de transformer la plupart des variables d'un autre type en chaînes de caractère.
  • float() : permet la transformation en flottant.
  • repr() : similaire à "str". Voir la partie sur les objets
  • eval() : évalue le contenu de son argument comme si c'était du code Python.
  • split() : sépare une chaine en liste.
  • join() : transforme une liste en chaine, dont le séparateur est en préfixe (" ".join(MaListe)).
  • datetime.strptime('20170727222900', '%Y%m%d%H%M%S') : change une chaine en date.
  • maDate.strftime('%Y%m%d%H%M%S') : change une date en chaine.