Community Data Science Workshops (Fall 2014)/Day 1 lecture: Difference between revisions
Content added Content deleted
imported>Mako |
imported>Mako No edit summary |
||
(20 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{CDSW Moved}} |
|||
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. |
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. |
||
At the beginning of the lecture, we'll give a [[Day 1 pre-lecture|short pre-lecture talk to motivate the sessions]]. |
|||
== Resources == |
== Resources == |
||
Line 50: | Line 54: | ||
* purpose |
* purpose |
||
** Stores things ''in order'' |
|||
* initialization |
* initialization |
||
** making a list called my list: <code>my_list = ["a", "b", "c"]</code> |
|||
** comma separated elements. in python they can be a mix of any kind of types |
|||
** <code>type(my_list)</code> |
|||
* <tt>len()</tt> review |
* <tt>len()</tt> review |
||
* accessing elements |
* accessing elements |
||
** indexing like my_list[0] |
|||
** indexing starts from the front and we ''start counting at 0'' (now you understand all the zeros we've been using |
|||
** we go from the end with negative numbers |
|||
** what happens if we try to move outside of the range? ('''error!'') |
|||
* adding elements |
* adding elements |
||
** using the the <code>my_list.append()</code> function |
|||
** the <code>.append()</code> function is a special kind of function that lists know about |
|||
* changing elements |
* changing elements |
||
** replacing elements like <code>my_list[0] = "foo"</code> |
|||
* finding elements in list |
|||
** e.g., <code>"z" in my_list</code> |
|||
* slicing lists |
* slicing lists |
||
** the colon inside the [] is the ''slicing syntax'' |
|||
** e.g., <code>my_list[0:2]</code> is 0th up to, but not including, the 2nd |
|||
** e.g., <code>my_list[2:]</code> |
|||
** e.g., <code>my_list[:2]</code> |
|||
** e.g., <code>my_list[:]</code> |
|||
* strings are like lists |
* strings are like lists |
||
** we can slice lists |
|||
** len() |
** len() |
||
*** <code>len("")</code> length of the empty string |
*** <code>len("")</code> length of the empty string |
||
* many other interesting functions for lists |
|||
** e.g., <code>min()</code> and <code>max()</code> |
|||
** e.g., create a list of names and sort it <code>names.sort()</code> |
|||
=== loops and more flow control === |
=== loops and more flow control === |
||
* <tt>for</tt> loops |
* <tt>for</tt> loops |
||
** e.g., <code>for name in names: print name</code> |
|||
** e.g., <code>for name in names: print 'hello ' + name</code> |
|||
** Super powerful because it can do something many many times. Data science is about doing tedious things very quickly. For is the workhorse that makes this possible. |
|||
** Look and see name is after we're done looping. |
|||
** ''Move to editor.'' |
|||
* <tt>if</tt> statements inside <tt>for</tt> loops |
* <tt>if</tt> statements inside <tt>for</tt> loops |
||
** e.g., <code>if name[0] in "AEIOU"</code> then print "starts with a vowel" |
|||
** show we can test things outside the loop to show how the comparisons are working |
|||
** add an else statement to capture words that start with a consonant |
|||
** append to a list within a for loop |
|||
** create a counter within a for loop (keep track) |
|||
** build up a sentence |
|||
* nested <tt>for</tt> loops |
* nested <tt>for</tt> loops |
||
* <tt>range()</tt> |
* <tt>range()</tt> |
Latest revision as of 21:59, 15 March 2015
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.
At the beginning of the lecture, we'll give a short pre-lecture talk to motivate the sessions.
Resources
- Python data types cheat sheet
- Python loops cheat sheet
- state_capitals.py -- the state capitals example.
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
or1 == 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"
- comparisons (e.g.,
- 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
- Stores things in order
- initialization
- making a list called my list:
my_list = ["a", "b", "c"]
- comma separated elements. in python they can be a mix of any kind of types
type(my_list)
- making a list called my list:
- len() review
- accessing elements
- indexing like my_list[0]
- indexing starts from the front and we start counting at 0 (now you understand all the zeros we've been using
- we go from the end with negative numbers
- what happens if we try to move outside of the range? ('error!)
- adding elements
- using the the
my_list.append()
function - the
.append()
function is a special kind of function that lists know about
- using the the
- changing elements
- replacing elements like
my_list[0] = "foo"
- replacing elements like
- finding elements in list
- e.g.,
"z" in my_list
- e.g.,
- slicing lists
- the colon inside the [] is the slicing syntax
- e.g.,
my_list[0:2]
is 0th up to, but not including, the 2nd - e.g.,
my_list[2:]
- e.g.,
my_list[:2]
- e.g.,
my_list[:]
- strings are like lists
- we can slice lists
- len()
len("")
length of the empty string
- many other interesting functions for lists
- e.g.,
min()
andmax()
- e.g., create a list of names and sort it
names.sort()
- e.g.,
loops and more flow control
- for loops
- e.g.,
for name in names: print name
- e.g.,
for name in names: print 'hello ' + name
- Super powerful because it can do something many many times. Data science is about doing tedious things very quickly. For is the workhorse that makes this possible.
- Look and see name is after we're done looping.
- Move to editor.
- e.g.,
- if statements inside for loops
- e.g.,
if name[0] in "AEIOU"
then print "starts with a vowel" - show we can test things outside the loop to show how the comparisons are working
- add an else statement to capture words that start with a consonant
- append to a list within a for loop
- create a counter within a for loop (keep track)
- build up a sentence
- e.g.,
- 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.