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