-
Notifications
You must be signed in to change notification settings - Fork 3
Home
- Overview
- Variables & Types
- Conditionals
~ Break ~ (approximately)
- Loops
- Functions
- Psuedocode
- Libraries
Python is a Language that supports many Packages
- NLTK (Natural Language Toolkit) for Text Analysis
- Pandas for Data Analysis and Modeling (DataFrames)
- Numpy for High Level Mathematical Functions
- MatPlotLib for Making Graphs and Charts
How do I know which one to use?
The Internet
Stack Overflow
Read the docs
Others doing similar work
Variables are like a container for holding something
This can be helpful because:
-
sometimes things are long:
- my_file = open('/Users/michellejohnson/Documents/Spanish_English_BYTs.csv', 'r')
-
sometimes you need a place to put something:
- love_den = love_words/all_words
-
sometimes you will just need a variable!
- Open Anaconda (green guitar pick)
- Launch Notebook (will open in browser)
- New (at top right hand side of page)
To run a cell hit:
'Shift' + 'Enter'
#setting my first variable
x = 8
y = 2
x+y
z = x-y
print(z)
Some rules about variables
- NO SPACES
- Must be unique (unless you're overwriting something)
- Cannot be a command Python already uses, or is already used by a package (we'll come back)
a = 3
b = 4
a = b
print('a is', a)
print('b is', b)
- Numbers
- Integers
- Floats
- Strings " " or ' ' (this is so you can use apostrophes or quotes inside a string)
- usually words, always things Python can't "evaluate"
- 'love'
- 'Hello GCDI'
- Lists [ ]
- just like a shopping list
- ['apples', 'bananas', 'kiwi']
- [100, 200, 300]
- Dictionaries { }
- key:value pair
- Keys are always unique - like your house key!
- Values are not always unique...
- Useful for counting instances of things
- Let's say you are counting words:
- {'a':200, 'the': 500, 'at': 200}
List versus Dictionary
- List is ordered, Dictionary is not
- Lists allow look up by an index
- Dictionaries allow look up by a key More to come
We are not covering these here
- Sets
- Tuples(things grouped together, an unchangeable list)
- Arrays (in Python, just use a list
- Texts (special (usually package-specific) type for words)
- DataFrame (specific to Pandas, like a spreadsheet or matrix)
Integers
n = 5
type(n)
int
Floats
m = 5.1
type(m)
float
Strings
str1 = 'Hello'
str2 = 'GCDRI'
print (str1)
print(str1, str2)
str3 = str1 + str2
print(str3)
str4 = str1 + ' ' + str2
print(str4)
Lists
Just like a shopping list
my_list = ['apples', 'spinach', 'tofu']
print(my_list)
my_list.append('rice')
print(my_list)
my_list[1]
Dictionaries
my_dict = {'steak': 2, 'potatoes': 5, 'salad': 6}
print(my_dict)
my_dict.items()
my_dict.keys()
my_dict.values()
my_dict['steak']
my_dict[2]
Why did that break?
Keys are unique
Values are not unique
Can only "call" or add items by their key
my_dict['pie'] = 4
print(my_dict)
aka "If-then statements"
Some style issues: * if item in my_list: * if a == b: * if a > b: * if a >= b:
if students > teachers:
print('Classroom')
if students < teachers:
print('Conference')
if teachers == students:
print('Private School')
students = 60
teachers = 2
Let's check on our original list (my_list should still be an active variable in your program)
print(my_list)
if 'tofu' in my_list:
print('Dinner time!')
else:
print('You forgot my tofu!')
Three pieces of vocabulary for conditionals if _______: elif _________: else:
if 'bagel' in my_list:
print('Too many carbs')
elif 'tomatoe' in my_list:
print('So healthy!')
What happened? Why didn't anything print?
What happens without the 'else' statement?
Challenge Question, this time, we'll play a game with Python. We need another tool: input *input is a way for Python to get information from a user.
win = input('Pick the winning number: ')
guess = input('Player2, guess the number: ')
if win < guess:
print('too high')
elif win == guess:
print('you win!')
else:
print('too low')
#First, let's remember what was in my_list
print(my_list)
for item in my_list:
print("I'm gonna eat", item)
Now let's look at some numbers, we will put them in a new list
there's a better way to do this, look up the function, range, if you regularly use lists of numbers in order
num_list = [1,2,3,4,5]
for digit in num_list:
print(digit)
for digit in num_list:
digit+=1
print(digit)
What does += do
Why did it only print 6??
new_numb = []
for digit in num_list:
new_dig = digit + 3
new_numb.append(new_dig)
print(new_numb)
In regular language, what happened here?
Advanced For-Loops: Dealing with Dictionaries
for item in my_dict:
print("I'm gonna eat", item)
Why didn't it tell us how many of each? What did it return?'
for item in my_dict.items():
print("I'm gonna eat", item)
fav_foods = ['watermelon', 'tofu', 'spinach', 'coffee']
for food in fav_foods:
if food in my_list:
print('Yum', food)
else:
print('No', food, '?')
Now let's try it the other way to really get a sense of what is happening
for food in my_list:
if food in fav_foods:
print('Yum', food)
else:
print('No', food, '?')
Functions are little bits of code that you can use over and over again.
- Python has some
- You can write some yourself
- You can import libraries of them
- You can borrow them from your friends!
Functions are Fun!!
Some vocabulary:
def _______(argument): some things i do what I give back
The argument is what the function will need to do its job. It's usually the little piece of information that your function operates on.
#This function takes one argument and prints a greeting to the screen
#The argument is a string
def greet(name):
print('Hello,', name)
print('How are you?')
greet('Wanda')
greet('Floyd')
Now I want to greet both of them.
greet('Wanda', 'Floyd')
Why did that break?
Let's try again
greet('Wanda and Floyd')
Another Tool!
input() - a way to get information directly from your user
x = input('What is your favorite number? ')
print('My favorite number is', x)
What is your favorite number? 8
My fav number is 8
Let's write a program to tell people how to write a book.
Hint: This program will require using a Function!
Start with pseudocode
Wait! What's pseudocode???
Psuedocode is simplified code.
-
Articulate in words what you need the program to do
-
Identify what you want to give it
-
Identify what you expect to get back
-
Identify the major steps
-
Tackle each major step individually
- Worry about other steps later
- Write out in words every tiny step
- Test to see if the major step worked
- Repeat this step
-
Call your program
I want to write a program that gives people advice about how to write a book. This program gets information from the user and tells them what they should do.
- Inputs: time & ideas
- Consider relationship between time and ideas, decide what advice to give
- Outputs: Advice
ideas = get number of ideas
time = get amount of time
Decide what advice to give:
-
if they have less time than ideas, they should make time.
-
if they have fewer ideas than time, they should get inspired.
-
if the two are equal, they will probably write a book.
#ideas = get number of ideas
all_ideas = input('How many ideas do you have? ')
#time = get amount of time
all_time = input('How much time do you have? ')
def book(ideas, time):
print('How to write a book')
#if they have less time than ideas, they should make time.
if time < ideas:
print('Make time!')
#if they have more ideas than time, they should get inspired.
elif time > ideas:
print('Get inspired')
#if the two are equal, they will probably write a book.
elif time == ideas:
print("Can't wait to read it!")
else:
pass
#run program
book(all_ideas, all_time)
#ideas = get number of ideas
all_ideas = input('How many ideas do you have? ')
#time = get amount of time
all_time = input('How much time do you have? ')
def book(ideas, time):
print('How to write a book')
#if they have less time than ideas, they should make time.
if time < ideas:
print('Make time!')
#if they have more ideas than time, they should get inspired.
elif time > ideas:
print('Get inspired')
#if the two are equal, they will probably write a book.
elif time == ideas:
print("Can't wait to read it!")
else:
pass
#run program
book(all_ideas, all_time)
Now let's look at some built-in functions!
open( ) opens a file
read( ) reads the file
len( ) gets length of an object (i.e., string, list, dictionary, etc.)
Curious about all the built-in functions?
https://docs.python.org/3/library/functions.html
This is essentially what you are doing when you import a library.
Someone else already wrote all these little programs, and you are using them!
Three ways to import libraries:
-
import csv - 'import' is a command, 'csv' is a package
-
from csv import * - this says 'go to nltk and import everything' - save yourself and don't do this
-
from csv import register_dialect
OMG! What's the difference??
Something useful!!
Now let's read in a csv file!
import csv
f = open('/Users/michellejohnson/Desktop/pd_collections.csv', 'r')
my_file = csv.reader(f)
for row in my_file:
print(len(row))
Now you are ready to specialize your programming skills through
- Cleaning Data
- Analyzing Text
- Analyzing Numerical Data
- Making charts and graphs
- So much more!!
Now let's move to the Command Line!!
-
open a Terminal Window
-
Type the following command:
$ python
-
Now you are using Python (to run a line of code, just hit 'Enter' not 'Shift'+'Enter'
-
Let's try it out with this simple program
x = 'I love GCDI'
len(x)