Python分级程序,需要帮助/测距问题

Python分级程序,需要帮助/测距问题,python,range,Python,Range,获取浮点值并返回相应等级的简单python程序。 我很难对分数进行排序,以便给分数打分。我这里有什么问题。。。?(我宁愿不使用“和”条件) def等级(标记): 如果标记>=80: 字母='A' elif 65>=mark=mark65>=mark=mark和mark我很困惑-你说你在使用float…例如,你想用79.5做什么 if mark >= 80: letter = 'A' elif mark > = 70: letter = 'B' 等等…你只需要设置一个

获取浮点值并返回相应等级的简单python程序。 我很难对分数进行排序,以便给分数打分。我这里有什么问题。。。?(我宁愿不使用“和”条件)

def等级(标记):
如果标记>=80:
字母='A'

elif 65>=mark=mark
65>=mark=mark和mark我很困惑-你说你在使用float…例如,你想用79.5做什么

if mark >= 80:
    letter = 'A'
elif mark > = 70:
    letter = 'B'

等等…你只需要设置一个较低的值,真的

对于超过某个限制的值,尽早返回,因此无需再次测试该上限:

def grade(mark):
    if mark >= 80:
        return 'A'
    if mark >= 65:
        return 'B'
    if mark >= 50:
        return 'C'
    return 'F'
你的链式比较的下限是错误的;您正在测试
标记
是否小于65;反转测试:

elif 65 <= mark <= 79:
    letter = 'B'
elif 50 <= mark <= 64:
    letter = 'C'

bisect.bisect()
返回将插入
标记的索引;将在索引0处插入0-49(转换为
'F'
),将在索引1处插入50-64(
'C'
),等等。

elif 65>=实际标记
65>=标记和标记@HerrActress:固定。显然在写那句话之前需要更多的咖啡直到你可以链不等式。美好的
def grade(mark):
    if mark >= 80:
        return 'A'
    if mark >= 65:
        return 'B'
    if mark >= 50:
        return 'C'
    return 'F'
elif 65 <= mark <= 79:
    letter = 'B'
elif 50 <= mark <= 64:
    letter = 'C'
import bisect

def grade(mark):
    grades = ['F', 'C', 'B', 'A']
    marks = [50, 65, 80]
    return grades[bisect.bisect(marks, mark)]