如何在Python中添加用户输入的五个数字?
作为一个练习,我正在尝试从用户那里获取五个数字,并通过一个循环计算这五个数字的总和。我成功地收集到了这五个数字,但我的代码没有正确返回总和(我得到一个数字,但它总是是最后一个数字的两倍)。我认为问题出在我使用的 += 这个符号上。
x = 0
while x < 5:
x += 1
s = (int(raw_input("Enter a number: ")))
s += s
print s
5 个回答
0
通过用户输入将字符串或整数相加,然后打印结果 - 从用户输入中添加两个或更多的数字
来自上面链接的示例
'''Two numeric inputs, explicit sum'''
x = int(input("Enter an integer: "))
y = int(input("Enter another integer: "))
sum = x+y
sentence = 'The sum of {} and {} is {}.'.format(x, y, sum)
print(sentence)
12
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
块来处理这种情况:
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
8
这样应该更好。
x = 0
s = 0
while x < 5:
x += 1
s += (int(raw_input("Enter a number: ")))
print s
你把其中一个结果加到了所有结果的总和上,这样就把之前的结果给丢掉了。