Modifications entre les versions 7 et 8
Version 7 à la date du 2012-02-24 00:05:31
Taille: 2209
Éditeur: DavinBaragiotta
Commentaire:
Version 8 à la date du 2012-02-24 00:12:32
Taille: 2538
Éditeur: DavinBaragiotta
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 102: Ligne 102:
  * [[http://code.google.com/p/pyo/|pyo]]   * [[http://code.google.com/p/pyo/|pyo]] {{{
import pyo
s = Server().boot()
s.start()
wav = SquareTable()
env = CosTable([(0,0), (100,1), (500,.3), (8191,0)])
met = Metro(.125, 12).play()
amp = TrigEnv(met, table=env, mul=.1)
pit = TrigXnoiseMidi(met, dist='loopseg', x1=20, scale=1, mrange=(48,84))
out = Osc(table=wav, freq=pit, mul=amp).out()
s.stop()
}}}

Python : Atelier intermédiaire


INTRODUCTION

  • Objectifs :
    • savoir coder ses propres objets
    • utiliser la bibliothèque standard et des packages existants


NOTIONS INTERMÉDIAIRES

Orienté-objet et classes

Objet, instance de classe

Attributs et méthodes

  • portée : de classe, d'objet

Héritage

  • object
  • si classe hérite : init DOIT appeler init de parent

    • appel de méthode de parent : ClassParent.methode(self) # self = obligatoire

self

  • représentation de l'objet (instance)
    • le "this" de Java, PHP

CRUD

__init__

Décorateurs

Exceptions

Lambda

  • lambda input: output
  • lambda x: x*2

Bibliothèque standard

  • datetime
  • re
  • os.system
  • os.popen
  • os.path
  • pickle
  • sqlite3
  • zlib
  • csv
  • json
  • email
  • uuid
  • urllib
  • gettext
  • pdb
  • sys
  • pwd

    # http://www.python.org/doc/lj21.html
    import posix
    import pwd
    pwd.getpwall()
    print 'hello', pwd.getpwuid(posix.getuid())[0]
    # progfou: et autre détail non négligeable pour nous à l'AuF : pwd fait des appels à la libc, qui passe par NSS, donc ça donne aussi les comptes réseau
  • socket

    # socket.getaddrinfo pour faire de la résolution DNS
    import socket
    socket.getaddrinfo('smtp.sn.auf.org', 25)

Packages

  • pypi
    • http://pypi.python.org/

      • numpy, scipy

        # fonctions d'optimisation
        
        def f(x) :
           return x**3 - x**2 -10
        
        from scipy import optimize
        optimize.fsolve(f, 1)
      • android
      • nltk
      • jabberbot
      • django
    • http://pypi.auf.org/

      • auf.django.references
  • autres
    • Fabric, Cuisine, Watchdog

    • pyo

      import pyo
      s = Server().boot()
      s.start()
      wav = SquareTable()
      env = CosTable([(0,0), (100,1), (500,.3), (8191,0)])
      met = Metro(.125, 12).play()
      amp = TrigEnv(met, table=env, mul=.1)
      pit = TrigXnoiseMidi(met, dist='loopseg', x1=20, scale=1, mrange=(48,84))
      out = Osc(table=wav, freq=pit, mul=amp).out()
      s.stop()


EXERCICE

* modifier iptables * créer un bot jabber


CONCLUSION

  • ne pas réinventer la roue : utiliser l'existant
  • DIY (do-it-yourself) : pour le reste, faites du "sur mesure"
  • yalla!

Ateliers/2012-02-24/Python/Plan (dernière édition le 2012-08-27 07:27:18 par DavinBaragiotta)