所以我需要循环继续要求用户键入将被添加在一起的数字,以产生仅在完全达到1001时才会停止的总数。如果它结束,总计将重置为0.当用户输入1然后2它加起来并产生总共3没问题。但是当我输入12时,它会将每个整数相加,并且总共只增加3。有什么想法吗?
# The number list
list = [0]
#Prompt
print "Rules of the game, keep adding numbers to get exactly 1001!"
while True:
#User input
numbers = raw_input(" Please enter a number: ")
#Starting total
total=0
#Add user input to list
for num in numbers:
list.append(int(num))
#Add up all numbers in list
for value in list:
total += int(value)
if total < 1001:
print "Current total:"
print(total)
elif total == 1001:
print "Congratulations, you did it!"
break
elif total > 1001:
total = 0
答案 0 :(得分:4)
当你这样做时
numbers = raw_input()
numbers
变量是一个字符串,所以稍后在
for num in numbers:
...
num
变量是字符串“12”中的每个字符,即。 “1”然后“2”
如果您希望他们一次输入多个以空格分隔的数字,您可以
for num in numbers.split():
如果他们只是输入一个数字,那么就没有理由在这里进行迭代,只需使用
my_list.append(int(numbers))