Python 这些有什么不同?类型错误:';int';对象是不可编辑的

Python 这些有什么不同?类型错误:';int';对象是不可编辑的,python,Python,有人能解释一下这句话是怎么说的吗 return [grade if (grade < 38 or grade % 5 < 3) else (grade + (5 - grade%5)) for grade in grades] 返回[如果等级(等级

有人能解释一下这句话是怎么说的吗

return [grade if (grade < 38 or grade % 5 < 3) else (grade + (5 - grade%5)) for grade in grades]
返回[如果等级(等级<38或等级%5<3)的等级,则返回等级中等级的等级(等级+(5-等级%5))]
与此代码块不同:

for grade in grades:
        if grade<38 or grade%5<3:
            return grade
        else:
            return grade + (5-grade%5)
对于等级中的等级:

如果评分要让他们输出相同的结果,您需要将结果附加到列表中,而不是返回结果。
基本上,第二段代码应该是:

def block2(grades):
    res = []
    for grade in grades:
            if grade<38 or grade%5<3:
                res.append(grade)
            else:
                res.append(grade + (5-grade%5))
    return res 
def区块2(等级):
res=[]
按年级划分的年级:

如果一开始成绩不错,他们会做两件完全不同的事情。第一个返回一个列表对象,它是由列表理解创建的。第二个返回
grade
grade+(5-grade%5)
。这通常发生在第一次迭代时,使for循环有点无点。很可能,错误来自于尝试迭代调用这些代码片段所来自的函数的结果?下次请发布完整的错误消息并进行完整的回溯。