Prsentation PowerPoint - PowerPoint PPT Presentation

1 / 74
About This Presentation
Title:

Prsentation PowerPoint

Description:

la derni re expression affich e est affect e la variable _ . Si on affecte une valeur cette variable, on cr e une variable locale qui masquera la globale. ... – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 75
Provided by: heyvaer
Category:

less

Transcript and Presenter's Notes

Title: Prsentation PowerPoint


1
Réalisé par El Khamlichi Mohsin Heyvaert
Xavier
2
Sommaire
Chap I ....
Introduction Chap II ..
Les types intégrés Chap III
. Les instructions Chap IV
. Les Fonctions Chap V .
. Les Modules Chap VI .
Les exeptions Chap VII
Les classes Chap VIII ..
. Les outils de Python
3
CHAPITRE I INTRODUCTION
4
1. Un petit historique
En 1989, Guido Van Rossum commenca à
travailler sur Python qui nétait alors quun
projet lui servant doccupation durant les
vacances de Noël pendant lesquelles son bureau
était fermé. Le but de Guido était dinventer
un successeur au langage ABC, un langage
daprentissage peu apprécié dans le milieu
académique. Pour cela, il fit appel
directement à des utilisateurs Unix habitués au
langage C. il voulu que Python soit facilement
utilisable dans dautres langages et
environnement contrairement à ABC. Il y réussi
globalement Le nom Python donné au langage
provient dune série anglaise appelée  Monty
Python Flying Circus 
5
2. Apercu de ses caractéristiques
Langage Script Tout comme Perl, Tcl et Rexx,
Python fait partie des langages script
interpretés contairement à Java, au C/C qui
sont des langages compilés. Ce qui lui permet
dêtre plus rapide au develloppement, de
comporter moins de ligne (50 de moins). Par
contre, Il est plus lent à lexecution.
Portable Python est portable entre les
differentes variantes de Unix ainsi que sur les
OS propiétaires comme Mac OS, BEOs, MS-DOS et les
differentes versions de Windows
Gratuit Python est placé sous Général Public
License. Il est facilement downloadable sur
www.python.org
6
Extensible Au-delà de la multitude de
librairies et de modules déjà existente, il est
possible den dévellopper pour ses propres
besoins.
Modulable Python permet de séparer les
programmes en modules qui peuvent être réutilisés
dans d'autres programmes en Python
Orienté Objet Python est orienté-objet. Il
supporte l'héritage multiple et la surcharge des
opérateurs.
Syntaxe aisée La syntaxe de Python est très
simple et, combinée à de nombreux types de
données évolués (comme les listes,
dictionnaires,tuples...), ce qui conduit à des
programmes à la fois très compacts et très
lisibles. De plus, Python ne nécessite aucune
déclaration de variable. Les variables sont
créées lors de leur première assignation.
7
Peu derreurs Tout comme Java ou Ada, Python
porssède un systeme dexception qui facilite la
gestion des erreurs.
Gestion des ressources Python gère ses
ressources (mémoire, descripteurs de fichiers...)
sans intervention du programmeur, par un
mécanisme de comptage de références
Case sensitive
Une instruction par ligne
8
3. Domaines dapplication
  • Scripts dadministration systemes
  • ex Les programmes d'administration système
    spécifiques à la distribution Red Hat Linux.
  • Tous les dévelloppement lié à linternet et en
    particulier au web (moteur de recherche,
    navigateur)
  • ex moteurs de recherche yahoo et infoseek
  • Accès aux bases de donnée (contextuelle)
  • Réalisations dinterfaces graphiques
    utilisateurs.
  • Utilisation pour la résolution de calculs
    scientifiques
  • ex Python est notamment utilisé pour les
    fusée de la NASA

9
CHAPITRE II LES TYPES INTEGRES
10
1. Les types numériques
  • Tableau des différents types numériques

11
Les principaux opérateurs pour les types
numériques
  • Tableau (dans un ordre de priorité croissant)

12
Quelques remarques
  • Lors de mélange de types numériques lors dune
    opération, la réponse sera du type de lopérande
    la plus complexe.
  • En Python, vrai signifie nimporte quel
    nombre différent de zéro ou un objet
    non vide faux signifie zéro, none et un objet
    vide (un ex. a or b retourne le premier qui
    est vrai et si les 2 sont faux, retourne celui de
    droite (donc b))
  • la dernière expression affichée est affectée à la
    variable _ . Si on affecte une valeur à cette
    variable, on crée une variable locale qui
    masquera la globale.
  • Si nous faisons c d (où c et d sont 2
    variables), c référencera le même objet que
    d!!! Ainsi pour les listes, nous ferons une copie
    de cette manière c d et pour les
    dictionnaires, nous utiliserons la méthode copy,
    c d.copy().

13
2. Les chaînes
  • Déf. une chaîne séquence de caractères non
    modifiable càd que si nous avons une chaîne
    sdalut, on ne peut pas faire s0s mais on
    devra faire sss1 (une réassignation)
  • DéclarationUne chaîne peut être déclarée avec
    un simple guillemet ou un double. On utilise le
    triple double quotes ( ) pour
    entrer une chaîne de caractère sur plusieurs
    lignes
  • Rq le type char en C est donc représenté par
    une chaîne de taille 1
  • On ne déclare donc pas la taille de la chaîne et
    pour connaître sa longueur on peut utiliser len(
    ).

14
Tableau des opérations
15
Chaînes concaténation-répétition
  • Exemple de concaténation gtgtgt mot
    help a
    gtgtgtmot helpa
    pour la répétition gtgtgtmot3
    helpahelpahelpa
  • Autre manière de faire
  • gtgtgt help a helpa
  • Rq. on ne peut pas concaténer une chaîne et un
    nombre avec on doit dabord utiliser atoi()
    pour convertir ce nbr en string et ensuite
    concaténer

16
Chaînes indiçage et extraction
  • Représentation dune chaînes
  • lindiçage est le fait de sélectionner un élément
    de la chaîne. Un indice
    positif indique que lon commence à compter par
    la gauche et un indice négatif
    que lon compte depuis la droite
    ex s3 donnera e et s-5 donnera l
  • lextraction est le fait de sélectionner une
    partie de la chaîne ainsi, s25 donnera nex
    (le 5 nest pas compris)

17
Suite
  • Une valeur laissée vierge prend la valeur 0 à
    gauche et la taille de la chaîne à droite (s5
    gt s05 et s3 gt s3len(s)).
  • Un index qui est trop grand est remplacé par la
    taille de la chaîne, un index de fin inférieur à
    lindice de début retourne une chaîne vide (
    s1100 donnera onexemple.py et s21 donnera
    ).
  • Différents exemples
  • gtgtgt s-2 les deux derniers caractères
  • gtgtgtpy
  • gtgtgt s-0 équivalent à s0
  • m
  • gtgtgts-100 erreur

18
Remarques
  • Les opérateurs de comparaison in et not in
    vérifient si une valeur apparaît (ou non) dans
    une séquence.
  • Les opérateurs is et is not vérifient si deux
    objets sont réellement le même objet ceci se
    justifie seulement pour les objets modifiables
    comme les listes. Tous les opérateurs de
    comparaison ont la même priorité, qui est plus
    faible que celle de tous les opérateurs
    numériques.
  • Les objets de type séquence peuvent être comparés
    à d'autres objets appartenant au même type de
    séquence. La comparaison
    utilise l'ordre lexicographique les deux
    premiers éléments sont
    d'abord comparés, et s'ils diffèrent ceci
    détermine le résultat de
    la comparaison s'ils sont égaux, les deux
    éléments suivants sont comparés, et ainsi de
    suite, jusqu'à ce que l'une des deux séquences
    soit épuisée.

19
3. Les listes
  • Ont une même signification quen C une
    collection dobjets.
  • Déclaration une liste de valeurs (ou éléments)
    entre crochets séparés par des virgules. Les
    éléments de la liste nont pas nécessairement le
    même type. Voici une liste de 4 éléments gtgtgta
    spam, eggs,100,1234 gtgtgta
    spam, eggs,100,1234
  • Comme les indices des chaînes, les indices des
    listes commencent à 0, et les listes peuvent étre
    découpées, concaténées(rapidité!!!!) Les listes
    sont modifiables,on peut donc changer les
    éléments individuellement remplacement,
    destruction,... (cest lutilité dune liste!
    Important lors des passages de paramètres des
    fonctions )

20
Tableau des opérations
21
Un exemple
  • gtgtgt a 'spam', 'eggs', 100, 1234
  • gtgtgt a
  • 'spam', 'eggs', 100, 1234
  • gtgtgt a0
  • 'spam'
  • gtgtgt a3
  • 1234
  • gtgtgt a-2
  • 100
  • gtgtgt a1-1
  • 'eggs', 100
  • gtgtgt a2 'bacon', 22
  • 'spam', 'eggs', 'bacon', 4
  • gtgtgt 3a3 'Boe!'
  • 'spam', 'eggs', 100, 'spam', 'eggs', 100,
    'spam', 'eggs', 100, 'Boe!'

22
Listes imbriquées (généralisées)
  • L 'abc', (1,2), (3, 4), 5 ainsi, L1
    donnera (1,2),(3,4) et L11 donnera
    (3,4)

23
Les méthodes de lobjet liste
  • Voici toutes les méthodes des objets listes
  • insert(i, x)
  • Insère un élément à une position donnée. Le
    premier argument est l'indice de l'élément avant
    lequel il faut insérer, donc a.insert(0, x)
    insère au début de la liste, et a.insert(len(a),
    x) est équivalent à a.append(x).
  • append(x)
  • Equivalent à a.insert(len(a), x).
  • index(x)
  • Retourne l'indice dans la liste du premier
    élément dont la
    valeur est x. Il y a erreur si cet élément
    n'existe pas.
  • remove(x)
  • Enlève le premier élément de la liste dont la
    valeur est x. Il y a erreur si cet élément
    n'existe pas.

24
Les méthodes suite
  • sort()
  • Trie les éléments à l'intérieur de la liste.
  • reverse()
  • Renverse l'ordre des éléments à l'intérieur de la
    liste.
  • count(x)
  • Renvoie le nombre de fois que x apparaît dans la
    liste.

25
Exemple pour les méthodes
  • Un exemple qui utilise toutes les méthodes des
    listes
  • gtgtgt a 66.6, 333, 333, 1, 1234.5
  • gtgtgt print a.count(333), a.count(66.6),
    a.count('x')
  • 2 1 0
  • gtgtgt a.insert(2, -1)
  • gtgtgt a.append(333)
  • gtgtgt a
  • 66.6, 333, -1, 333, 1, 1234.5, 333
  • gtgtgt a.index(333)
  • 1
  • gtgtgt a.remove(333)
  • gtgtgt a
  • 66.6, -1, 333, 1, 1234.5, 333
  • gtgtgt a.reverse()
  • gtgtgt a
  • 333, 1234.5, 1, 333, -1, 66.6
  • gtgtgt a.sort()
  • gtgtgt a
  • -1, 1, 66.6, 333, 333, 1234.5

26
Une fonction intégrée
  • "filter(fonction, sequence)" renvoit une liste
    (du même type, si possible) contenant les seul
    éléments de la séquence pour lesquels
    fonction(element) est vraie. Par exemple, pour
    calculer quelques nombres premiers
  • gtgtgt def f(x) returnx2 ! 0 and x3 ! 0
  • ...
  • gtgtgt filter(f, range(2, 25))
  • 5, 7, 11, 13, 17, 19, 23

27
4. Les Tuples
  • Déf. Comme une liste, un tuple est une collection
    ordonnée dobjets mais le tuple nest pas
    modifiable .
  • Déclaration des valeurs (entre parenthèses)
    séparées par des virgules gtgtgttuple(0,1.4,world)
  • Pourquoi les tuples alors que nous avons les
    listes?? La non-possibilité de modifier les
    tuples assure une certaine intégrité car
    nous pouvons être sûr quun tuple ne sera pas
    modifié à travers une référence
    ailleurs dans le programme.

28
Tableau des opérations
29
Tuple unpacking
  • L'instruction t 12345, 54321, 'salut!' est un
    exemple d' emballage en tuple (tuple packing).
  • L'opération inverse est aussi possible, par ex.
  • gtgtgt x, y, z t
  • Ceci est appelé, fort judicieusement, déballage
    de tuple (tuple unpacking). Le déballage d'un
    tuple nécessite que la liste des variables à
    gauche ait un nombre d'éléments
    égal à la longueur du tuple
  • A l'occasion, l'opération correspondante sur les
    listes est utile list
    unpacking.

    Ceci est possible en insérant la
    liste des variables entre des crochets carrés
  • gtgtgt a 'spam', 'oeufs', 100, 1234
  • gtgtgt a1, a2, a3, a4 a

30
5. Les Dictionnaires
  • Déf. Un dictionnaire est un ensemble non ordonnés
    de couples clévaleur avec comme contrainte que
    les clés soient uniques (dans un même
    dictionnaire).
  • Déclaration des couples clévaleur séparés par
    des virgules et entre accolades gtgtgt dico
    japon' 'japan', chine' 'china'
  • Un dictionnaire, à la différence des séquences
    qui sont indexées par un
    intervalle numérique (cf.liste,chaîne,tuple),est
    indexé par une clé qui peut
    être nimporte quel type non-modifiable
    (les chaînes,les nbrs et les
    tuples sils ne contiennent que des éléments non
    modifiables)

31
Tableau des opérations
32
Un exemple
  • gtgtgt tel 'jack' 4098, 'sape' 4139 gtgtgt
    tel'guido' 4127 gtgtgt tel 'sape'
    4139, 'guido' 4127, 'jack' 4098 gtgtgt
    tel'jack' 4098 gtgtgt del
    tel'sape' gtgtgt tel'irv' 4127 gtgtgt
    tel 'guido' 4127, 'irv' 4127, 'jack'
    4098 gtgtgt tel.keys() 'guido', 'irv',
    'jack' gtgtgt tel.has_key('guido') 1

33
6. Les fichiers
  • Tableau des opérations

34
Le module Pickle
  • C'est un module étonnant qui peut prendre presque
    n'importe quel objet Python, et le convertir en
    une représentation sous forme de chaîne de
    caractères ce processus s'appelle pickling.
    Reconstruire l'objet à partir de sa
    représentation en chaîne de caractères s'appelle
    unpickling. Entre pickling et unpickling, la
    chaîne de caractères représentant l'objet a pu
    avoir été enregistrée dans un fichier, ou avoir
    été envoyée à une machine éloignée via une
    connexion réseau.
  • Si vous avez un objet x, et un objet fichier f
    ouvert en écriture,
    la voie la plus simple de pickler'' l'objet
    prend seulement une
    ligne de code
  • pickle.dump(x, f)
  • Pour unpickler'' l'objet, si f est un objet
    fichier ouvert en lecture
  • x pickle.load(f)

35
CHAPITRE III LES INSTRUCTIONS
36
1. Le test if
Linstruction IF peut comporter
plusieurs tests conditionnels elif et se
termine par un bloc optionnel else. Le bloc qui
sera executé, sera le premier ou la condition
sera vrai sinon se sera le bloc else sans
condition qui sera executé. Le if
sécrit de la forme suivante
if lttest1gt     ltinstructionsgt elif lttest2gt
    ltinstructionsgt ..... else    
ltinstructionsgt
!!! ATTENTION à lindentation !!!!
37
2. La Boucle While
Comme dans beaucoup dautres langages, la
boucle while éxecute un bloc tant que la
condition darrêt est vérifiée. La particularité
de ce while est quil peut y avoir un else
optionnel dont le bloc sera éxecuté lorsquon
sort de la boucle while lttestgt    
ltinstructionsgt   else     ltinstructionsgt
38
Un exemple X0 While xlt6 print
 Dans le boucle while x vaut   , x
xx1 else print  Dans le else
x vaut  ,x
39
Utilisation du break, continue, pass
  • Ces trois instructions permettent à
    lutilisateur davoir un plus grand contôle de la
    boucle.
  • Comme en C, linstruction break permet de
    sortir de la boucle instantannément et de passer
    à la suite. Elle annule le passage dans la boucle
    else.
  • Listruction  continue  saute au début de la
    boucle la plus imbriquée.
  •  pass  ne fait rien du tout mais, comme on ne
    peut avoir une expression qui nest suivie de
    rien,  pass  peut être utilisé pour combler ce
    vide.

40
Exemple y0 While ylt6 if y4
break else print
 Dans la boucle while, y vaut  , y
yy1 else print  dans le else
y vaut  , y
41
3. La Boucle For
La boucle for fonctionne sur les chaînes, les
listes, les tuples et dautes objets issus de
classes. Elle commence par une ligne den-tête
qui spécifie une cible daffectation, ainsi quun
objet qui sera itéré for ltciblegt in
ltobjetgt ltinstructionsgt
else ltinstructionsgt Ici
encore, le else est mis en fin de boucle pour la
même raison que dans la boucle while vue
précédemment. Le for de Python fonctionne
différemment que celui du C, il affecte les
objets de lélément séquence à la cible un par un.
42
Exemple X ichi    un ,   ni  
 deux ,   san     trois ,   chi 
 quatre  Print   Les clefs du dictionnaire
sont  ,x.keys() Print  Les Valeurs du
dictionnaire sont  , x.values() For i in
x.keys() print  La clef est s la
valeur est s (i,xi)
43
Le Range
Linstruction range permet de créer une liste
croissante dentiers successifs compris dans une
certaine borne dépendant du nombre de paramètres
de linstruction 1 paramètre entiers compris
entre 0 et le paramètre 2 paramètres entier
compris entre param1 et param2 3 paramètres
entier compris entre parm1 et param2 et de pas
param3
Ex for i in range(10,20,2)
print i Ce qui donne 10
12 14
16 18
44
CHAPITRE IV LES FONCTIONS
45
1. Définition
Outre les fonctions de bases de
Python, il est possible den définir de nouvelles
grâce à linstruction  def . Il faudra bien sur
à nouveau veiller à lindentation car en python,
il ny pas de délimiteur pour définir les
scopes. format def nom_fct
(arg1,arg2,,argn)
ltinstructiongt return
ltvaleurgt Lorsquon quitte la fonction
valeur va directement être assignée à la fonction
appelante. Elle peut être de tous type puisque il
ny a pas de déclaration de type sous python.
46
2. Les arguments
La forme générale pour passer des arguments
est nom_fct(arg1,arg2,,argn) Il est possible
de définir des paramètres par défaut pour un ou
plusieurs arguments. Ce qui crée une fonction qui
pourra être appelée avec moins darguments que ce
qui a été défini. Ex def nom_fct (arg10,
arg22,,argn  hello world ) Les fonctions
peuvent être appelées en utilisant des arguments
mots-clés de la forme  motclévaleur  Ex def
perroquet (voltage, etatc\est du
solide,actionvoom) print 
 -- Ce perroquet ne feras pas , action,
print  -- si vou le mettez sous ,
voltage,   volts.  print  --
 Ca , etat,  !  pourrait être appelé
de lune des façons suivantes
perroquet (1000) perroquet (action
vooooooom, voltage 1000000)
47
Toujours Les arguments
Une fonction peut être appelée avec un nombre
darguments arbitraire. Il est possible de les
envoyer sous deux formes différentes Soit par
dictionnaire Définition Def nom_fct
(arg)
pass Appel nom_fct (arg11, arg22) Soit par
tuple Définition def nom_fct (arg)
pass Appel nom_fct
(arg1,arg2)
48
3. Les formes Lambda
Suite à la demande populaire, quelques
caractéristiques trouvée habituellement dans les
langages de programmation fonctionnelle et dans
Lisp ont été ajouté à Python. Avec le mot-clé
 lambda , de petites fonctions anonymes peuvent
être crées. Elles sont limitées syntaxiquement à
une expression unique. Ex flambda x,y,z
xyz f(2,3,4) ce qui donne 9
49
CHAPITRE V LES MODULES
50
1. Définition
  • Un module est un fichier contenant des
    définitions et des instructions Python. Le nom du
    fichier est le nom du module auquel est ajouté le
    suffixe .py.
  • Avantages - permet de relancer un même
    programme sans tout réécrire
    (en créant éventuellement un script).
    - dutiliser dans plusieurs programmes une même
    fonction sans la réécrire dans chaque
    programme.
  • Chaque module a sa propre table de symboles
    privée, qui est utilisée comme table de symbole
    globale par toutes les fonctions définies dans le
    module. Ainsi, l'auteur d'un module peut utiliser
    des variables globales dans le module sans
    s'inquiéter des désaccords accidentels avec les
    variables globales d'un utilisateur.

51
2. Les instructions
  • L'instruction "import ltmodulegt" importe
    tout le module ltmodulegt, en exécutant le total du
    module. Le module est exécuté en premier avant de
    pouvoir travailler sur les objets.Pour utiliser
    ensuite le module, nous écrirons ltmodulegt.nom.
  • L'instruction "from" s'utilise avec
    "import" de la manière "from ltmodulegt import
    ltnomgt". Là seulement l'objet ltnomgt du module
    ltmodulegt sera importé, le code restant du module
    sera aussi exécuté, mais les objets ne
    seront pas mémorisés et les éventuelles variables
    ne seront pas affectées. Si ltnomgt est
    remplacé par ,
    on obtient alors une copie de tous les noms
    définis a la racine du module.Pour utiliser
    ensuite nom, nous écrirons juste ltnomgt.

52
  • Rq. La grande différence entre "import ltmodulegt"
    et "from ltmodulegt import " est que les noms ne
    sont pas mémorisés sur le même niveau. Le premier
    sera mémorisé sous le nom du module, tandis
    qu'avec "from" la valeur est directement visible
    dans la racine (car dans la table des symboles
    globaux cest donc là que nous la modifions et
    pas dans le module!!!! Voir exemple).
  • La fonction "reload" est en fait un fonction se
    trouvant dans __builtin__ (comme print), cette
    fonction s'exécute par "reload(ltnomgt)" et a
    pour but de recharger le module ltnomgt.
    Le code du module sera de
    nouveau exécuté depuis le début et les variables
    qui auraient pu changer
    seront remises à leurs valeurs d'origine. Refaire
    un import ne servirait à rien car le module est
    déjà chargé.
  • La fonction intégrée dir() est employée pour
    découvrir les noms qu'un module définit. Elle
    renvoie une liste triée de chaînes de caractères.

53
B
B
B
G
G
G
L
L
L
copie
(2)Import ltmodulegt
(1)from import
 module appelant 
Avec (2), il faut refaire un reload pour
récupérer la valeur initiale. Avec (1), il suffit
donc de refaire  fromimport  pour récupérer la
valeur qui na pas été modifiée dans sa table (
du module appelé)
Légende L local, G global, B built-in.
Scope Le modèle LGB
54
Exemple
  • Illustration de la remarque
  • contenu du module mon_module
    num12 fin du module
    mon_module (.py) on est dans
    linvite interactive
    gtgtgtfrom mon_module import num
    gtgtgt print
    num 12
    gtgtgtnum24 gtgtgtprint num
    24 gtgtgtfrom mon_module import num
    équivalent du reload gtgtgtprint
    num 12 ne fonctionne pas avec les types
    modifiables

55
CHAPITRE VI LES EXCEPTIONS
56
1. Définition
  • Comme en Ada ou en Java, il existe un
    mécanisme de contrôle des erreurs dexécution ,
    les exeptions.Le traitement dune exception
    permet de passer par dessus un bout de programme.
  • Dans Python , il existe deux types dexception
  • celles présentent dans la table des exceptions
    de Python
  • celles créées par lutilisateur

57
2. Comment gérer ces exceptions ???
Il est possible décrire des programmes qui
prennent en charges des exceptions
spécifiques. Ex try print 1.0
/ 0 except ZeroDivisionError
print ' n'a pas d'inverse
else pass Lorsque linstruction  try 
est rencontrée, on execute dabord la  clause
dessai . Si une exception se produit, le reste
de la clause try est ignorée. Dans le cas
contraire, on ignore la clause dexception. Si
une exception se produit qui ne correspond pas à
lexception dans la clause except, elle est
renvoyée aux instructions  try  extérieures.
Sil ny a pas de prise en charge, Python
affichera un message derreur.
58
Linstruction  else  est une clause par
défaut qui doit suivre toutes les clauses
dexeptions. Elle permet dexecuter la suite du
programme dans le cas où aucune exception ne
serait survenue. Quand une exception survient,
elle peut avoir une valeur associée, appelé
argument de lexeption. Ex try
spam() except NameError, x
print nom, x,non défini ce qui
affichera nom spam non défini.
59
3. Comment déclencher une exception??
Linstruction  raise  permet à lutilisateur
de déclencher une exception. Par exemple
def myfunc() raise EOFError
try myfunc() except EOFError
print  erreur di/O !!  Else
print  Et voilà 
60
4. Créer ma propre exception Cest
possible ???
Oui !!!! Il suffit daffecter une chaîne de
caractères à une variable Ex MonErreur
 Une erreur  def mafunc()
raise MonErreur,   survenue  try
mafunc() except
MonErreur, value print 
 mon erreur est s! value else
pass
61
5. Actions de nettoyage
Linstruction  try  contient une autre
clause exceptionnelle qui permet de définir les
actions de nettoyage qui doivent être éxecutées
impérativement. Ex def divise(a,b)
return a/b for x in range(1.0,5.0,1.0)
try result
divise(x,x-4) print   Le
résultat est f  result finally
print  cette ligne est
exécutée quoi quil se passe  rem La
clause de finalisation est éxecutée quune
exception est executée ou non..
62
CHAPITRE VII LES CLASSES
63
1. introduction
Python offre la possibilité de programmer en
Orienté objet. Le mécanisme de classe en
Python est un mélange des mécanismes de classes
de C et de Modula-3. Ex Comme en c, tous
les membres dune classe sont publics, et toutes
les fonctions membres sont virtuelleS.Il ny a
pas de constructeur ni de destructeur
particulier. Comme en Modula-3, il ny a
pas de raccourcis pour faire référence aux
membres dun objet à partir de ses méthodes.
64
2. La synthaxe
La forme la plus simple de définition de
classe ressemble à ceci class Nomclasse
ltinstruction1gt
ltinstructionNgt Dans la pratique, les
instructions à lintérieur de la définition de
classe seront souvent des définitions de
fonctions, mais dautres
instructions sont acceptées. Lobjet classe
permet deux types dopération La réferenciation
des attributs et linstanciation. La réference
dattributs Nomclasse.i où i est un attribut
de Nomclasse est une réferences dattribut
valide. Linstanciation(création dune
instance (objet) Nomclasse)
xNomclasse() affecte la nouvelle instance à la
variable x
65
3. A lintérieur de la classe
  • On trouve deux types dattributs
  • données (idem que les données membre en C)
  • Les méthodes (idem que fonction membre en C)
  • Les données
  • Les données nont pas besoin dêtre
    déclarée Comme les variable locale, elles
    apparaissent lorsquon leur affecte une valeur la
    première fois.
  • ex class MaClasse
  • def f(x)
  • print   hello
    World 
  • i123456
  • x MaClasse()
  • x.compteur 1 creation de
    lattribut compteur

66
2) Les méthodes Une méthode est appelée comme
en C x.f() Vous avez surement
remarqué que la fonction f définie dans MaClasse
a été appelée sans paramètre alors que la
définition en contenait un. Ca devrait
normalement déclencher une exception. Mais il
nen est rien car la particularité des méthodes
est que lobjet est passé comme premier argument
de la fonction. Le plus souvent par convention
appelé  self  pour amélioré la lisibilité du
programme .
Lappel x.f() est
donc équivalent à MaClasse.f(x). Il nest
pas nécessaire que la définition de la méthode
soit comprise dans la définition de la
classe. Ex def f1 (self,x,y)
return min(x,xy) class C
ff1
67
Méthodes prédefinies
Python contient une liste de méthodes dites
spéciales
68
En particulier, la méthode __init__(self)
Lorsquune class définit la méthode spéciale
__init__(), linstantation de la classe appelle
automatiquement cette méthode. Il sagit en
fait de ce quon appel en C/C un constructeur.
Bien sûr, la méthode __init__() peut prendre
autant de paramètre quon le vaut, pour une
flexibilité accrue Ex class Complexe
def __init__(self, partiereelle,
partieimaginaire) self.r
partiereelle self.i
partieimaginaire x Complexe(3.0,-4.5)
x.r, x.i donne (3.0, -4.5)
69
4. Lhéritage
La syntaxe pour définir une classe dérive est la
suivante Class Nomclassedérivée
(NomClassedeBase) ltinstruction1gt
ltinstructionNgt Rem A
la place de dun nom de classe de base, une
expression est acceptée. Ce qui est utile lorsque
le définition de la classe de base se trouve dans
un autre module.. Ex class NomClasseDerivee(nomm
od.NomClasseDeBase) Lexécution dune
définition de classe dérivée se déroule
comme une classe de base. Quand lobjet classe
est construit, la classe de base est
mémorisée.Cest ce qui permet de trouver
facilement un attribut. Lorsquun attributs est
réferencé, il est recherché dans la classe
dérivée sil ne sy trouve pas on le recherchera
dans la classe de base.
70
5. Lhéritage multiple
Python supporte également lhéritage multiple.
Une définition de classe avec plusieurs classes
de base ressemble à Class NomClasseDerivee
(Base1,Base2,..,BaseN) ltinstruction1gt
ltinstructionNgt Lorsquon
référence un attribut, la recherche seffectue en
profondeur càd de gauche à droite? Donc si un
attribut nest pas trouvé dans ClasseDerivee, on
le cherchera dabord dans base1, puis dans base2,
et ainsi de suite jusquà ce quon le trouve Rem
Il faut faire attention aux conflits
accidentelles!! Par exemple, si on crée
une classe dérivée de deux autres classes
dérivées de la même classe de baserisque de
problèmes!!!!
71
CHAPITRE VIII LES OUTILS DE PYTHON
72
  • 1.Quelques librairies

73
2. Exemple dutilisation de GUI (Graphic User
Interface)
  • file hello
  • !/usr/local/bin/python
  • from Tkinter import get
    widget classes
  • class Hello(Frame)
    container subclass
  • def __init__(self, parentNone)
  • Frame.__init__(self, parent) do
    superclass init
  • self.pack()
  • self.make_widgets()
  • def make_widgets(self)
  • widget Button(self,
  • text'Hello world',
  • command self.onPress)
  • widget.pack(sideLEFT)
  • def onPress(self)
  • print "Hi."

74
FIN
Write a Comment
User Comments (0)
About PowerShow.com