Skip to content
Snippets Groups Projects
Commit 710e9485 authored by Cole Nelson's avatar Cole Nelson
Browse files

cole lec

parent 590967f7
No related branches found
Tags uw-spring-security-1.2.0
No related merge requests found
**/.ipynb_checkpoints/**
\ No newline at end of file
**/.ipynb_checkpoints/**
**/__pycache__/**
\ No newline at end of file
%% Cell type:code id: tags:
``` python
# Warmup 1: Jupyter Notebook stuck in [*]?
# Press the stop button! It's probably waiting for input.
# Otherwise, restart the kernal! (and run the cells)
x = int(input("Type in a number: "))
print("The number is " + str(x), x + 1, x + 2, x + 3, x + 4, sep=" then ", end="!\n")
```
%% Output
Type in a number: 3
The number is 3 then 4 then 5 then 6 then 7!
%% Cell type:code id: tags:
``` python
# Warmup 2: Write a function that prints the factorial of parameter num
def do_factorial(num):
i = 1
factorial = 1
while i <= num:
factorial = factorial * i
i += 1
return factorial
do_factorial(5)
```
%% Output
120
%% Cell type:code id: tags:
``` python
# Warmup 3: Complete the code to print a treasure map where an X is placed
# treasure_row, treasure_col (starting from 0)
def print_treasure_map(symbol='-', height=4, width=4, treasure_row=2, treasure_col=2):
i = 0
while i < height:
j = 0
while j < width:
if i == treasure_row and j == treasure_col:
print('X', end="")
else:
print(symbol, end="")
j += 1
print()
i += 1
print_treasure_map()
#print_treasure_map(width=10, height=10)
#print_treasure_map('#', 7, 4, treasure_row=0, treasure_col=1)
#print_treasure_map('.', 5, 8, 3, 6)
```
%% Output
----
----
--X-
----
%% Cell type:markdown id: tags:
# CS220: Lecture 12
## Learning Objectives
After this lecture you will be able to...
- Iterate through a dataset using for idx in range(project.count())
- Compute the frequency of data that meets a certain criteria
- Find the maximum or minimum value of a numeric column in a dataset
- Use break and continue in for loops when processing a dataset
- Handle missing numeric values when computing a maximum/minimum
- Use the index of a maximum or minimum to access other information about that data item
%% Cell type:code id: tags:
``` python
import project
```
%% Cell type:code id: tags:
``` python
help(project)
```
%% Output
Help on module project:
NAME
project
FUNCTIONS
__init__()
count()
This function will return the number of records in the dataset
get_age(idx)
get_age(idx) returns the age of the student in row idx
get_cats_or_dogs(idx)
get_cats_or_dogs(idx) returns whether student in row idx likes cats or dogs
get_lecture(idx)
get_lecture(idx) returns the lecture of the student in row idx
get_other_majors(idx)
get_other_majors(idx) returns the secondary major of the student in row idx
get_pizza_topping(idx)
get_pizza_topping(idx) returns the preferred pizza toppings of the student in row idx
get_primary_major(idx)
get_primary_major(idx) returns the primary major of the student in row idx
get_procrastinator(idx)
get_procrastinator(idx) returns whether student in row idx is a procrastinator
get_runner(idx)
get_runner(idx) returns whether student in row idx is a runner
get_section(idx)
get_lecture(idx) returns the section of the student in row idx
get_sleep_habit(idx)
get_sleep_habit(idx) returns the sleep habit of the student in row idx
get_song(idx)
get_procrastinator(idx) returns the student in row idx favorite song
get_zip_code(idx)
get_zip_code(idx) returns the residential zip code of the student in row idx
DATA
__student__ = [{'Age': '19', 'Cats or dogs': 'cat', 'Latitude': '44.25...
FILE
c:\users\ctnelson1997\desktop\cs220\cs220-lecture-material\f23\cole_lecture_notes\12_iteration_practice\project.py
%% Cell type:code id: tags:
``` python
# Get the total # of responses
project.count()
```
%% Output
1019
%% Cell type:code id: tags:
``` python
# Get the first student's primary major.
# With indices, we always start from 0!
project.get_primary_major(0)
```
%% Output
'Other (please provide details below).'
%% Cell type:code id: tags:
``` python
# Example 1: Print and Break
for i in range(project.count()):
print (i, project.get_primary_major(i))
if i == 10:
break
```
%% Output
0 Other (please provide details below).
1 Engineering: Biomedical
2 Computer Science
3 Engineering: Other
4 Data Science
5 Engineering: Biomedical
6 Mathematics/AMEP
7 Engineering: Mechanical
8 Other (please provide details below).
9 Other (please provide details below).
10 Business: Information Systems
%% Cell type:code id: tags:
``` python
# TODO: Write the same code as above using a while loop!
i = 0
while i <= 10:
print(i, project.get_primary_major(i))
i += 1
```
%% Output
0 Other (please provide details below).
1 Engineering: Biomedical
2 Computer Science
3 Engineering: Other
4 Data Science
5 Engineering: Biomedical
6 Mathematics/AMEP
7 Engineering: Mechanical
8 Other (please provide details below).
9 Other (please provide details below).
10 Business: Information Systems
%% Cell type:code id: tags:
``` python
# Example 2: How many students are not in Computer Science?
non_cs = 0
for i in range(project.count()):
major = project.get_primary_major(i)
if major == "Computer Science":
continue
non_cs += 1
print(non_cs, "out of", project.count(), "are non-cs!")
```
%% Output
942 out of 1019 are non-cs!
%% Cell type:code id: tags:
``` python
# TODO: How many students are in Data Science or Statistics?
# BONUS: Can you express this as a percentage?
# BONUS+: ...rounded to 2 decimal places?
num_stats_or_ds = 0
for i in range(project.count()):
major = project.get_primary_major(i)
if major == "Data Science" or major == "Statistics":
num_stats_or_ds += 1
print(num_stats_or_ds)
percent_dsstats = (num_stats_or_ds / project.count()) * 100
print(round(percent_dsstats, 2))
```
%% Output
200
19.63
%% Cell type:code id: tags:
``` python
help(project)
```
%% Output
Help on module project:
NAME
project
FUNCTIONS
__init__()
count()
This function will return the number of records in the dataset
get_age(idx)
get_age(idx) returns the age of the student in row idx
get_cats_or_dogs(idx)
get_cats_or_dogs(idx) returns whether student in row idx likes cats or dogs
get_lecture(idx)
get_lecture(idx) returns the lecture of the student in row idx
get_other_majors(idx)
get_other_majors(idx) returns the secondary major of the student in row idx
get_pizza_topping(idx)
get_pizza_topping(idx) returns the preferred pizza toppings of the student in row idx
get_primary_major(idx)
get_primary_major(idx) returns the primary major of the student in row idx
get_procrastinator(idx)
get_procrastinator(idx) returns whether student in row idx is a procrastinator
get_runner(idx)
get_runner(idx) returns whether student in row idx is a runner
get_section(idx)
get_lecture(idx) returns the section of the student in row idx
get_sleep_habit(idx)
get_sleep_habit(idx) returns the sleep habit of the student in row idx
get_song(idx)
get_procrastinator(idx) returns the student in row idx favorite song
get_zip_code(idx)
get_zip_code(idx) returns the residential zip code of the student in row idx
DATA
__student__ = [{'Age': '19', 'Cats or dogs': 'cat', 'Latitude': '44.25...
FILE
c:\users\ctnelson1997\desktop\cs220\cs220-lecture-material\f23\cole_lecture_notes\12_iteration_practice\project.py
%% Cell type:code id: tags:
``` python
# max = 0 # don't use built-in function names as variables
# DATA FIX: In the CSV file, change the student's age from "Senior" to 22.
max_age = 0
for i in range(project.count()):
student_age = project.get_age(i)
if student_age == '':
continue
student_age = int(student_age)
if student_age > max_age:
max_age = student_age
print("The oldest student is", max_age)
# HINT: Did everyone fill out an age?
# HINT: We may have to change the data and run project.reload()
```
%% Output
The oldest student is 40
%% Cell type:code id: tags:
``` python
# TODO: What is the age of the youngest student?
# max = 0 # don't use built-in function names as variables
min_age = int(project.get_age(0))
for i in range(project.count()):
student_age = project.get_age(i)
if student_age == '':
continue
student_age = int(student_age)
if student_age < min_age:
min_age = student_age
print("The youngest student is", min_age)
```
%% Output
The youngest student is 17
%% Cell type:code id: tags:
``` python
# Example 5: How many early birds are there below the age of 21?
early_birds = 0
total_students = 0
for i in range(project.count()):
sleep_habit = project.get_sleep_habit(i)
age = project.get_age(i)
if age != "":
age = int(age)
if age < 21 : # TODO Complete this condition!
total_students += 1
if sleep_habit == "early bird":
early_birds += 1
print("There are", early_birds, "early birds below the age of 21.")
print("There are", total_students, "total students below the age of 21.")
```
%% Output
There are 190 early birds below the age of 21.
There are 791 total students below the age of 21.
%% Cell type:code id: tags:
``` python
# TODO: What percentage of 20-year-olds are early birds?
# BOUNUS: How can we generalize our code to 'What percentage of x-year-olds are early birds?'
# Example 5: How many early birds are there below the age of 21?
def print_early_birds(target_age):
early_birds = 0
total_students = 0
for i in range(project.count()):
sleep_habit = project.get_sleep_habit(i)
age = project.get_age(i)
if age != "":
age = int(age)
if age == target_age:
total_students += 1
if sleep_habit == "early bird":
early_birds += 1
print("There are", early_birds, "early birds that are 20.")
print("There are", total_students, "total students that are 20.")
per_early = round((early_birds / total_students) * 100, 2)
print(str(per_early) + "% of " + str(target_age) + " year olds are early birds")
print_early_birds(20)
```
%% Output
There are 47 early birds that are 20.
There are 165 total students that are 20.
28.48% of 20 year olds are early birds
%% Cell type:code id: tags:
``` python
# Other tasks for you to try...
# - What is the average age of the class?
# - What is the class's favorite pizza topping?
# - What is the most popular major?
# - For all students that have another major, print out what it is.
# - What zip code do the majority of pineapple-eating night owls live in?
```
%% Cell type:code id: tags:
``` python
# Warmup 1: Jupyter Notebook stuck in [*]?
# Press the stop button! It's probably waiting for input.
# Otherwise, restart the kernal! (and run the cells)
x = int(input("Type in a number: "))
print("The number is " + str(x), x + 1, x + 2, x + 3, x + 4, sep=" then ", end="!\n")
```
%% Cell type:code id: tags:
``` python
# Warmup 2: Write a function that prints the factorial of parameter num
def do_factorial(num):
pass
```
%% Cell type:code id: tags:
``` python
# Warmup 3: Complete the code to print a treasure map where an X is placed
# treasure_row, treasure_col (starting from 0)
def print_treasure_map(symbol='-', height=4, width=4, treasure_row=2, treasure_col=2):
i = 0
while ???: # TODO: Complete the loop condition for printing out each row.
j = 0
while j < width:
if ???: # TODO: Complete the if condition for checking if we print an X or the symbol.
print('X', end="")
else:
print(symbol, end="")
j += ??? # TODO: Complete the statement so we do not run into an infinite loop.
print()
i += 1
print_treasure_map()
print_treasure_map(width=10, height=10)
print_treasure_map('#', 7, 4, treasure_row=0, treasure_col=1)
print_treasure_map('.', 5, 8, 3, 6)
```
%% Cell type:markdown id: tags:
# CS220: Lecture 12
## Learning Objectives
After this lecture you will be able to...
- Iterate through a dataset using for idx in range(project.count())
- Compute the frequency of data that meets a certain criteria
- Find the maximum or minimum value of a numeric column in a dataset
- Use break and continue in for loops when processing a dataset
- Handle missing numeric values when computing a maximum/minimum
- Use the index of a maximum or minimum to access other information about that data item
%% Cell type:code id: tags:
``` python
import project
```
%% Cell type:code id: tags:
``` python
help(project)
```
%% Cell type:code id: tags:
``` python
# Get the total # of responses
project.count()
```
%% Cell type:code id: tags:
``` python
# Get the first student's primary major.
# With indices, we always start from 0!
project.get_primary_major(0)
```
%% Cell type:code id: tags:
``` python
# Example 1: Print and Break
for i in range(project.count()):
print (i, project.get_primary_major(i))
if i == 10:
break
```
%% Cell type:code id: tags:
``` python
# TODO: Write the same code as above using a while loop!
```
%% Cell type:code id: tags:
``` python
# Example 2: How many students are not in Computer Science?
non_cs = 0
for i in range(project.count()):
major = project.get_primary_major(i)
if major == "Computer Science":
continue
non_cs += 1
print(non_cs, "out of", project.count(), "are non-cs!")
```
%% Cell type:code id: tags:
``` python
# TODO: How many students are in Data Science or Statistics?
# BONUS: Can you express this as a percentage?
# BONUS+: ...rounded to 2 decimal places?
```
%% Cell type:code id: tags:
``` python
# max = 0 # don't use built-in function names as variables
max_age = 0
for i in range(project.count()):
student_age = project.get_age(i)
if student_age > max_age:
max_age = student_age
print("The oldest student is", max_age)
# HINT: Did everyone fill out an age?
```
%% Cell type:code id: tags:
``` python
# TODO: What is the age of the youngest student?
```
%% Cell type:code id: tags:
``` python
# Example 5: How many early birds are there below the age of 21?
early_birds = 0
for i in range(project.count()):
sleep_habit = project.get_sleep_habit(i)
age = project.get_age(i)
if age != "":
age = int(age)
if ???: # TODO Complete this condition!
early_birds += 1
print("There are", early_birds, "early birds below the age of 21.")
```
%% Cell type:code id: tags:
``` python
# TODO: What percentage of 20-year-olds are early birds?
# BOUNUS: How can we generalize our code to 'What percentage of x-year-olds are early birds?'
```
%% Cell type:code id: tags:
``` python
# Other tasks for you to try...
# - What is the average age of the class?
# - What is the class's favorite pizza topping?
# - What is the most popular major?
# - For all students that have another major, print out what it is.
# - What zip code do the majority of pineapple-eating night owls live in?
```
This diff is collapsed.
__student__ = []
def __init__():
import csv
"""This function will read in the csv_file and store it in a list of dictionaries"""
__student__.clear()
with open('cs220_survey_data.csv', mode='r', encoding='utf-8') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
__student__.append(row)
def count():
"""This function will return the number of records in the dataset"""
return len(__student__)
def get_lecture(idx):
"""get_lecture(idx) returns the lecture of the student in row idx"""
return __student__[int(idx)]['Lecture']
def get_section(idx):
"""get_lecture(idx) returns the section of the student in row idx"""
return __student__[int(idx)]['section']
def get_age(idx):
"""get_age(idx) returns the age of the student in row idx"""
return __student__[int(idx)]['Age']
def get_primary_major(idx):
"""get_primary_major(idx) returns the primary major of the student in row idx"""
return __student__[int(idx)]['Primary major']
def get_other_majors(idx):
"""get_other_majors(idx) returns the secondary major of the student in row idx"""
return __student__[int(idx)]['Other majors']
def get_zip_code(idx):
"""get_zip_code(idx) returns the residential zip code of the student in row idx"""
return __student__[int(idx)]['Zip Code']
def get_pizza_topping(idx):
"""get_pizza_topping(idx) returns the preferred pizza toppings of the student in row idx"""
return __student__[int(idx)]['Pizza topping']
def get_cats_or_dogs(idx):
"""get_cats_or_dogs(idx) returns whether student in row idx likes cats or dogs"""
return __student__[int(idx)]['Cats or dogs']
def get_runner(idx):
"""get_runner(idx) returns whether student in row idx is a runner"""
return __student__[int(idx)]['Runner']
def get_sleep_habit(idx):
"""get_sleep_habit(idx) returns the sleep habit of the student in row idx"""
return __student__[int(idx)]['Sleep habit']
def get_procrastinator(idx):
"""get_procrastinator(idx) returns whether student in row idx is a procrastinator"""
return __student__[int(idx)]['Procrastinator']
def get_song(idx):
"""get_procrastinator(idx) returns the student in row idx favorite song"""
return __student__[int(idx)]['Song']
__init__()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment