Python

Overall
• Indendation matters!
• Python is case sensitive
• Comments: # , or """multiline comment """

• a=b=c=1 defines a, b, and c to be 1
• a,b,c = 1, 1.0, "Hello Glorious World"

• Logical
==, !=, <, >, <=, >-
and, or, not
in, not in
is, is not (x is y, here is results in 1 if id(x) equals id(y).)
In general, 0 is FALSE, and all other numbers are TRUE
- x or y
- x and y
- not x
Arithmatic
+, -, *, /
% (remainder), ** (exponent), // (floor division)
Assignment Operators
= Simple assignment
c += a is equivalent to c = c + a
c -= a is equivalent to c = c - a
c *= a is equivalent to c = c * a
c /= a is equivalent to c = c / a
c %= a is equivalent to c = c % a
c **= a is equivalent to c = c ** a
c //= a is equivalent to c = c // a
Conditional Assignment
x = 3 if (y == 1) else 2
x = 3 if (y == 1) else 2 if (y == -1) else 1
# also valid: x = (class1 if y == 1 else class2)(arg1, arg2)

Functions
def FUN(parameters):
""" docstring """
# do stuff
return ...
Data Types
• Numbers:
• int(), long(), float(), and complex()
Numbers allow the use of math.floor(), math.ceil(), math.round(x[, n])
• Strings: If lala="omg so cool", then
lala[0:4] is "omg".
lala[0:4]*2 is "omgomg".
lala + " PUMPKIN!" is "omg so cool PUMPKIN!"
%
>>> print '%(lang)s has %(n)03d quote types.' % \
... {"lang": "Python", "n": 2}
Python has 002 quote types.
• Lists[ ]: Very versatile! Unfrozen Tuples.
IF li = [1, 12.02, "Cheese"]
li[0:] is [1, 12.02, "Cheese"]
li[0:2] is [1, 12.02]
li is 12.02
li[-1] is "Cheese"
li.append("b") is [1, 12.03, "Cheese", "b"]
li.insert(2, "1") is [1, 12.013, "1", "Cheese"]
li.extend(["1","2"]) is [1, 12.03, "Cheese", "1", "2"]
[0,9]*2 returns [0,9,0,9]
• Tuples( ): In short, frozen lists. No .append, .extend, .insert.
• Dictionaries{ }: UNORDERED
d={'one':1, 'two':2} #or
d={}
d['one'] = 1 ; d['two'] = 2
THEN
d['one'] is 1
d.keys() is ['one', 'two']
d.values() is [1, 2]

• Truth Value Testing
Any object can be tested for truth value. Basically any empty object, None, or False is considered False:
- None
- False
- 0, 0.00, etc.
- "", [], or ()
- {}
- an object with length 0
Flow Control
• If (else) statements
• if a>b:
print b
else:
print a

• Loops
for, while
Control Statements:
break (terminates the loop)
continue (skip the remainder and continue to the next iteration)
pass (used when a statement is required syntactically but you do not want any command or code to execute.)

• Nested List comprehensions
• [(i,j) for i in range(3) for j in range(i) ]
((i,j) for i in range(4) for j in range(i) )

• Exception else clause
• try:
put_4000000000_volts_through_it(parrot)
except Voom:
print "'E's pining!"
else:
print "This parrot is no more!"
finally:
end_sketch()

Argument Unpacking
def some_function(x, y):
# do some magic

tuple_foo = (3, 4)
dict_bar = {'y': 3, 'x': 2}

some_function(*tuple_foo)
some_function(**dict_bar)

Slice Operators
a = [1,2,3,4,5]
# iterate over the whole list in 2-increments
>>> a[::2]
[1,3,5]

# reverse a list:
>>> a[::-1]
[5,4,3,2,1]

Chaining Comparison Operators
>>> x = 5
>>> 1 < x < 10
True
>>> 10 < x < 20
False
>>> x < 10 < x*10 < 100
True
>>> 5 == x > 4
True