merge OSC tutorial in python's
[slashmodeplusvnoise:legacy.git] / workshop / bot_tutorial / python.py
1 # Mini Python tour
2
3 # Emacs command for Python interpreter
4 # C-c C-r Eval Region
5
6 # strings
7 print 'hello'
8 print 'I want' + ' a cheezburger'
9 print 'I want' * ' a cheezburger'
10
11 # integers and floats
12 print 1.5
13 print 1 + 1.1
14
15 # not good
16 print 'I want' + 5 + 'kroketen'
17 # good
18 print 'I want ' + str(5) + ' kroketen'
19 print 'I want a vewy pwetty kitty\n' * 50
20
21 # modules
22 print sqrt(4)       # nope ...
23 import math         # ah ah !
24 print math.sqrt(4)
25
26 # functions
27 def beer():
28     print 'I want ' + str(5) + ' beers!'
29
30 beer()
31
32 # functions argument
33 def beer(quantity):
34     print 'I want ' + str(quantity) + ' beers!'
35
36 beer(1000)
37 beer(12)
38
39 def order(quantity, what):
40     print 'I want ' + str(quantity) + ' ' + what + '!'
41
42 order(200, 'moustaches')
43
44 # conditions
45 def order(quantity, what):
46     if quantity == 1:
47         print 'I want ' + str(quantity) + ' ' + what + '!'
48     else:
49         print 'I want ' + str(quantity) + ' ' + what + 's!'
50
51 order(20, 'banana')
52 order(1, 'banana')
53
54 # loops
55 def order(quantity, what):
56     if quantity == 1:
57         print 'I want ' + str(quantity) + ' ' + what + '!'
58     else:
59         for i in quantity:
60             print 'I want ' + str(quantity) + ' ' + what + 's!'
61
62 order(5, 'cake')
63
64 ###
65
66 # Open Sound Control
67
68
69 # we need some more modules
70 import liblo
71 import sys
72
73
74 # safety 1st
75 try:
76     target = liblo.Address(9999)
77 except liblo.AddressError, err:
78     print str(err)
79     sys.exit()
80
81 # building and sending OSC messages
82 def spam():
83     msg = liblo.Message("/viagra")
84     msg.add("buy me!!!")
85     liblo.send(target, msg)
86
87 spam()
88
89 def eggs(quantity):
90     for i in range(quantity):
91         msg = liblo.Message("/eggs")
92         msg.add(i)
93         liblo.send(target, msg)
94
95 eggs(12)
96