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 # switch on the menu bar if you don't have it with:
9 # M-x menu-bar-mode 1
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     elif quantity == 0:
54         print "I don't want any " + what
55     else:
56         print 'I want ' + str(quantity) + ' ' + what + 's!'
57
58 order(20, 'banana')
59 order(1, 'banana')
60
61 # loops
62 def order(quantity, what):
63     if quantity == 1:
64         print 'I want ' + str(quantity) + ' ' + what + '!'
65     else:
66         for i in quantity:
67             print 'I want ' + str(quantity) + ' ' + what + 's!'
68
69 order(5, 'cake')
70
71 ###
72
73 # Open Sound Control
74
75
76 # we need some more modules
77 import liblo
78 import sys
79
80
81 # safety 1st
82 try:
83     target = liblo.Address(57120)
84 except liblo.AddressError, err:
85     print str(err)
86     sys.exit()
87
88 # building and sending OSC messages
89 def spam():
90     msg = liblo.Message("/viagra")
91     msg.add("buy me!!!")
92     liblo.send(target, msg)
93
94 spam()
95
96 def eggs(quantity):
97     for i in range(quantity):
98         msg = liblo.Message("/viagra")
99         msg.add(i)
100         liblo.send(target, msg)
101
102 eggs(12)
103