intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam
intiation python, avril 2003 Plan Introduction cest quoi python? petit historique comparatif Un avant-goût Hello.py La tabulation Les mots du langage Les structures de données Quelques scripts (en ligne) Fichiers et répertoires Récursivité Laudio Les GUIs Mac spécial Linstallation Léditeur Présentation Kasper
intiation python, avril 2003 cest quoi python? langage dit « de script » son concepteur, Guido Van Rossum, le situe entre le C et le Shell orienté objet –un objet est un morceau de code qui possède des données internes (qui le différencie dautres objets de même type ou classe) des fonctions propres ou méthodes (qui permettent notamment de le modifier,...) –comme java, c++,... interprété –on peut lancer des commandes de façon interactive –comme basic, logo, matlab, le shell,... modulaire –il est aisé dimporter et de créer de nouveaux modules –de nombreuses bibliothèques sont disponibles (web, xml, bd, audio, image,...) –le plus dur étant de trouver les bonnes... portable –à peu près toutes les plateformes sont supportés –installé doffice sur Linux et MacosX License BSD (logiciel libre) doc partiellement complète car le language est en construction
intiation python, avril 2003 petit historique Guido aime bien les mathématiques, la programmation, lidée de la programmation accessible à tous et les Monthy Pythons Flying Circus... A la fin des années 80, Van Rossum commence à travailler sur Python dans lInstitut de Recherche en Mathématique et dInformatique aux Pays-Bas. aujourdhui Python se porte très bien mais a-t-il atteint sa taille adulte ? –Le noyau évolue encore (recherche de concision et délégance) –aujourdhui la version est 2.3 (beta)
intiation python, avril 2003 comparatif Python vs. C/C++ –au moins 10 fois moins de lignes de code –pas besoin de compilation –Python est moins rapide –mais en même temps facilement extensible Python vs. Java –moins de lignes de code –avec Jython c'est Java ET Python :) Python vs. bash, sh, perl –plus structuré et donc plus lisible Python vs. Matlab –plus lisible –plus de libraries générales –pas encore les mêmes fonctionnalités que Matlab (libraries spécialisés, plot) –mais il y a des projets très prometteurs
intiation python, avril 2003 Un avant-goût Hello.py La tabulation –il ny a pas de marqueurs de structure comme () ou {} –La structure apparaît grâce au tabulations de 4 ou 8 espaces (à bien choisir une fois pour toute) pour certains, cest la fragilité du langage... en pratique, tout se passe bien #hello.py print "hello" % python print "hello" hello execfile(hello.py) hello
intiation python, avril 2003 Les mots def return if, elif, else for while range class
intiation python, avril 2003 Les structures de données Les chaînes de caractères ' ' ou " " –strip, find, lower, upper,... Les tuples (immutables)() Les listes[] –append, insert, pop, index –comprehension Les dictionnaires{} –keys, has_key # list comprehension freshfruit = [' banana', ' loganberry ', 'passion fruit '] [weapon.strip() for weapon in freshfruit] ['banana', 'loganberry', 'passion fruit'] # dictionaries tel = {'jack': 4098, 'sape': 4139} tel['jack'] 4098
intiation python, avril 2003 Syntaxe Boucles for, while, range If, else Definition Class
intiation python, avril 2003 Quelques scripts Fichiers et répertoires Mac spécial Récursivité Laudio Les GUIs
intiation python, avril 2003 Linstallation Sur Mac: –os8/9: disponible en binaire avec les bindings vers ressources Mac! pb principale réside dans la compilation de modules en C... –osX: disponible dans le shell par défaut mais sans tkinter, ni les bindings vers ressources Mac (à vérifier) disponible en binaire pour aqua disponible avec fink Sur Windows –Des versions binaires de python, zodb, pyxml, snack,... Sur Linux/Unix –Installé par défaut
intiation python, avril 2003 Les éditeurs Emacs (mode pour python disponible sur python.org) BBedit (Mac classique) IDLE, IDLEfork écris en python+tkinter Jedit (requiert java)
intiation python, avril 2003 Quelques sites Pour les macs: ftp://ftp.cwi.nl/pub/jack/python/macftp://ftp.cwi.nl/pub/jack/python/mac Doc: – lexcellent tutoriel) Modules, scripts: –
intiation python, avril 2003 audio aifc, wave modules internes snack pyjack Nyptho py/pyext (max, jmax) IIWU sing loris SDIF (diemo) => reste à connecter vers numarray
intiation python, avril 2003 patron exemple.py def exemple: pass execfile(exemple.py)