python这题怎么做呢?

这题怎么做呢?
2025-03-19 07:53:35
推荐回答(1个)
回答1:

这题出得有问题。

题目最后说通过60*'F'+...,这刚好就是括号中不允许的。

这意思就是说,建立一个字符串,然后直接以分数来索引该字符串得到分数对应的等极:

grade = 60*'F'+10*'D'+10*'C'+10*'B'+11*'A'
def myfun(fenshu):
  reutrn grade[fenshu]

如果不允许使用字符串索引与复制,那么,就不是使用该类方式,常见的做法是使用一组if:

def myfun(fenshu):
    if fenshu < 60:
        return 'F'
    elif fenshu < 70:
        return 'D'
    elif fenshu < 80:
        return 'C'
    elif fenshu < 90:
        return 'B'
    else:
        return 'A'

或者使用一个列表,在for中判断:

grade = [(60,'F'),(70,'D'),(80,'C'),(90,'B')]
def myfun(fenshu):
    for k, v in grade:
        if fenshu < k:
            return v
    else:
        return 'A'

但这两种处理方式均与题目最后所给出的提示是不一致的。