Les types intégrés.
 
Les types numériques :

Python permet l'utilisation de plusieurs sortes de constantes numériques. Ce sont les entiers, les entiers longs, les nombres à virgules flottantes et les complexes.
 
 


Les entiers
 

Les entiers peuvent être courts (32 bits) ou longs par défaut les types entiers sont courts et en base dix. Les types entiers longs sont de taille illimitée. Pour déclarer un entier long, il suffit de placer un 'L' après sa valeur (999999999L).

Il est aussi possible de créer des entiers avec des valeurs octales et hexadécimales. Pour une valeur octale il suffit de faire précéder la valeur par un '0' (077) et hexadécimale par '0x' (0x3f).
 

Les réels
 

Les réels se déclarent sous la forme "x = 1.0" et sont en base dix; pour ce qui est de leur taille, celle-ci est de type double par rapport au C.

Les réels permettent aussi des exposants sous la forme de "4E2". L'indice de l'exposant peux être positif ou négatif et le marqueur 'E' majuscule ou minuscule ! Les valeurs même entières avec des exposants, sont automatiquement transformées en réels.
 

Les complexes
 

Les constantes complexes en Python sont écrites "réelle+imaginaire", en terminant avec un 'J' ou 'j' (4+4J). De manière interne, elles sont implémentées par une paire de nombres à virgule flottante, mais les opérations numériques sur les nombres complexes utilisent des fonctions dédiées aux complexes.
 

Les opérateurs principaux pour les types numériques sont :
 
 

La priorité des opérateurs est similaire aux mathématiques donc avec X*Y+Z, X*Y est prioritaire par rapport à +Z. Les parenthèses permettent d'avoir des sous-expressions, dans X*(Y+Z), Y+Z est prioritaire par rapport à X*.
 

Dans le cas d'un mélange de types numériques lors d'une opération, on peut se demander quel est le type du résultat. La réponse est que Python évalue (comme d'autres langages) la complexité des opérandes et transforme toutes les autres en ce même type. La réponse sera du type le plus complexe de toutes les opérandes. Les entiers courts sont plus simples que les entiers longs, eux-mêmes plus simples que les nombres à virgule flottante qui sont eux plus simples que les complexes !
 

Les tests de vérité.
 

En Python « vrai » signifie n'importe quel nombre différent de zéro ou d'objets non vides. « Faux » signifie « non Vrai », donc zéro, un objet vide , et None.

Les tests d'égalité en Python renvoient 1 ou 0 (Vrai, Faux), et les opérateurs booléens « and » et « or » retournent un objet opérande vrai ou faux.
or et and.

"or" et "and" retourne toujours des objets, exemple :
 

>>> 2 or 3, 3 or 2 # Si les deux son « vrai » retourne celui de gauche.

(2, 3)

>>> [] or 3, 3 or [] # Si seulement un est « vrai » retourne celui-ci.

(3, 3)

>>> [] or 3

3

>>> [] or {} # Si les deux sont « faux » retourne celui de droite.

{}
 
 

>>> 2 and 3, 3 and 2 # Si le résultat est vrai retourne celui de droite.

(3, 2)

>>> [] and 3, 3 and [] # Si seulement un est « vrai » retourne le « faux ».

([], [])

>>> [] and 3

[]

>>> [] and {} # Si les deux sont faux retourne celui de gauche.

[]
 
 

Les chaînes
 

La chaîne est en fait une chaîne de caractères qui est utilisée pour stocker et représenter de l'information textuelle. D'un point de vue fonctionnel, les chaînes peuvent représenter tout ce qui peut être encodé comme du texte.

Les caractères en Python n'existent pas comme dans certains langages (C). Un caractère en Python est une chaîne d'un caractère. Les chaînes de caractères sont des séquences non modifiables : elle répondent aux opérations habituelles mais elle ne peuvent pas être modifiées sur place.
 
 


Les chaînes peuvent êtres déclarées avec un simple guillemet ou un double. Les deux sont possibles, mais le double guillemet permet d'avoir une apostrophe sans avoir recours au backslash. Le triple double guillemet permet d'entrer une chaîne de caractères sur plusieurs lignes, y compris les caractères de retour de ligne.
 

Indiçage et extraction.
 

L'indiçage et l'extraction sont importants pour la compréhension des types chaînes de caractères, listes, tuples, les deux s'effectuent avec des valeurs comprises entre crochets ([]).

L'indiçage est le fait de sélectionner un élément par rapport à sa position dans l'objet. L'indiçage peut s'effectuer en comptant depuis la gauche ou la droite, un indice positif indique que l'on commence à compter par la gauche (x[3]) et que le premier objet a comme indice 0, un indice négatif indique que l'on compte depuis la droite (x[-3]).

L'extraction est le fait de sélectionner une partie plus ou moins grande d'un objet, une tranche. Pour extraire une partie il faut insérer entre les crochets l'indice du premier élément suivi de deux points et de la valeur de l'élément suivant (x[2:5]). Attention la valeur placée sous le deuxième indice ne sera pas extraite !

Une valeur laissée vierge prend la valeur de 0 à gauche et du nombre du dernier élément de l'objet pour la droite (x[:5] => x[0:5] et x[3:] => x[3:fin]). Comme pour l'indiçage les valeurs négatives permettent de compter depuis la droite. Une extraction impossible donnera un objet vide !



Formatage des chaînes de caractères.
 

Il est impossible de changer sur place une chaîne, par indiçage par exemple. Pour modifier les informations textuelles d'une chaîne nous avons besoin d'en construire une nouvelle.
 

>>> s = 'dalut'

>>> s[0] = 's'

>>> erreur !!!
 

mais
 

>>> s = 's'+s[1:]

>>> s

>>> 'salut'
 

L'opérateur surchargé %.
 

L'opérateur % sur les nombres effectue un modulo (reste de division). Il fonctionne avec un format de chaîne sur la gauche (%s).

Avec l'opérateur, il est possible d'insérer dans une phrase une ou des chaînes quelles qu'elles soient.
 

>>>str = 'mon'

>>> print "c'est %s bateau" % str

>>> c'est mon bateau

>>> print "c'est %s bateau no %d" %(str, 27)

>>> c'est mon bateau no 27
 
 


Variation sur les chaînes.
 

L'insertion du caractère antislash peut servir notamment à insérer des guillemets ou des retours de ligne, mais une multitude d'autres paramètres peuvent être insérés après l'antislash.
 
 




Les listes.
 

La liste est l'objet de collection ordonné le plus souple. Il permet de contenir toutes sortes d'objets : nombres, chaînes, et même d'autres listes. La déclaration d'une liste se fait par la mise entre crochets des objets de celle-ci.
 

>>> x = [0, 1, `hello']
 

Du point de vue de l'utilisation, les listes permettent de collecter de nouveaux objets afin de les traiter tous ensembles.

Comme les chaînes, les objets d'une liste sont sélectionnables par indiçage. Les listes sont ordonnées et autorisent donc l'extraction de tranches et la concaténation.

Les listes permettent une modification de leur contenu : remplacement, destruction,... d'objets sans pour autant devoir en faire une copie (comme les chaînes). On dit quelles peuvent êtres changées sur place.
 
 



Les dernières entrées de la table sont nouvelles. Les listes répondent aussi bien aux fonctions d'addition de répétition, qu'à l'appel de méthodes. Ces méthodes permettent l'ajout, la suppression, le tri et l'inversion.
 
 

Les Dictionnaires.
 

Le dictionnaire est un système très souple pour intégrer des données. Si on pense aux listes comme une collection d'objets ordonnés et portant un indice par rapport à la position, un dictionnaire est une liste comportant à la place de ces indices, un mot servant de clé pour retrouver l'objet voulu. Un dictionnaire est affecté par une paire d'accolades ({}).
 

>>> dico = {`japon' :'japan', `chine' :'china'}
 

Les clés peuvent être de toutes les sortes d'objet non modifiables. Par contre la valeur stockée peut être de n'importe quel type.

Un dictionnaire n'est pas ordonné comme une liste, mais c'est une représentation plus symbolique de classement par clés. La taille d'un dictionnaire peut varier, et le dictionnaire est un type modifiable sur place.
 
 


Les tuples.
 
 

Un des types de Python est le tuple. Le tuple est comme la liste, une collection ordonnée d'objets. Un tuple peut contenir n'importe quelle sorte d'objet, mais la grande différence avec la liste est que le tuple n'est pas modifiable sur place. Un tuple se déclare avec des valeurs entre parenthèses et non entre crochets comme la liste.
 

>>> tuple = (0, 1.4, `world')
 

Les tuples peuvent être indicés pour la recherche d'un élément, une extraction est aussi possible. Ils supportent toutes sortes d'objets et même un tuple dans un tuple. Mais les tuples ne sont pas modifiables, donc comme les chaînes, ils ne peuvent pas grandir ou diminuer de taille.
 
 


Pourquoi les tuples.
 

Une des réponses possible à cette question est que la non-possibilité de modifier les tuples assure une certaine intégrité. Vous pouvez être sûr qu'un tuple ne sera pas modifié à travers une référence ailleurs dans le programme.
 
 

Les fichiers.
 

Ce type intégré dans python se différencie des autres, car ce ne sont ni des nombres, ni des séquences, ni des maps. En fait la commande open permet à l'intérieur d'un programme python d'accéder à un fichier.
 

>>> mon_fichier = open(`fichier', `w')
 

Les commandes associées au traitement des fichiers ne se résument que par des méthodes.

Le tableau suivant montre les principales méthodes en vigueur sur les fichiers, il est important de dire que, lors de l'ouverture de l'objet-fichier celui-ci prend la forme de chaîne dans le programme Python.
 
 


La fonction « close » ferme l'objet fichier en cours. Python, pour gérer l'espace mémoire, ferme dans certains cas le fichier lui-même, lorsqu'il n'est plus référencé nulle part. Cependant fermer un fichier manuellement permet une certaine clarté, ce qui est important dans une grande application.