【发布时间】:2012-04-15 17:37:13
【问题描述】:
我有以下代码:
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
当我运行它时,输出如下:
Please enter your score for test 1:
None
然后我将在无旁边输入测试分数,例如 95 然后它会运行程序的其余部分,而不提示我将下一个测试分数添加到分数列表中。我真的很好奇为什么会这样
提前感谢您抽出宝贵时间提供帮助
真诚地, ~达斯汀
【问题讨论】:
-
请注意:
input函数调用是错误的,您不需要其中的print函数。它应该只是字符串。这就是为什么它在提示后打印None。 -
你的函数需要缩进(第一行之后的所有内容)
-
另一个快速说明:我从您的代码中推断出您使用的是 Python 3,而不是 Python 2 - 将您的问题标记为 Python-3.x 很重要,这样我们就不会感到困惑。除非您另有说明,否则我们通常假定您使用的是 Python 2,而我们需要给出的建议可能会大不相同。
-
你也许可以摆脱
y变量。如果你需要它,你可以使用len(scores) + 1。
标签: python for-loop python-3.x range