""" Grade Sheet Example for Dictionaries Author: Walker M. White (wmw2) Date: September 20, 2017 (Python 3 Version) """ # Global variable store the grade sheet GRADES = {'js1':80,'js2':92,'wmw2':50,'aa1':95} def max_grade(grades): """ Returns: maximum grade in the grade dictionary Precondition: grades has netids as keys, ints as values """ maximum = 0 for v in grades.values(): if v > maximum: maximum = v return maximum def netids_above_cutoff1(grades,cutoff): """ Returns: list of netids with grades above or equal cutoff Precondition: grades has netids as keys, ints as values. cutoff is an int. """ result = [] # start with an empty list for k in grades: if grades[k] >= cutoff: result.append(k) # Add k to the list result return result def netids_above_cutoff2(grades,cutoff): """ Returns: list of netids with grades above or equal cutoff Precondition: grades has netids as keys, ints as values. cutoff is an int. """ result = [] # start with an empty list for k,v in grades.items(): if v >= cutoff: # NOTE: Alternate way to append to list result = result+[k] # Put k in a list and concatenate to end return result def give_extra_credit(grades,netids,bonus): """ Gives bonus points to everyone in sequence netids This is a PROCEDURE. It modifies the contents of grades. It only modifies elements of grades with a key that appears in the sequence netids. Precondition: grades has netids as keys, ints as values. netids is a sequence of strings whose elements are all keys in grades (though not all keys appear in netids). Bonus is an int. """ for student in netids: if student in grades: # tests if student is a key in grades grades[student] = grades[student]+bonus