Archive:Atelier Python 2009
Sommaire
Atelier Python 27 avril - 30 avril 2009
Programme prévisionnel
Proposition d'organisation d'un workshop consacré à Blender durant la seconde semaine de vacances de Pâques.
du 27 avril au 1 mai
Interaction temps réel / utilisation de l'outil GameLogic
- les bases de la relation entre les différentes composantes du module
- l'export en .exe
- temps réel en multi utilisateurs
- les différents moteurs de jeu
Programmation Python
- découverte / philosophie / les bases de la programmation objet
Animation ++
- production d'actions / NLA Editor
- animation de visages
- animation de tissus
Ressources de base
Ressources en ligne
- Le site de Python est assez bien achalandé en docs : http://docs.python.org/
- Atelier animé dans la première partie par [Vincent Rioux http://vincentrioux.net/]
- Résumé de cours de Vincent Rioux
- récupération de fichier sur le svn :
svn co svn://88.191.62.149:5020/orlosc/notes_ateliers/0904_labomedia
- Premiers exercices : type de variables, ...
>>> nb = 3.22 >>> int(nb) >>> str(nb) >>> type(nb) >>> type(2.) /!\ Déclaration de variables à la volée, si l'on veut travailler avec des floats, rajouter un "."
Trouver de l'aide
- Lister les modules
>>> help() help> modules help> keywords CTRL+D pour sortir de l'aide dir(s2) donne la liste des fonctions applicables à l'objet s2
Tuple ()
Il s'agit d'affectation statique : pas possibilité de modifier le contenu de ce tuple
>>> fruits = ('pomme', 'poire', 'banane') >>> fruits ('pomme', 'poire', 'banane') >>> for n in fruits: print(n) ... pomme poire banane >>> fruits[1] 'poire' >>>
Les tableaux, listes []
Avec les tableaux et les listes, on peut tout manipuler
- Pour convertir un Tuple >>> fruits=liste(fruits)
- Pour insérer
>>> fruits.insert(0, 'prune') >>> fruits ['prune', 'pomme', 'poire', 'banane', 12]
- Pour ajouter en bout de liste
>>> fruits.append('kiwi') >>> fruits ['prune', 'pomme', 'poire', 'banane', 12, 'kiwi']
- Pour remplacer un élément de la liste
>>> fruits[3]='coco' >>> fruits
['prune', 'pomme', 'poire', 'coco', 12, 'kiwi']
Les dictionnaires
Associer des éléments ssous la forme d'un dictionnaire, /!\ le dictionnaire est non ordonné et ne dépend pas de l'ordre initial
>>> arbres2fruits = {'pommier':'pomme', "l'arbre du voisin":'poire', ('citronnier', 'oranger'):'agrumes'}
on ne peut indexer (le 1er terme) qu'avec des clefs solides cad tuple mais pas liste par exemple
Les ensembles
équivalent à un sac d'éléments uniques, permet notamment d'enlever les doublons
>>> s1 = set([1,2,3,4,1]) >>> s1 set([1, 2, 3, 4]) >>> list(s1) [1, 2, 3, 4] >>> l = list(s1) >>> l.sort() >>> l [1, 2, 3, 4] >>> s2 = set([4,5,5,6,7]) >>> s2.intersection(s1) set([4])
Les boucles
Ressource : les pages du site python.org recense tous les modules http://docs.python.org/library/os.html#module-os
>>> import os >>> help(os) pour avoir la liste des objets os
Modules
os est un "module"
bibliothèque regroupe plusieurs modules (type os)
- pour trouver/installer des modules externes à Python http://pypi.python.org/pypi
- Pour installer un nouveau module : via synaptic, via easyinstall, ou en téléchargeant le tarball et en faisant python setup.py dans le répertoire décompressé
>>> import os >>> os.uname() ('Linux', 'benjamin-laptop', '2.6.24-19-rt', '#1 SMP PREEMPT RT Thu Aug 21 02:08:03 UTC 2008', 'i686') >>> import platform >>> platform.platform() 'Linux-2.6.24-19-rt-i686-with-debian-lenny-sid'
>>> math.sin.__doc__ : affiche l'aide de la fonction sin : __doc__ est une fonction interne
Les Fonctions
On utilise une fonction dès qu'une suite d'opérations doit s'effectuer de façon répétée sur des variables qui ne sont pas à priori connues. textecopier/collerimprimer Les variables restent locales à la fonction
def simpliste(chaine): import random return chaine*random.randint(1,20) simpliste('ha') simpliste('ho')