138
Based on Spring 2019 Midtem Review Slides by Bahm Capoor

Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Based on Spring 2019 Midte m Review Slides by B ahm Capoor

Page 2: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Page 4: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 5: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 6: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 8: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Sections iith a * have practice p oblems

Page 9: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 10: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

walls

beepe sst eets(rois)

avelues(columns)

corners(inte sections)

Page 11: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

move()

turn_left()

put_beeper()

pick_beeper()

Page 12: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

front_is_clear()

left_is_clear()

right_is_clear()

on_beeper()

facing_north()

facing_south()

facing_east()

facing_west()

Page 13: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●○○

Page 14: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●○○

Page 15: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●○

Page 16: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Page 17: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Page 18: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 19: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5

Page 20: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5

Page 21: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5

variable’s name

Page 22: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5

variable’svalue

Page 23: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5num_picked = 2

Page 24: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5num_picked = 2num_flowers = num_flowers – num_picked

Page 25: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5 num_picked = 2 num_flowers = num_flowers – num_picked

The right side of the equals sign always gets evaluated first.

Page 26: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5 num_picked = 2 num_flowers = num_flowers – num_picked

We get the values using va iable etrieval (i.e. checkilg what suitcase is attached).

5 2

3

Page 27: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_flowers = 5 num_picked = 2 num_flowers =

This is a nei Python object!

3

Page 28: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●=

Page 29: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●○

Page 30: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Literals are Python objectswrittel directly in code, e.g. the 5 in num_flowers = 5

Page 31: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

()

*, /, //, %

+, -

This is your “orde of operations” for Python!

Page 32: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

()

*, /, //, %

+, -

<, <=, >, >=, ==, !=

Page 33: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

not and or

● not and or○ not boolean_expression

○ boolean_expression_a and boolean_expression_b

○ boolean_expression_a or boolean_expression_b

Page 34: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

if front_is_clear():# do some cool stuff

Page 35: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

if front_is_clear():# do some cool stuff

if statements require a condition

Page 36: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

if front_is_clear():# do some cool stuff

conditions evaluate to True or False

Page 37: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

if front_is_clear():# do some cool stuff

An if statement will only execute if the condition

evaluates to True

Page 38: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

if front_is_clear():# do some cool stuff

If the condition is True, the code inside the if statement will

happen exactly once

Page 39: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

if front_is_clear():# do some cool stuff

# do some more cool things

Once the code inside the if statement has completed, the program moves on, even if the

condition is still True

Page 40: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

while front_is_clear():# do some cool stuff

Page 41: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

while front_is_clear():# do some cool stuff

while loops also require a condition, which

behaves in exactly the same way

Page 42: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

while front_is_clear():# do some cool stuff

The difference is that the while loop repeats so long as the condition is

True

Page 43: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

while front_is_clear():# do some cool stuff

# do something different

We only move on when the condition evaluates

to False

Page 44: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

while front_is_clear():# do some cool stuff

# do something different

But remember – you only re-evaluate the condition

after all of the lines inside the loop finish

Page 45: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for i in range(42):# do some cool stuff

Page 46: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for i in range(42):# do some cool stuff

A for loop goes through each of the elements of

some collection of things

Page 47: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for i in range(42):# do some cool stuff

The range function gives us an ordered collection of all the

non-negative integers below a particular number

Page 48: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for i in range(42):# do some cool stuff

“Go through all the numbers until 42, one by one”

Page 49: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for pixel in image:# do some cool stuff

“Go through all the pixels in image, one by one”

Page 50: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for pixel in image:# do some cool stuff

# more cool code here

The for loop ends when we’ve gone through all the things in the

collection

Page 51: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for i in range(3):move()

while front_is_clear():move()

Use fo loops if you klow hoi many times you iant to repeat somethilg!

Use ihile loops if you dol’t know how maly times you iant to repeat!

Page 52: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

range(10, 42) -

range(10, 42, 2) - going up by 2 each time

Collections you can for-each loop over: strings, images, lists, files, and dictionaries

Page 53: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 54: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

function(input)

parameters/arguments

retu n value

Page 55: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def main():mid = average(10.6, 7.2)print(mid)

def average(a, b):sum = a + breturn sum / 2

caller(calling function)

callee(called function)

Page 56: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def main():mid = average(10.6, 7.2)print(mid)

def average(a, b):sum = a + breturn sum / 2

parameters

retu n value

arguments

Page 57: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 58: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def caller():x = 42callee(x)print(x) # this still prints 42

def callee(x):x = x + 10 # we’re only changing callee’s

# version of x

Page 59: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 60: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Don’t skim!!

Page 61: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●return print()

● return

○ print()

● print()

Page 62: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 63: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Page 64: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

s = ‘We demand rigidly defined areas of doubt and uncertainty!’

eighth_char = s[7] # ‘n’

string_part = s[10:20] # ‘rigidly de’

Page 65: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

>>> s = ‘So long, and thanks for all the fish’>>> len(s)36>>> s.find(‘,’) # returns the first index of the character7>>> s.find(‘z’)-1 # returns -1 if character isn’t present>>> s.find(‘n’, 6) # start searching from index 610 >>> s.lower() # islower() exists, returns true if all lower‘so long, and thanks for all the fish’ # returns a string>>> s.upper() # isupper() exists, returns true if all upper‘SO LONG, AND THANKS FOR ALL THE FISH’

Page 66: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

● string int

●str() int() float()

Page 67: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●for i in range(len(s)):

current_char = s[i]# Use current_char

new_string = ‘’for i in range(len(s)):

if __________:new_string += s[i]

Select only certain cha acte s - think

of this as a filte !

Page 68: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

remove_doubled_letters

def remove_doubled_letters(s)

remove_doubled_letters(‘tresidder’)

‘tresider’

remove_doubled_letters(‘bookkeeper’)

‘bokeper’.

Page 69: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 70: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 71: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 72: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 73: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 74: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 75: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def removed_doubled_letters(s):result = ‘’for i in range(len(s)):

ch = s[i]if i == 0 or ch != s[i - 1]:

result += chreturn result

Page 76: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def removed_doubled_letters(s):result = ‘’for i in range(len(s)):

ch = s[i]if i == 0 or ch != s[i - 1]:

result += chreturn result

Page 77: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def removed_doubled_letters(s):result = ‘’for i in range(len(s)):

ch = s[i]if ch != s[i - 1]:

result += chreturn result

Page 78: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def removed_doubled_letters(s):result = ‘’for i in range(len(s)):

ch = s[i]if i == 0 or ch != s[i - 1]:

result += chreturn result

Page 79: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 80: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

input()

●print()

● input()

Page 81: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

● input(prompt)○

string

● print()○

int/float

● while

Page 82: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 83: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●○○

(0,0) x

y

Page 84: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Image courtesy of Nick Parlante

Page 85: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

img = SimpleImage(‘buddy.png’)

Image credits to B ahm Capoor

Page 86: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

img = SimpleImage(‘buddy.png’)

height = img.height # 10

width = image.width # 6

Image credits to B ahm Capoor

Page 87: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

img = SimpleImage(‘buddy.png’)

height = img.height # 10

width = image.width # 6

pixel = img.get_pixel(2, 4)

Image credits to B ahm Capoor

Page 88: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

pixel = img.get_pixel(42, 100)

red = pixel.red

green = pixel.green

blue = pixel.blue

Page 89: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

for pixel in image:# we don’t have access to the coordinates of pixel

for y in range(image.height):for x in range(image.width):

pixel = image.get_pixel(x, y)# now we do have access to the coordinates of pixel

Page 90: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

●○ pixel.x pixel.y○ pixel.red pixel.green pixel.blue

●○ image.width○ image.height

Page 91: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image)

SimpleImage

Page 92: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Solving problems is about strategic procrastination: what’s easy that we can

do quickly?

Page 93: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Page 94: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Page 95: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Page 96: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Page 97: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Invert it, just like the problem suggests!

Page 98: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def make_negative(image):for pixel in image:

pixel.red = 255 - pixel.redpixel.green = 255 - pixel.greenpixel.blue = 255 - pixel.blue

return image

Page 99: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def transform(image)

SimpleImage

Page 100: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

out_image = SimpleImage.blank(image.width, image.height)for out_y in range(out_image.height):

for out_x in range(out_image.width):out_pixel = out_image.get_pixel(out_x, out_y)in_pixel =in_image.get_pixel(<calculate coordinates here>)out_pixel.red = # some value, possibly based on in_pixelout_pixel.green = # some value, possibly based on in_pixelout_pixel.blue = # some value, possibly based on in_pixel

Page 101: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Image credits to B ahm Capoor

Page 102: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def transform(image):out_image = SimpleImage.blank(image.width, image.height)for out_y in range(out_image.height):

for out_x in range(out_image.width):out_pixel = out_image.get_pixel(out_x, out_y)upside_down_y = image.height - 1 - out_y # see next slidein_pixel = image.get_pixel(out_x, upside_down_y)sum_color = in_pixel.red + in_pixel.green + in_pixel.blueaverage_color = sum_color // 3if in_pixel.red > 2 * average_color:

out_pixel.red = average_colorout_pixel.green = average_colorout_pixel.blue = average_color

else:out_pixel.red = in_pixel.redout_pixel.green = in_pixel.greenout_pixel.blue = in_pixel.blue

return out_image

Page 103: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Image credits to B ahm Capoor

Page 104: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 105: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

num_list = [4, 2, 1, 3]str_list = [‘ax’, ‘bc’]

>>> len(num_list)4>>> str_list[1]‘bc’>>> num_list[1 : 3][2, 1]

Page 106: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

lst = []

append

for i in range(5):lst.append(i)

# lst now is [0, 1, 2, 3, 4]

extend

second_lst = [8, 9, 10]lst.extend(second_list) # lst is now [0, 1, 2, 3, 4, 8, 9, 10]

Page 107: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

nums = [0, 9, 4, 5]nums = sorted(nums)

print(nums) # prints [0, 9, 4, 5]

>>> 3 in numsFalse

Page 108: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

filter_starts_with_vowel

def filter_starts_with_vowel(s)

s

>>> filter_starts_with_vowel(‘I enjoy eating my favorite snack: Oreos’)

[‘I’, ‘enjoy’, ‘eating’, ‘Oreos’]

Page 109: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def filter_starts_with_vowel(s):words = s.split()vowel_start = []for word in words:

first_letter = word[0].lower()if first_letter in ‘aeiou’:

vowel_start.append(word)return vowel_start

for return

Page 110: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def filter_starts_with_vowel(s):words = s.split()vowel_start = []for word in words:

first_letter = word[0].lower()if first_letter in ‘aeiou’:

vowel_start.append(word)return vowel_start

Page 111: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def filter_starts_with_vowel(s):words = s.split()vowel_start = []for word in words:

first_letter = word[0].lower()if first_letter in ‘aeiou’:

vowel_start.append(word)return vowel_start

Page 112: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def filter_starts_with_vowel(s):words = s.split()vowel_start = []for word in words:

first_letter = word[0].lower()if first_letter in ‘aeiou’:

vowel_start.append(word)return vowel_start

Page 113: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 114: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def print_out_file(filename):with open(filename, ‘r’) as f:

for line in f:print(line, end=‘’)

Page 115: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def print_out_file(filename):with open(filename, ‘r’) as f:

for line in f:print(line, end=‘’)

f

Page 116: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def print_out_file(filename):with open(filename, ‘r’) as f:

for line in f:print(line, end=‘’)

Page 117: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def print_out_file(filename):with open(filename, ‘r’) as f:

for line in f:print(line, end=‘’)

Roses are red,\nViolets are blue,\nPoetry is hard,\nSo I give up.\n

Page 118: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

dol’t io ry about it

def process_file(filename):with open(filename, ‘r’) as f:

for line in f:# process the line

Page 119: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

dol’t io ry about it

def process_file(filename):with open(filename, ‘r’) as f:

for line in f:# process the line

Page 120: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 121: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Page 122: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

● isalpha(), isdigit(), isspace()

● startswith(), endswith()

● strip(), split()

● find()

● in

Page 123: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

extract_quote

def extract_quote(s)

s

Page 124: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 125: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def extract_quote(s):first_quote_index = s.find(‘“’)if first_quote_index == -1:

return ‘’

second_quote_index = s.find(‘“’, first_quote_index + 1)quote = s[first_quote_index + 1 : second_quote_index]

return quote

Page 126: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 127: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

>>> d = {} # make an empty dictionary>>> d[‘sonja’] = 42 # associate the key ‘sonja’ with value 42>>> d[‘nick’] = 5 # associate the key ‘nick’ with value 5>>> d[‘nick’] = 8 # change the value for ‘nick’ to be 8 # since keys need to be unique>>> d[‘sonja’] # get the value associated with ‘sonja’ 42>>> ‘python’ in d # check whether a key is in the mapFalse

Page 128: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 129: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

Page 130: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

Page 131: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

Page 132: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

If we haven’t seen this particular thing before, we need to make sure that it’s a key in the map, so we stick it in there

and associate it with a 0.

Page 133: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

Page 134: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

Page 135: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

def count_the_things(things_to_count):counts = {}

for thing in things_to_count:if thing not in counts:

counts[thing] = 0counts[thing] += 1

for thing in sorted(counts.keys()):print(thing, counts[thing])

Page 136: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 137: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result
Page 138: Based on Spring 2019 Midte m Review Slides by B ahm Capoor€¦ · def removed_doubled_letters(s): result = ‘’ for i in range(len(s)): ch = s[i] if i == 0 or ch != s[i - 1]: result

Good Luck!