For循环只执行1次,但范围为5

Dus*_*rns 0 python for-loop range python-3.x

我有以下代码:

def input_scores():
scores = []
y = 1
for num in range(5):
    score = int(input(print('Please enter your score for test %d: ' %y)))

    while score < 0 or score > 100:
        print ('Error --- all test scores must be between 0 and 100 points')
        score = int(input('Please try again: '))
    scores.append(score)
    y += 1
    return scores   
Run Code Online (Sandbox Code Playgroud)

当我运行它时,输出如下:

Please enter your score for test 1: 
None
Run Code Online (Sandbox Code Playgroud)

然后我将输入"无"旁边的测试分数,比如95,然后它会在程序的其余部分运行,而不会提示我将下一个测试分数添加到分数列表中.我真的很好奇为什么会这样

提前感谢您抽出宝贵时间提供帮助

真诚的,〜达斯汀

max*_*max 5

你从循环内部返回.return scores向左移动一个缩进.