introduction • Présenter Python – simplicité – utilisation pratiques • Conserver cette info en ligne • Susciter des échanges à l’Ircam intiation python, avril 2003 Plan • Introduction c’est 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é L’audio Les GUIs Mac spécial • L’installation • L’éditeur • Présentation Kasper intiation python, avril 2003 c’est 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 d’autres 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é d’importer 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é d’office 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, l’idée de la programmation accessible à tous et les Monthy Python’s Flying Circus... • A la fin des années 80, Van Rossum commence à travailler sur Python dans l’Institut de Recherche en Mathématique et d’Informatique aux Pays-Bas. • aujourd’hui 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) – aujourd’hui 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 n’y 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, c’est 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é L’audio Les GUIs intiation python, avril 2003 L’installation • 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 • http://www.python.org/ • Pour les macs: ftp://ftp.cwi.nl/pub/jack/python/mac • Doc: – http://web.pydoc.org/ (dont l’excellent tutoriel) • Modules, scripts: – http://www.vex.net/parnassus/ 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’) intiation python, avril 2003