oh pwetty
[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 order(0, 'banana')
61
62
63 # loops
64 def order(quantity, what):
65     if quantity == 1:
66         print 'I want ' + str(quantity) + ' ' + what + '!'
67     else:
68         for i in range(quantity):
69             print 'I want ' + str(quantity) + ' ' + what + 's!'
70             print i
71
72 order(5, 'cake')
73
74 ###
75
76 # Open Sound Control
77
78
79 # we need some more modules
80 import liblo
81 import sys
82
83
84 # safety 1st
85 try:
86     target = liblo.Address(1111)
87 except liblo.AddressError, err:
88     print str(err)
89     sys.exit()
90
91 # building and sending OSC messages
92 def spam():
93     # build "/viagra buy me!"
94     msg = liblo.Message("/viagra")
95     msg.add("buy me!!!")
96     liblo.send(target, msg)
97
98 spam()
99
100 def eggs(quantity):
101     for i in range(quantity):
102         msg = liblo.Message("/viagra")
103         msg.add(i)
104         liblo.send(target, msg)
105
106 eggs(12)
107