作为练习,我尝试从用户那里获取五个数字并使用 while 循环返回所有五个数字的总和。我设法收集了五个数字,但我的代码没有提供总和(我得到了一个数字,但它总是是最后一个数字的两倍)。我认为问题出在我对 += 的使用上。
x = 0
while x < 5:
x += 1
s = (int(raw_input("Enter a number: ")))
s += s
print s
请您参考如下方法:
Gruszczy 已经解决了您的主要问题,但这里有一些与您的代码相关的建议。
首先,执行 for 循环比跟踪 while 中的迭代更容易:
s = 0
for i in range(5):
s += int(raw_input('Enter a number: '))
其次,您可以使用内置的 sum 函数对其进行简化:
s = sum(int(raw_input('Enter a number: ')) for i in range(5))
第三,如果用户输入了无效的输入,上述两种方法都会失败。您应该添加一个 try block 来解决这个问题:
s = 0
for i in range(5):
try:
s += int(raw_input('Enter a number: '))
except ValueError:
print 'Invalid input. Counting as a zero.'
或者如果你想强制使用 5 个有效数字:
round = 0
s = 0
while round < 5:
try:
s += int(raw_input('Enter a number: '))
except ValueError:
print 'Invalid input.'
else:
round += 1
