如何在Python中添加用户输入的五个数字?

2 投票
5 回答
48690 浏览
提问于 2025-04-15 19:30

作为一个练习,我正在尝试从用户那里获取五个数字,并通过一个循环计算这五个数字的总和。我成功地收集到了这五个数字,但我的代码没有正确返回总和(我得到一个数字,但它总是是最后一个数字的两倍)。我认为问题出在我使用的 += 这个符号上。

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

你把其中一个结果加到了所有结果的总和上,这样就把之前的结果给丢掉了。

撰写回答