HackerRank,Python,gradingStudents,nonetype对象不可迭代

时间:2018-07-12 19:43:00

标签: python typeerror nonetype

n = int(input())
grades = []

for _ in range(n):
    grades.append(int(input()))

def gradingStudents(grades):
    for i in grades:
        if i > 37 and (5-i) % 5 < 3:
            print (i + (5-i) % 5)
        else:
            print (i)

result = gradingStudents(grades)
print(map(str,result))

如果我更改打印方法,则可以正常工作,但是当我尝试使用以下方法打印时:

print(map(str,result))

它引发错误:

TypeError: 'NoneType' object is not iterable

我也尝试过使用return,但仍然无法正常工作。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您的函数gradingStudents没有return语句,因此它返回None

result因此是None

map尝试遍历None并失败。

答案 1 :(得分:0)

您可以执行此操作,我认为这是您真正想要的(也许):

def gradingStudents(grades):
    res = []
    for i in grades:
        if i > 37 and (5-i) % 5 < 3:
            print (i + (5-i) % 5)
            res.append(i + (5-i) % 5)
        else:
            print (i)
            res.append(i)
    return res