>백엔드 개발 >파이썬 튜토리얼 >파이썬 개발 바이섹트

파이썬 개발 바이섹트

高洛峰
高洛峰원래의
2016-12-14 15:45:121568검색

이제 다음 요구 사항이 있습니다.

'''
    实现这样的一个功能:
    对一个班级的学生的成绩做出一些评定,评定规则是:
    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()


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.