Problem 1 Part A index+2 skips the comma and space to get the first name the slice uses index to get everything up to and NOT including the comma Part B .find() returns -1 when the string is not found, so -1+2 = 1 and the slice gets "ob jones". The value of the slice "bob jones"[:-1] is everything up to and not including the last character or "bob jone" Problem 2 Part A def is_abundant (num): total = 0 for n in range(1, num): if num % n == 0: total = total + n return total > num # # OR # def is_abundant (num): total = sum([ n for n in range(1,num) if num % n == 0 ]) return total > num Part B def abundant_count (start, end): total = 0 for n in range(start, end+1): if is_abundant(n): total += 1 return total # # OR # def abundant_count (start, end): return len([ x for x in range(start,end+1) if isabundant(x) ]) Problem 3 def getAgeList(filename, low, high): f = open(filename) results = [ ] for line in f.readlines(): data = line.split(",") age = int(data[2]) if low <= age <= high: results.append(data[0]) f.close() return results