作为练习练习,我试图从用户那里获得五个数字并使用while循环返回所有五个数字的总和。我设法收集了五个数字,但总和不是由我的代码提供的(我得到一个数字,但它始终是最后一个数字的两倍)。我认为问题在于我使用了+ =。
x = 0
while x < 5:
x += 1
s = (int(raw_input("Enter a number: ")))
s += s
print s
答案 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))