当前位置:Gxlcms > Python > python开发bisect

python开发bisect

时间:2021-07-01 10:21:17 帮助过:50人阅读

现在有如下的需求:

'''
    实现这样的一个功能:
    对一个班级的学生的成绩做出一些评定,评定规则是:
    one: [0-60)     -- F
    two: [60-70)    -- D
    three: [70-80)  -- C
    four: [80-90)   -- B
    five: [90-100]  -- A
'''

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

运行效果:

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()

人气教程排行