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