python开发_bisect
现在有如下的需求:
''' 实现这样的一个功能: 对一个班级的学生的成绩做出一些评定,评定规则是: one: [0-60) -- F two: [60-70) -- D three: [70-80) -- C four: [80-90) -- B five: [90-100] -- A '''
运行效果:
====================================================
代码部分:
====================================================
1 #python bisect 2 ''' 3 实现这样的一个功能: 4 对一个班级的学生的成绩做出一些评定,评定规则是: 5 one: [0-60) -- F 6 two: [60-70) -- D 7 three: [70-80) -- C 8 four: [80-90) -- B 9 five: [90-100] -- A 10 ######################################### 11 你很可能先想到使用:if....else... 12 或者想到使用:switch...(java) 13 ########################################## 14 下面给出不使用以上两种方式实现这一功能 15 ''' 16 17 import random 18 import bisect 19 20 def create_student_scores(n): 21 #根据学生人数n,创建学生成绩 22 if n >= 0: 23 scores = [] 24 for x in range(n): 25 scores.append(random.randrange(0, 101, 1)) 26 return scores 27 else: 28 print('the number should be greater than 0!') 29 30 31 def grade(score, breakpoints = [60, 70, 80, 90], grades = 'FDCBA'): 32 i = bisect.bisect(breakpoints, score) 33 return grades[i] 34 35 def main(): 36 student_scores = create_student_scores(10) 37 student_results = [grade(score) for score in student_scores] 38 print('学生成绩:{}\n评定结果:{}'.format(student_scores, student_results)) 39 40 if __name__ == '__main__': 41 main()