UTOSC 2008/90 percent of the Python you need to know (in 90 minutes)
Matt Harrison http://panela.blog-city.com
The Zen of Python:
import this
show memebers (attributes, functions) of instances:
dir()
show docs for modules/classes/functions
help()
help("".zfill)
Variables can point to anything:
my_var = "a string" my_var = 42 # an int
Number very similar to other languages. No int overflow
Interpreter
>>> 2.97 * 94.2 279.774
Print variable
nums=5 nums
Strings:
hello = 'hello' hello = "hello" hello = """this is a paragraph and she said "hi" and it was good"""
String formattting:
var = "is %s " % "matt" var = "is %d " % 20
Functions of string?
dir("")
Lists (mutable) and "tuples" (non-mutable)
alpha = ["a", "b"] alpha.append("c") alpha = ("a", "b")
Functions of a list?
dir([])
Slicing:
alpha = ["a", "b", "c"] print alpha[0:1] # 0 to 1 print alpha[0:3:2] # 0 to 3, every other one print alpha[1::2] # ever other one
Range:
range(5) # generate numbers 0 to 4 range(start, end, count) range(99, 1, -1)
Dictionaries (hash maps, or associated arrays)
person = {"name": "bob", "age": 29} age = person["age"]
Functions of dictionary:
dir({})
Functions:
def my_func(param_1, param_2): """ doc string """ return param_1 + param_2
Functions can have default values:
def add(num, add=5):
Return true if gymnast older than 16:
def is_16(year): return (2009 - year) >= 16
Conditionals:
if x > 90: grade = "A" elif x > 80: grade = "B" else: grade = "C"
While (no switch - use dictionary):
cap = {"utah": "salt lake", "arizona": "phoenix"} if state in capitals: print "cap of %s is %s" % (state, cap[state]) else: print "not there"
Loops:
for item in range(10): print item
Break out of loop with break and continue
Indexes, use enumerate;
anim = ["a", "b", "c"] for index, value in enumerate(animals): print value, index
Return a list of numbers squared:
def squared(numbers): results = [] for num in numbers: results.append(num * num) return results
Open file:
fin = open("food.txt") for line in fin: # do stuff fin.close();
Write to file:
fout = open("bar.txt", "w") fout.write("hi") fout.close()
Comma at end of print statement won't add new line
print "hi",
Print integers to file:
fin.open("out.txt", "w") for i in range(100): fin.write(str(i)) # cast to string fin.close()
Class:
class Hello(object): "doc string" # or """ docs as paragraph """ def __init__(self, name): self.name = name def talk(self): print "stuff" @staticmethod def main(): print "Hello World" Hello.main() h = Hello("thing") h.talk()
Subclass:
class hi(Hello): def talk(self): print "something else"
Try catch:
try: ... except KeyError, e: ... except Exception, e: ...
Raise execption:
raise Exception("my error")