Class 31 — Wednesday, April 6

Functionization

Social distancing — Does not mean we cannot share — Love, hopes, and friendship


Look both ways


Agenda



Post class


  • An algorithm is a series of steps that will be performed exactly according to a set of rules.

def screw( direction ) :

finding_screwdriver = True
while ( finding_screwdriver ) :
    try the next bit
    if ( the bit fits ) :
        finding_screwdriver = False
if ( direction = “left” ) :
    while ( screw still moves )
        continue rotating to the left until screw is out
else :
    while ( screw still moves )
        continue rotating to the right until screw is fully tightened



modules as toolkits



Module quad.py


Suppose the following definitions are in effect below

test1 = ['AbCdE', 'ABCDE', '!"#\'x$&)|}~', '- x -_', 'AAcc', ' ', 'x\n']

test2 = ['\tx X']

test3 = []

test4 = ['a', 'B', 'r', 'A', 'c', 'a', 'D', 'a', 'B', 'r', 'a']



Function to_lower( strings )

to_lower( test1 ) = ['abcde', 'abcde', '!"#\'x$&)|}~', '- x -_', 'aacc', ' ', 'x\n']

to_lower( test2 ) = ['\tx x']

to_lower( test3 ) = []

to_lower( test4 ) = ['a', 'b', 'r', 'a', 'c', 'a', 'd', 'a', 'b', 'r', 'a']


Function cleanup( strings )

PUNCTUATION = '''!"#$%&'()*+,-./:;<=>?@[]^_`{|}~'''

WHITE_SPACE = ' \t\n\r\v\f'

EXTRANEOUS = PUNCTUATION + WHITE_SPACE

cleanup( test1 ) = ['AbCdE', 'ABCDE', 'x', 'x', 'AAcc', '', 'x']

cleanup( test2 ) = ['x X']

cleanup( test3 ) = []

cleanup( test4 ) = ['a', 'B', 'r', 'A', 'c', 'a', 'D', 'a', 'B', 'r', 'a']


Function unique( strings )

unique( test1 ) = ['AbCdE', 'ABCDE', '!"#\'x$&)|}~', '- x -_', 'AAcc', ' ', 'x\n']

unique( test2 ) = ['\tx X']

unique( test3 ) = []

unique( test4 ) = ['a', 'B', 'r', 'A', 'c', 'D']


Function canonical( strings )

canonical( test1 ) = ['abcde', 'x', 'aacc', '']

canonical( test2 ) = ['x x']

canonical( test3 ) = []

canonical( test4 ) = ['a', 'b', 'r', 'c', 'd']




Module quad.py musings

Create a new empty list

For each string in strings do

— Get a converted version of the string

— Add conversion to the new list

Hand back completed new list

Create a new empty list

For each string in strings do

— Test whether string needs to be added the new list. If so, add string to new list

Hand back completed new list

Because both cleanup() and to_lower() have the potential to return duplicates, unique() needs to be the third function. It is up you to determine whether one of the other two needs to be first.



Maria Saal Dom Grabbaurelief Reisewagen in die Unterwelt

 


  🦆 © 2022 Jim Cohoon   Resources from previous semesters are available.