Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
About
People
Publications
Teaching
Resources
Research Blog
Wiki Functions
Recent changes
Help
Licensing
Page
Discussion
Edit
View history
Editing
Community Data Science Course (Spring 2019)/Day 2 Lecture
From CommunityData
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Resources == * [[Python data types cheat sheet]] * [[Python loops cheat sheet]] == Lecture outline == === Review: ways to access python === * python * python file.py === Review Week 1 python material === * math: using python as a calculator **addition, subtraction, multiplication, division **division shows something different: <code>8/2</code> versus <code>2*2</code> * <tt>type()</tt> ** 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 that are strings. * variables ** assignment of variables ** 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 "concatenation" (smushing things together) ** e.g., <code>print("Hello" + name)</code> ** concatenating strings and integers doesn't work (e.g., <code>print(1 + "tommy")</code>) ** 1 is different than "1"; name is different than "name" ** convert "1" to 1 with the <code>int()</code> function ** single quotes versus double quotes (python doesn't care) ** you can also multiply strings! (although it's not clear why you want to) ** '''The type of a variable tells you what you can do with it''' * Booleans ** comparisons (e.g., <code>1 == 1</code> or <code>1 == 0</code>) *** you can compare strings (case sensitive!) *** also >, <, and != ** type() shows that the output of True or False is <code>bool</code> ** e.g., <code>"i" in "team"</code> ** e.g., <code>"i" not in "team"</code> * <tt>if</tt>/<tt>elif</tt>/<tt>else</tt> ('''move to external file''') ** if, something that evaluates to a Boolean, and then colon ** e.g., <code>if "tom" in "tommyguy"</code> ** e.g., adding else example: <code>if brother_age > sister_age</code> ** e.g., temperature 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!) ===Exercise:=== The code below lets a user enter their age, and it prints their age back to the screen. 1) Copy the code to a file and run it. 2) Modify the file to take the user's age and do the following: a) If the age entered is younger than your age, print <code>You are younger than me!</code> b) If the age entered is older than your age, print <code>You are older than me!</code> c) If the age entered is your age, print <code>You are the same age as me!</code> input_age = input("Enter your age in years: ") print("User entered " + input_age) === Lists === * purpose ** Stores things ''in order'' * 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 * accessing elements ** indexing like my_list[0] ** indexing starts from the front and we ''start counting at 0'' ** 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 <code>my_list.append()</code> function ** the <code>.append()</code> function is a special kind of function that lists know about ** compare to <code>print</code> which is a global function. * 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 ** 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 ** we can slice lists ** len() *** <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> ** search "python lists" in any search engine to see many more functions that list knows about. ===Exercise=== Figure out what the list function <code>pop</code> does. Confirm with your neighbor. Write an example to be sure. === loops and more flow control === * <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. <code>for</code> is the workhorse that makes this possible. ** Look and see what name is after we're done looping. ** ''Move to editor.'' * <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) * nested <tt>for</tt> loops * <tt>range()</tt> * <tt>while</tt> loops * infinite loops and how to stop them * <tt>if</tt> statements inside <tt>while</tt> loops * <tt>break</tt>
Summary:
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see
CommunityData:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Tools
What links here
Related changes
Special pages
Page information