On Github tayden / python-tutorial
# String person = "Douglas Adams" #Integer a = 3 #Float b = 6.0
# LIST a = [1, 2, 3, "dog"] # these are mutable a[0] = 9 #[9, 2, 3, "dog"] # TUPLE b = (1, "fish", 9.1) # these are immutable b[1] = "pony" # Error!
person = {name: "Rob", profession: "Delivery guy"}
Accessed by key
print person.name print person['name'] output>> "Rob" output>> "Rob"
Types can be combined to help represent more complex data structures
Common for representing matrices
matrix_keanu = [
    [0,0,0],
    [0,0,1],
    [0,1,0],
    [0,1,1]
]
... can also be written
matrix_keanu = [[0,0,0], [0,0,1], [0,1,0], [0,1,1]]
Common for representing tabular data
powerrangers = [
    {color: "Red", zord_rating: 7 },
    {color: "Black", zord_rating: 8 },
    {color: "Pink", zord_rating: 9 },
    {color: "Blue", zord_rating: 2 }
]
for n in [1, 2, 3, 4, 5, 6]:
    print n
output>> 1
output>> 2
...
output>> 6
syntax:
for [var-name] in [iterable]:
    [Do something with var-name]
iterables are typically lists or tuples.
You can do anthing you want in the [Do something] part of the loop, including call more loops
quads = [
  [1,2,3,4],
  [5,6,7,8]
]
for item in quads:
    # item is [1,2,4,8], then [1,3,9,27].
    for n in item:
        print n*2, # trailing comma makes print not add a newline
        print ", ",
    print # print a newline
output>> 2, 4, 6, 8,
output>> 10, 12, 14, 16,
i = 3
while(i > 0)
    print i
    i -= 2
output>> 3
output>> 1
A compact for loop for working with lists/tuples
numbers = [1,2,3,4,5,6,7,8,9,10] odds = [n for n in numbers if n%2 == 1] print odds output>> [1,3,5,7,9]
Used to execute code if a condition is met
a = 2
if a > 2:
    print "a is greater than 2"
elif a == 4:
    print "a is 4"
# can add more elif statements here if desired
else: # All tests failed
    print "there is no 'truth' in the world"
output>> "there is no 'truth' in the world"
powerrangers = [
    {color: "Red", zord_rating: 7 },
    {color: "Black", zord_rating: 8 },
    {color: "Pink", zord_rating: 9 },
    {color: "Blue", zord_rating: 2 }
]
for ranger in powerrangers:
    if ranger.zord_rating > 7:
        print ranger.color
outputs>> "Black"
outputs>> "Pint"
Functions abstract away complex operations and prevent rewriting code you've already written.
# add two numbers and print the result
def add(a, b):
    print a+b
# call function
add(1, 2)
output>> 3
Reusable functions typically return a value so it can then be used as the input to another function
# add two numbers and print the result
def add(a, b):
    return a+b
# call function
result = add(1, 1)
result = add(1, result)
print result
output>> 3
A function may have a default value like This
# add two numbers and print the result
def add(a, b=10):
    return a+b
# call function
print add(1)
print add(1, 2)
output>> 11
output>> 3
A definition of an object - something that contains attributes and functions to abstract away complexity
class Person:
    def __init__(self, name)
        # A special function that creates new objects
        self.name = name
    def nameStartsWithT(self):
        return upper(self.name[0]) == "T"
# Create object from class definition
me = Person("Taylor")
# Call Class function on object
me.nameStartsWithT() # Returns True
class Restaurant:
    def __init__(self, name, capacity):
        self.name = name
        self.capacity = capacity
        self.currentDiners = 0
    def addTable(self, patrons):
        self.currentDiners += patrons
    def atCapacity(self):
        self.currentDiners >= self.capacity
In Python, everything is an object
This means that pretty much everything has some inherent functions attached
# String functions
print "fish, dog, pony".split(",")
output>> ["fish", "dog", "pony"]
# Dict functions
some_dict = {person:"Guido", profession:"Programmer"}
print some_dict.keys()
output>> ["person", "profession"]
print some_dict.values()
output>> ["Guido", "programmer"]
and many more!
"Application programming interface"
class Polygon(exterior[, interiors=None])
from shapely.geometry import Polygon polygon = Polygon([(0, 0), (1, 1), (1, 0)]) polygon.area output>> 0.5
From Carson Farmer's website: