Community Data Science Workshops (Fall 2014)/Day 1 lecture

From OpenHatch wiki

Welcome to the Saturday lecture section of the Community Data Science Workshop! For about 2 hours, we'll work through an introduction to the Python programming language via both a lecture and hand-on exercises.

Resources

Lecture outline

Review Friday material

  • math: using python as a calculator
    • addition, subtraction, multiplication, division
    • division shows something different: 8/2 versus 1/2
  • type()
    • there are different types of things in python (called objects)
    • variables that "know about the decimal place" (int) and variables that don't (floats)
  • variables
    • assignment of variaibles
    • e.g., math with variables: scale up a recipe, into an assignment
    • you can assign to a variable and it will replace the old value
  • strings
    • things within quotation marks
    • adding strings with "concatination" (smushing things together)
    • e.g., print("Hello" + name)
    • concatenating strings and integers don't work (e.g., print(1 + "mako"))
    • 1 is different than "1"; name is different than "name"
    • single quotes versus double quotes (python doesn't care)
    • you can also multiply strings! (although it's not clear why you want to weird)
  • booleans
    • comparisons (e.g., 1 == 1 or 1 == 0)
      • you can compare strings (case sensative!)
      • also >, <, and !=
    • type() shows that the output of True or False is bool
    • e.g., "i" in "team"
    • e.g., "i" not in "team"
  • if/elif/else (move to external file)
    • if, something that evaluates to a boolean, and then colon
    • e.g., if "mako" in "makoshark"
    • e.g., adding else example: if brother_age > sister_age
    • e.g., tempreature range
    • e.g., adding elif: fix the bug in the previous program if they were the same age
    • indent with spaces (we use 4 spaces!)
  • functions
    • has a parentheses
    • we've already learnd examples of this: exit(), help(), type()

Lists

  • purpose
  • initialization
  • len() review
  • accessing elements
  • adding elements
  • changing elements
  • slicing lists
  • strings are like lists
    • len()
      • len("") length of the empty string

loops and more flow control

  • for loops
  • if statements inside for loops
  • nested for loops
  • range()
  • while loops
  • infinite loops
  • if statements inside while loops
  • break
  • raw_input()

dictionaries

  • purpose
  • initialization
  • accessing elements
  • adding elements
  • changing elements
  • keys() and values()

modules

  • purpose
  • builtins
  • imports
  • import random
  • random.randint
  • random.choice

walk through state_capitals.py

Where state_capitals.py from http://mako.cc/teaching/2014/cdsw/state_capitals.py is the grand finale and synthesis of lecture material.