En Python, les variables ne sont pas explicitement typées. Tous les types sont des objets :
5 # int : Littéral numérique entier 8768L # long : Littéral numérique entier long (rare) 5.0 # float : Littéral numérique flottant .5 # float : Littéral numérique flottant 5. # float : Littéral numérique flottant "Salut !" # str : Chaîne littérale 'Salut !' # str : Chaîne littérale u"Salut !" # unicode : Chaîne Unicode littérale True # bool : Littéral booléen False # bool : Littéral booléen None # Absence de valeur !
Note : sys.maxint indique la valeur maximale permise pour un entier ; une valeur supérieure est automatiquement convertie en entier long.
Définition de unicode (cf. fr.wikipedia.org/wiki/Unicode) : Unicode est une norme informatique, développée par le Consortium Unicode, qui vise à donner à tout caractère de n'importe quel système d'écriture un nom et un identifiant numérique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel.
x = 98 # Affectation simple y = 98 > 50 # 'y' sera True ou False x = y x == y # Attention, test d'égalité ! Retourne True dans notre cas. l1 = l2 = [] # Affectation multiple
En plus des types simples, Python supporte des types composés qui permettent de créer des structures de données complexes :
Pour accéder aux éléments, on utilise l’indice ou la clé :
# Tuple t = (76, -5, 876, 71) print t[2] # Affiche 876 # Liste l = [76, -5, 876, 71] l[1] = 10 # Impossible avec un tuple ! print l[1] # Affiche 10 # Dictionnaire d = {'nom': 'Dupuis', 'prenom': 'Jacques', 'age': 30} print d['prenom'] # Affiche Jacques d['prenom'] = 'Jean' print d['prenom'] # Affiche Jean
On peut combiner ces types à volonté pour former des structures complexes :
promo = { 'annee': '2009-2010', 'etudiants': ({'nom': 'Dupuis', 'prenom': 'Jacques', 'age': 30}, {'nom': 'Martin', 'prenom': 'Louis', 'age': 18} {'nom': 'Laronne', 'prenom': 'Emilie', 'age': 25}, ), }
Ceci s'avère très utile pour modéliser les phénomènes réels que nous voulons traiter dans nos programmes.
Sylvain Boureliou - sylvain.boureliou@gmail.com - www.boureliou.com