intiation python, avril 2003 introduction présenter python –simplicité –utilisation pratiques...
TRANSCRIPT
intiation python, avril 2003
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.pyprint "hello"
% pythonprint "hello"
helloexecfile(‘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 comprehensionfreshfruit = [' banana', ' loganberry ', 'passion fruit '][weapon.strip() for weapon in freshfruit]
['banana', 'loganberry', 'passion fruit']
# dictionariestel = {'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.pydef exemple:
passexecfile(‘exemple.py’)