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

时间:2010-02-19 21:56:24

标签: python

作为练习练习,我试图从用户那里获得五个数字并使用while循环返回所有五个数字的总和。我设法收集了五个数字,但总和不是由我的代码提供的(我得到一个数字,但它始终是最后一个数字的两倍)。我认为问题在于我使用了+ =。

x = 0   
while x < 5:
    x += 1
    s = (int(raw_input("Enter a number: ")))
    s += s
print s

5 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:8)

这应该更好。

x = 0
s = 0   
while x < 5:
    x += 1
    s += (int(raw_input("Enter a number: ")))
print s

您将其中一个结果放在所有结果的总和上,并丢失了之前的结果。

答案 2 :(得分:0)

通过user_input&amp;添加str或int;然后打印结果 - Adding 2 or more no's from users input

来自abv链接的例子

'''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)

答案 3 :(得分:0)

x = 0
s = 0   
    while x < 5:
        x += 1
        s += (int(raw_input("Enter a number: ")))
print s

答案 4 :(得分:0)

你也可以这样做

print ("enter input number : ")

input1 = int(raw_input())

sum1 = 0

for y in range(0,input1+1):
       sum1 = sum1 + y
print ("the sum is " + str(sum1))