# Lecture 10 fall 2008
def merge(left,right):
result = []
i,j = 0, 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i = i + 1
else:
result.append(right[j])
j = j + 1
while (i < len(left)):
result.append(left[i])
i = i + 1
while (j < len(right)):
result.append(right[j])
j = j + 1
return result
def mergesort(L):
print (L)
if len(L) < 2:
return L[:]
else:
middle = len(L) // 2
left = mergesort(L[:middle])
right = mergesort(L[middle:])
together = merge(left,right)
print ('merged', together)
return together
def create(smallest, largest):
intSet = []
for i in range(smallest, largest+1): intSet.append(None)
return intSet
def insert(intSet,e):
intSet[e] = 1
def member(intSet,e):
return intSet[e] == 1
def hashChar(c):
return ord(c)
def readFloat(requestMsg, errorMsg):
while True:
val = input(requestMsg)
try:
val = float(val)
return val
except:
print(errorMsg)
##print (readFloat('Enter float:', 'Not a float.'))
def readVal(valType, requestMsg, errorMsg):
while True:
Val = input(requestMsg)
try:
Val = valType(Val)
return Val
except:
print(errorMsg)
##print (readVal(int, 'Enter int:', 'Not as int.'))
def getGrades(fname):
try:
gradesFile = open(fname, 'r')
except IOError:
print ('could not open', fname)
raise ('GetGradesError')
grades = []
for line in gradesFile: grades.append(float(line))
return grades
try:
grades = getGrades('q1grades.txt')
grades.sort()
median = grades[len(grades)/2]
print ('Median grade is', median)
except 'GetGradesError':
print ('Whoops')
07-29
07-29