示例if-elif-else代码:
if scr >= 0.9:
    print('A')
elif scr >= 0.8:
    print('B')
elif scr >= 0.7:
    print('C')
elif scr >= 0.6:
    print('D')
else:
    print('F')或者
def convertgrade(scr, numgrd, ltrgrd):
    if scr >= numgrd:
        return ltrgrd
    if scr < numgrd:
        return ltrgrd
convertgrade(scr, 0.9, 'A')
convertgrade(scr, 0.8, 'B')
convertgrade(scr, 0.7, 'C')
convertgrade(scr, 0.6, 'D')
convertgrade(scr, 0.6, 'F')1、使用bisect实现
相关文档:bisect
from bisect import bisect
def grade(score, breakpoints=[60, 70, 80, 90], grades='FDCBA'):
i = bisect(breakpoints, score)
return grades[i]
>>> [grade(score) for score in [33, 99, 77, 70, 89, 90, 100]]
['F', 'A', 'C', 'C', 'B', 'A', 'A']
相关文档:
def grade(score):
    grades = zip('ABCD', (.9, .8, .7, .6))
    return next((grade for grade, limit in grades if score >= limit), 'F')
>>> grade(1)
'A'
>>> grade(0.85)
'B'
>>> grade(0.55)
'F'3、使用字典(dict)实现
grades = {"A": 0.9, "B": 0.8, "C": 0.7, "D": 0.6, "E": 0.5}
def convert_grade(scr):
    for ltrgrd, numgrd in grades.items():
        if scr >= numgrd:
            return ltrgrd
    return "F"4、使用numpy的np.select
>> x = np.array([0.9,0.8,0.7,0.6,0.5]) >> conditions = [ x >= 0.9, x >= 0.8, x >= 0.7, x >= 0.6] >> choices = ['A','B','C','D'] >> np.select(conditions, choices, default='F') >> array(['A', 'B', 'C', 'D', 'F'], dtype='<U1')
相关文档:np.select