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

cto*_*den 1 python

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

x = 0   
while x < 5:
    x += 1
    s = (int(raw_input("Enter a number: ")))
    s += s
print s
Run Code Online (Sandbox Code Playgroud)

Max*_*keh 11

Gruszczy已经解决了您的主要问题,但这里有一些与您的代码相关的建议.

首先,更容易做一个for循环,而不是跟踪迭代while:

s = 0
for i in range(5):
  s += int(raw_input('Enter a number: '))
Run Code Online (Sandbox Code Playgroud)

其次,您可以使用内置sum函数简化它:

s = sum(int(raw_input('Enter a number: ')) for i in range(5))
Run Code Online (Sandbox Code Playgroud)

第三,如果用户输入无效输入,则上述两种情况都将失败.你应该添加一个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.'
Run Code Online (Sandbox Code Playgroud)

或者,如果您想强制使用5个有效数字:

round = 0
s = 0
while round < 5:
  try:
      s += int(raw_input('Enter a number: '))
  except ValueError:
      print 'Invalid input.'
  else:
      round += 1
Run Code Online (Sandbox Code Playgroud)


gru*_*czy 8

这应该会更好.

x = 0
s = 0   
while x < 5:
    x += 1
    s += (int(raw_input("Enter a number: ")))
print s
Run Code Online (Sandbox Code Playgroud)

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