python开发bisect

现在有如下的需求:

”’
实现这样的一个功能:
对一个班级的学生的成绩做出一些评定,评定规则是:
one: [0-60) — f
two: [60-70) — d
three: [70-80) — c
four: [80-90) — b
five: [90-100] — a
”’

python中的bisect可以实现上面的需求

运行效果:

#python bisect
”’
实现这样的一个功能:
对一个班级的学生的成绩做出一些评定,评定规则是:
one: [0-60) — f
two: [60-70) — d
three: [70-80) — c
four: [80-90) — b
five: [90-100] — a
#########################################
你很可能先想到使用:if….else…
或者想到使用:switch…(java)
##########################################
下面给出不使用以上两种方式实现这一功能
”’
import random
import bisect
def create_student_scores(n):
#根据学生人数n,创建学生成绩
if n >= 0:
scores = []
for x in range(n):
scores.append(random.randrange(0, 101, 1))
return scores
else:
print(‘the number should be greater than 0!’)
def grade(score, breakpoints = [60, 70, 80, 90], grades = ‘fdcba’):
i = bisect.bisect(breakpoints, score)
return grades[i]
def main():
student_scores = create_student_scores(10)
student_results = [grade(score) for score in student_scores]
print(‘学生成绩:{}\n评定结果:{}’.format(student_scores, student_results))
if __name__ == ‘__main__’:
main()

Posted in 未分类

发表评论