Présentation PowerPoint - plan

publicité
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
Téléchargement