Outils pour utilisateurs

Outils du site


dev:python:start

Ceci est une ancienne révision du document !


Python

Quelques notes à propos des spécificités du langage Python.

Types de base

Python détermine le type d'une variable dynamiquement, pas de déclaration avant l'utilisation.

>>> # initialisation d'une variable de type entier:
... 
>>> a = 3
>>> type (a)
<type 'int'>
>>> # une variable flottante
... 
>>> f = 2.1
>>> type (f)
<type 'float'>
>>> # une variable chaine de caractères
... 
>>> c = 'c'
>>> type(c)
<type 'str'>
>>> c = 'ma chaine'
>>> type(c)
<type 'str'>

Remarques:

  1. La fonction type() retourne le type de la variable passée en paramètre.
  2. Python ne distingue pas caractère et chaîne de caractères, le type est 'str' (string).

La liste

La liste est un objet, elle peut contenir des objets de différents types.

>>> ma_liste = ['toto', 2, 2.1, 'z']

Le contenu d'une liste peut être modifié, on peut ajouter/retirer des éléments à l'aide des méthodes pop() et insert(). On peut également réaffecter un élément de la liste via l'index:

>>> ma_liste[0] = 'tata'
>>> ma_liste.pop(2)
2.1
>>> ma_liste.insert(3, 2.5)
>>> print (ma_liste)
['tata', 2, 'z', 2.5]

Le tuple

Le tuple est une liste figée, on ne peut pas ajouter/supprimer/modifier les éléments d'un tuple.

>>> tuple = (1, 'toto', 2.2, True);
>>> tuple[1] = 'tata'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Le dictionnaire

Les dictionnaires sont équivalents aux listes mais les indices(on parle de clé) sont des chaines auxquelles on associe une valeur.

>>> d = {'prenom': 'yoann', 'nom': 'BEZILLE'}

Définition d'un objet

class monType(object)
"""Toute classe par defaut herite du type de base object"""
    __init__(self,...):
    """Le constructeur de la classe monType"""
    def methode_1(self,...):
    def methide_2(self,...):

Remarques:

  1. Attention le premier argument des méthodes est toujours self.
  2. Toute classe de base hérite d'object.

Instanciation d'une objet

mon_objet = maClasse(valeur1, valeur2, valeur3)

Pour instancier un objet de la classe maClasse, j'utilise ne nom de la classe et entre parenthèses je place les valeurs a transmettre au constructeur.

Exemple Se placer dans le dossier ~/dev/python contenant le fichier compte.py et lancer l'interpreteur python

>>> import compte
>>> mon_compte = compte.compte("2221");
>>> mon_compte.depot(2000000000);
>>> mon_compte.affiche()
le solde du compte '2221'est 2000000000.00
>>>

Import et modules

Pour utiliser une fonction présente dans un fichier, utiliser la directive import avec le nom de fichier sans le suffixe .py

Remarque: dans un module, les variables globales sont accessibles. Ils est possible de modifier la valeur de la variable du module, cela peut être problématique: pour éviter cela on utilisera les objets.

Tester si le script est directement appelé

Il est possible de tester si le script est appelé directement ou via un import avec le code suivant:

if __name__ == __main__:

Introspection

Les objets python savent qui ils sont, c'est l'introspection. La fonction dir() permet de lister les attributs/méthodes de tout objet.

>>> dir (ma_liste)
['__add__', '__class__', '__contains__', '__delattr__',..., 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

Documentation

Python intègre nativement la documentation au code attribut (doc). Lors de la définition d'une classe ou d'une méthode, ajouter un texte entre triple guillemets sous la définition pour qu'elle soit prise en compte:

dev/python/start.1393536783.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)