intiation python, avril 2003 introduction présenter python –simplicité –utilisation pratiques...

15
intiation python, avril 2003 introduction •Présenter Python – simplicité – utilisation pratiques •Conserver cette info en ligne •Susciter des échanges à l’Ircam

Upload: evariste-schneider

Post on 03-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

intiation python, avril 2003

introduction

• Présenter Python– simplicité– utilisation pratiques

• Conserver cette info en ligne

• Susciter des échanges à l’Ircam

Page 2: 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 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

Page 3: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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

Page 4: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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)

Page 5: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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

Page 6: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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

Page 7: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

intiation python, avril 2003

Les mots

• def• return• if, elif, else• for• while• range• class

Page 8: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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

Page 9: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

intiation python, avril 2003

Syntaxe

• Boucles for, while, range• If, else• Definition• Class

Page 10: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

intiation python, avril 2003

Quelques scripts

• Fichiers et répertoires

• Mac spécial

• Récursivité

• L’audio

• Les GUIs

Page 11: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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

Page 12: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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)

Page 13: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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/

Page 14: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

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

Page 15: Intiation python, avril 2003 introduction Présenter Python –simplicité –utilisation pratiques Conserver cette info en ligne Susciter des échanges à lIrcam

intiation python, avril 2003

patron

exemple.pydef exemple:

passexecfile(‘exemple.py’)