Home
Python – Cours 1 - Université Paris-Est Marne-la
Contents
1. Les fonctions Mots clefs def return def def def def f return None cube x return xxx3 aire xl yl x2 y2 delta_x x2 x1 delta y y2 yl return abs delta_xxdelta_y aire a b x2 None y2 None if x2 x1 yl a b else x1 y1 x2 y2 a b return abs x2 x1 y2 y1 Les fonctions Il Le fonctions peuvent avoir des argument nomm s avec des valeurs par d faut La deuxi me version marche avec aire 1 2 3 4 mais aussi aire 1 2 3 4 On notera letest if x2 False 0 None ontune valeur booleenne Faux les autres objets sont vrais On observera aussi le polymorphisme en action a b peuvent tre des nombres ou des couples def wget host port 80 uri return urllib urlopen http s d s host port uri wget google com wget google com 80 search q perdu wget google com uri search q perdu wget uri search q perdu host google com Interdit fonction param valeur autreparam Les fonctions III On peut avoir un nombre variable d arguments def printf format string x args 9 print format string args printf s d trois 3 liste riri fifi loulou 17 printf s s s d xliste toto a b c toto a b c L opr ateur x extrait les l ments d une liste seulement dans un appel de fonction Les fonctions IV On peut aussi avoir des argument nomm s arbitraires def appl
2. Versions embarqu es t l phones portables Nokia s rie 6 Palm Stackless Python microthreads pour faciliter la programmation concurrente Autres impl mentations IronPython NET ActivePython PyPy Pour ce cours version 2 uniquement Qui utilise Python gt Google Python were we can C where we must EDF code Aster Yahoo Yahoo mail Microsoft E Commerce Red Hat Glint setup tools Ubuntu SGMLTools 2 0 LibreOffice OpenOffice2 0 Vim Communaut scientifique Sage gt Et bien d autres Caract ristiques du langage v Tout est un objet Modules classes fonctions gt Exceptions Typage dynamique polymorphisme Surcharge des op rateurs Syntaxe claire et intuitive mix C Algol indentation pour d limiter les blocs pseudo code ex cutable v v v v Types de donn es v Nombres entiers entiers longs r els flottants complexes Cha nes de caract res immuables Tuples listes et dictionnaires conteneurs D autres types natifs cr s par des extensions en C expressions r guli res descripteurs de fichiers sockets Instances de classes d finies en Python v v v v Exemples Java public class Hello public static void main String args System out println Hello World Python print Hello World 3 0 print Hello World Plus convaincant QuickSort en 2 lignes
3. print primes Els 3 5 Tp Il 13 17 19 23 29 31 37 41 43 47 Compr hensions de listes II Exemple extraire en une seule instruction les variables affect es dans un fichier de configuration gt gt gt d dict kv split 1 for kv in open etc libuser conf read split n if in kv and not kv strip startswith gt gt gt d LU_GIDNUMBER 500 mailspooldir var mail moduledir usr lib libuser modules files shadow skeleton etc skel create modules files shadow LU UIDNUMBER 500 LU USERNAME Sn LU GROUPNAME Sn crypt style md5 On notera au passage qu on ouvre un fichier avec open Renvoie un file object dont la m thode read lit tout le contenu sous forme d une cha ne Orientation objet les classes et leurs instances Tout est un objet entiers fonctions modules sockets Type structur s classes et instances de classes On acc de aux attributs et aux m thodes d une classe avec dir gt En python 2 x old and new styles gt Les classes newstyle h ritent du type object gt Syntaxe class Toto OU class Toto object Orientation objet les classes et leurs instances II Do gt gt gt gt gt gt class Toto pass old style a Toto Cr ation d une instance dir a doc module a Pas grand chose a voir DOD Dr
4. Hello s arg else print Hello world Premiers pas On lance l interpr teur en tapant python au prompt jyt liszt jyt python Python 2 6 1 r261 67515 Dec 25 2008 16 25 51 GCC 3 4 1 Mandrakelinux 10 1 3 4 1 4mdk on linux2 Type help copyright credits or license for more info gt gt gt 2xx100 1267650600228229401496703205376L On peut aussi crire des scripts jyt liszt jyt cat a py usr bin env python print 2xx 100 jyt liszt jyt a py 1267650600228229401496703205376 ou faire ex cuter des fichiers Premiers pas Il jyt liszt jyt cat b py print 2xx100 jyt liszt jyt python b py 1267650600228229401496703205376 jyt liszt jyt echo print 2xx100 python 1267650600228229401496703205376 Intepr teur mode d emploi Avec un langage interpr t on peut tester les instructions une une avant de les incorporer dans le programme On aura donc un interpr teur de test dans une fen tre et un diteur vim emacs gedit dans une autre La fonction ne1p objet affiche l aide en ligne d un objet On peut acc der la liste des attributs d un objet avec la commande dir gt gt gt help dir Help on built in function dir in module builtin gut sso dir object list of strings If called without an argument return the names in the current scope Else return an alphabetized list of names comprising some of the attributes of the given object a
5. gt gt 1 25 3 la virgule construit des tuples 15 253 gt gt gt s abc Les types tuples et listes III gt gt gt list s rar bl Ter gt gt gt tuple s Mary bi cr gt gt gt for x in s print x a b c gt gt gt aa join d e f daaeaaf gt gt gt aa join d e f daaeaaf gt gt gt aa join def daaeaaf gt gt gt abcdefgihj 4 le gt gt gt abcdefghij 4 7 un morceau f efg Les types tuples et listes IV gt gt gt DE 25 458 169J3 I25 de 2 la fin 4 8 16 gt gt gt s ga bu zo meu gt gt gt Ss S indic 1 le dernier meu gt gt gt S s split gt gt gt 5 ga bu zo meu gt gt gt join x 2 for x in s gaga bubu zozo meumeu Les types dictionnaires Les dictionnaires sont des tables de hachage d finies par des items clef lt valeur gt entre accolades Les clefs doivent tre des objets non mutables entiers chaines tuples gt gt gt bazar e 2 71828 jaune 255 255 0 vrai True 10 dix liste 4 2 False faux j 0 0 origine gt gt gt bazar liste 4 2 False faux gt gt gt bazar liste 2 False faux gt gt gt bazar has key truc False gt gt gt bazar truc chose gt gt gt truc in bazar True gt gt gt del bazar truc gt gt gt dict k1 10 k
6. 2 v construction partir d une liste de couples LORD FES Tr EEL 107 gt gt gt items et inversement k2 v k1 TOJI Les types dictionnaires Il rat gt gt gt for k v in bazar items print k V jaune 255 255 0 0 0 origine e 2 71828 10 dix liste 4 2 False faux j vrai True gt gt gt t Le cheval de mon cousin ne mange du foin que le dimanch gt gt gt d gt gt gt for x in t if d has key x d x 1 else d x 1 gt gt gt d fats 3 f tr 11 els 3 fet 8 als 3 9 1 EE 1 r 3 this 2 mt Tnt dy Lots 3y I 2 err ly ts uc due d t Bo crate cbe dmt io Les types dictionnaires III Formatage par dictionnaire html TITLE Inscription TITLE H1 Inscription termin e lt H1 gt H2 F d ration Frangaise de Friture Froid H2 H2 42 me Congr s lt H2 gt lt BR gt lt BR gt nom s prenom s lt BR gt email s HR data nom Cussonnet prenom Simon email simon cussonnet thorel eur print html data TITLE Inscription TITLE Les types dictionnaires IV H1 Inscription termin e lt H1 gt H2 F d ration Frangaise de Friture Froid H2 H2 42 me Congr s lt H2 gt lt BR gt lt BR gt Cussonnet Simon lt BR gt simon cussonnet thorel eur lt HR gt Alternative from string
7. Python Cours 1 Jean Yves Thibon Universit Paris Est Marne la Vall e ESIPE IR3 Python Langage objet pour prototypage ou d veloppement rapide programmation web langage de contr le de grandes applications scripts administration syst me recherche et d veloppement s curit hacking et bien d autres Extensible C C Fortran ou Java Libre Mature depuis 1991 communaut nombreuse et dynamique Syntaxe concise claire et coh rente v vvv vv v v v CPython Comme son nom l indique crit en C Extr mement portable Unix Windows MacOS Symbian et autres syst mes embarqu s gt Interpr t compil bytecode gt S r pas de pointeurs gestion automatique de la m moire gt Nombreuses biblioth ques r seau bases de donn es interfaces graphiques son vid o gt Extensible C C Fortran Cython JPython ex Jython gt Totalement int gr avec Java Compilation directe en bytecode Java Importation directe des classes Java gt H ritage depuis les classes Java Support des JavaBeans des applettes des servlettes M me langage mais diff rences actuellement dans les modules d extension Bref historique gt Premi re version en f vrier 1991 Guido van Rossum Version 2 0 en 2000 Aujourd hui version 2 7 5 gt Fork Version 3 0 en d cembre 2008 quelques incompatibilit s avec les pr c dentes 3 3 2 actuellement
8. def q L if len L lt 1 return L return q x for x in L 1 if x lt L 0 L 0 q y for y in L 1 if y gt L 0 gt gt gt LL 78 46 63 20 53 10 26 52 41 54 81 75 49 21 80 60 58 56 86 40 95 92 0 4 77 12 5 59 90 57 71 3 65 27 97 89 19 38 15 85 6 62 11 33 67 61 73 44 50 17 94 48 43 34 55 24 87 70 2 16 42 25 37 68 88 30 23 7 83 74 84 39 32 98 99 22 1 45 82 69 96 31 51 91 14 13 66 36 9 18 8 79 47 72 29 76 93 64 28 35 gt gt gt q 11 Oy 1 2 3x dy 5 6 7T 0 9 10 ll 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 18 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 gt gt gt Un script complet commande Unix usr bin python hello py le programme Hello world bien connu Usage hello py h help nom de personne EPR import sys getopt def usage Print usage doc and exit print _ doc sys exit Un script complet commande Unix Il try optlist arglist getopt getopt sys argv 1 h help except usage for option in optlist if option 0 in h help usage if arglist for arg in arglist print
9. e la biblioth que se compose de modules que l on doit importer gt gt gt help copy gt gt gt import copy gt gt gt x 1 2 3 gt gt gt y copy copy x Pour les objets complexes utiliser deepcopy gt gt gt gt gt gt gt gt gt gt gt gt 6 gt gt gt gt gt gt gt gt gt 6 gt gt gt gt gt gt gt gt gt gt gt gt gt gt gt 1 gt gt gt 1 u 1 2 3 4 v copy copy u u 0 6 T Sligo A p 1 2 3 4 5 g copy deepcopy p p 1 1 0 8 p 2 8 4 q 2 3 4 r 6 71 Blocs et indentation Pas d accolades ou de begin enda C est l indentation qui d termine la structure des blocs gt gt gt for i in range 0 256 if chr i isalnum print i chr i else pass Le point virgule en fin de ligne est optionnel On peut l utiliser pour mettre plusieurs instructions par ligne gt gt gt x abra y cadabra z x y print Z abracadabra On peut utiliser des V pour continuer une instruction sur la ligne suivante print 2 3 4 27 N 42 437 Il est parfois plus simple et recommand d utiliser des parenth ses Blocs et indentation Il print 2 3x4 27 542 37 On ne doit pas m langer espaces et tabulations La convention la plus r pandue est d indenter de 4 espaces Structures de contr le Noter la pr sence des deux points apr s if else for while if condition fa
10. efault def getitem self key try return except Key return dict getitem self key Error self default Orientation objet les classes et leurs instances V On notera l usage de try except plut t qu un test if key in self R sultat gt gt gt gt gt gt gt gt gt gt gt gt 1 gt gt gt 0 0 gt gt gt d defaultdict 0 0 e 1 4 5 2 7 8 d update e d 4 5 2 7 8 d 3 Orientation objet les classes et leurs instances VI Les classes newstyle poss dent une m thode new qui prend en charge la construction de l instance Elle est utile pour sous classer les types non mutables class CapString str def _ new cls s return str new cls s lower capitalize def add self x return CapString str add self x lower x CapString toTO y CapString tITi z Xty print x y z print type x type y type z gt gt gt Toto Titi Tototiti class __main__ CapString gt class main CapString gt class main CapString
11. gt gt gt 7 class Titi object pass new style d rive de object b Titi dir b L il y a du monde class delattr diot f t doo t format getattribute__ hash indt 4 module new reduce reduce ex repr setattr__ sizeof gt gt gt Les str__ subclasshook weakref attributs commen ant et finissant par deux soulign s sont les m thodes sp ciales Orientation objet les classes et leurs instances III H ritage gt gt gt class Chase pass gt gt gt class Cderivee Cbase pass gt gt gt Ibase CBase Iderivee Cderiv gt gt gt isinstance Ibase Cbase True gt gt gt isinstance Iderivee Chase True gt gt gt isinstance Ibase Cderivee False Les classes sont callable ce qui n est pas le cas de tous les objets gt gt gt callable 42 callable Chase False True Orientation objet le S classes et leurs instances IV La m thode sp ciale __init__ est appl e im diatement apr s la cr ation d une instance Son premier argument est l instance elle m me conventionnellement appel e sel les suivants sont les param tres ventuels class defaultdict dict Renvoie une valeur par d faut si une clef n est pas affect e def init s dict init self lf default None self default d
12. gt hex 0x6d gt gt gt int 16 109 gt gt gt bin 109 001101101 Les types entiers et flottants III Pour les flottants en multipr cision c est le module decimal qu il faut utiliser gt gt gt from decimal import gt gt gt getcontext Context prec 28 rounding ROUND_HALF_EVEN Emin 999999999 Emax 999999999 capitals 1 flags traps Overflow InvalidOperation DivisionByZero gt gt gt getcontext prec 100 gt gt gt Decimal 2 sqrt Decimal 1 414213562373095048801688724209698078569671875376948 073176679737990732478462107038850387534327641573 gt gt gt Les types les chaines I On peut utiliser deux types de guillemets toto et toto sont quivalentes Permet d crire 1 apostrophe ou les guillemets Lestriples guillemets mou 7 permettent d crire sur plusieurs lignes Une cha ne qui tra ne au milieu d un programme est vue comme un commentaire gt gt gt abc def concatenation avec abcdef gt gt gt abc 2 abcabc gt gt gt abc sdef d toto 4 4 formatage style printf abctotodef4 gt gt gt 08X 42069 y compris les conversions de base 00004455 gt gt gt SSSs d 12 On peut crire du code illisible 12 gt gt gt rac in abracadabra True gt gt gt abracadabra contains rac quivalent Les chaines ont de nombreuses m thodes
13. import Template S Template qui ne mange du quoi que Squand t s substitute qui Le cheval de mon cousin quoi du foin quand le dimanche print t Le typage en Python Typage dynamique les types sont implicitement polymorphes On peut surcharger les op rateurs Duck typing Connaitre le type d un objet n a pas d importance il faut seulement s assurer qu on peut lui appliquer les traitements souhait s si ca marche comme un canard et si ca cancane comme un canard alors ce doit tre un canard et si c est une oie on doit pouvoir faire avec Utiliser la coertion si un objet doit tre d un type particulier str x plut t que de demander isinstance x str EAFP Its easier to ask forgiveness than permission Utiliser le m canisme de gestion des exceptions try except pour d terminer le traitement appropri Le typage en Python Il olymorphisme gt gt gt def add a b return atb gt gt gt add 3 5 8 gt gt gt add 3 5 0 8 0 gt gt gt add abra cadabra abracadabra gt gt gt add 1 2 3 4 ls 25 8 4 gt gt gt Le typage en Python III gt gt gt print type 5 type 5 0 type abra type 1 2 type int type float type str type list gt gt gt gt 2 2 Traceback most recent call last File lt stdin gt line 1 in module TypeError unsupported operand type s for int and gt gt gt 2 2 12927
14. ire si vrai elif autre condition faire autre truc else faire si tout faux while condition iteration if fini break sort de la boucle if pouet continue saute ce qui suit autre chose Les it rations portent sur des listes ou plus g n ralement sur des objets it rables Structures de contr le I for element in liste manip element if foo element break if quux element continue chose element gt gt gt range 0 10 0 1 2 3 4 5 6 7 8 9 gt gt gt for i in range 0 10 print ixx2 Pour it rer sur des entiers on engendre leur liste au moyen de la fonction range range debut 0 fin pas 1 Les types entiers et flottants gt gt gt 2 3x4 14 gt gt gt 1 8 aussi gt gt amp XOR 256 gt gt gt 5xx3 125 gt gt gt 42510 2 gt gt gt 2xx 1 12 gt gt gt 1 12 attention la division enti re 0 gt gt gt 2xx 1 0 12 1 0594630943592953 gt gt gt 2xx200 1606938044258990275541962092341162602522202993782792835301376L On voit que Python supporte la multipr cision utile pour la cryptographie entre autres Les types entiers et flottants Il Les fonctions math matiques de base sont dans le module math gt gt gt import math gt gt gt math cos math pi 3 0 50000000000000011 On dispose de fonctions de conversion entre bases int 0256 256 gt gt gt int 1101101 2 109 gt gt
15. nd of attributes reachable from it If the object supplies a method named _ dir it will be used otherwise the default dir logic is used and returns for a module object the module s attributes for a class object its attributes and recursively the attributes of its bases for any other object its attributes its class s attributes and recursively the attributes of its class s base classes Intepr teur mode d emploi Il Par exemple avec une cha ne de caract res on obtient quelque chose du genre po diel tod ada f gt class_ contains delattr Fo d g f startswith strip swapcase title translate upper zfilk De Le plus pratique pour d buter est l IDE idle d velopp en pur Python titre de d monstration Il existe aussi un plugin Python PyDev pour Eclipse et d autres IDE du m me genre Eric Conventions essentiellement comme en C gt gt gt a 2 gt gt gt a 2 gt gt gt 1 2 False gt gt gt print Ss f pi 3 1415926 pi 3 141593 Mais il y a un pi ge Les variables sont des r f rences des objets Si b a une modification de a peut affecter b gt gt gt 227 gt gt gt Do wY N 2 jusqu ici RAS a 1 2 3 gt gt gt b gt gt gt a gt gt gt b 5 1 5 3 a e aie aie Solution le module copy Pas g nant si on est conscient du probl me Au passag
16. tr s pratiques essayer dir Les types les chaines II gt gt gt len toto 4 gt gt gt toto upper TOTO E x yz JSUrXpt rx yz gt gt gt albert startswith al True gt gt gt salamalec replace al ila silaamilaec gt gt gt l an de l ananas count an 3 gt gt gt piano n strip piano Le module string offre quelques fonctionalit s suppl mentaires Les types tuples et listes En Python liste tableau Les indices commencent 0 gt gt gt 11 toto 42 ga bu zo meu 999 gt gt gt 11 2 0 ga gt gt gt ll append foo gt gt gt 11 toto 42 ga bu zo meu 999 foo gt gt gt ll pop foo gt gt gt 1 2 4 8 16 32 1 25 4 8 16 32 gt gt gt liste toto 42 True gt gt gt liste 0 123 gt gt gt liste 123 42 True gt gt gt 123 in liste True gt gt gt 123 not in liste False Les types tuples et listes II Les tuples sont d finis par des parenth ses Ils ont essentiellement les m mes m thodes mais ils ne sont pas mutables gt gt gt 1 2 3 2 1 2 3 1 2 3 gt gt gt pasliste 1 False gt gt gt pasliste 0 gt gt gt pasliste 0 69 ypeError object doesn t support item assignment gt gt gt list pasliste 1 False gt gt gt range 4 Oy d 25 3 gt gt gt tuple range 4 0 1 2 3 gt
17. y font font 2 Helvetica size 12 xxstyles print Font name is s font print Font size is d size print Extra attributes for attrname attrvalue in styles items print t s s attrname str attrvalue gt gt gt apply font size 24 color red background black Font name is Helvetica Font size is 24 Extra attributes background black color red gt gt gt apply font x color red background black L op rateur extrait les arguments d un dictionnaire Les fonctions V Fonctions anonymes 1ambda vient du LISP s utilise avec map filter reduce gt gt gt compose lambda f g lambda x g f x gt gt gt plus4fois2 compose lambda x x 4 lambda x xx2 gt gt gt plus4fois2 5 18 gt gt gt map lambda x xxx 1 2 3 4 l 4 9 16 gt gt gt filter lambda x chr x isdigit range 0 256 48 49 50 bl 52 53 54 55 56 57 gt gt gt def add x 11 reduce lambda x y x y 11 gt gt gt add range 100 4950 Compr hensions de listes Syntaxe tr s puissante emprunt ee Haskell La pr f rer map lambda filter reduce gt gt gt xxx for x in 1 2 3 4 1 4 9 16 gt gt gt x for x in range 0 256 if chr x isdigit 48 49 50 bl 52 53 54 55 56 57 gt gt gt noprimes j for i in range 2 8 for j in range ix2 50 i gt gt gt primes x for x in range 2 50 if x not in noprimes gt gt gt
Download Pdf Manuals
Related Search
Related Contents
Manual de instruções VEGABAR 83 Tests disponibles à l`emprunt Logopédie (adulte) Les tests suivants GV-Mini DVR System V2 HoMedics FMS-200H Downloadable Instruction Book Artsound RE2040 Valera 641.02 hair curler Copyright © All rights reserved.
Failed to retrieve file