在Python中添加Sums

时间:2013-12-01 20:23:31

标签: python sum

我必须创建一个代码,其中用户输入的数字总和将加起来为1001.但它不能超过该数量或重置为零。我遇到的唯一问题是获取它,以便当用户到达1001时代码将打印“祝贺”消息。这是我的代码到目前为止。

我是Python的新手,非常感谢您提供的任何帮助!

编辑

到目前为止,我有这个,它正在努力增加总和。

print ("Want to play a game? Add numbers until you reach 1001!")
print ("Current total is 0!")
total=0
while total < 1001:
    store=raw_input("Enter a number!") 
    num=int(store)
    total=total+num
    print total
print ("Congratulations! You won!") 

我现在唯一的问题是用户可以输入超过1001的数字并仍然收到祝贺信息。

我应该添加类似

的内容
if total > 1001: 
   print ("Oops! Too Far! Start Again!") 

2 个答案:

答案 0 :(得分:3)

在您的情况下,您有while 1001 > 0始终为真,因此您获得无限循环。此外,while 1001 == sum还会产生一个无限循环,考虑到一旦你到达那里,你永远不会改变sum。以下是代码的简化版本:

#sum is a function, so name it something else,  I chose sum_ for simplicity's sake
while sum_ != 1001:
    #instead of using an intermediate, I just combined the two lines
    num=int(raw_input("Enter a number!"))

    #This is equivalent to sum = sum + num
    sum_ += num
    print sum_

    #Need to reset if sum_ goes above 1001
    if sum_ > 1001:
        sum_ = 0

#By the time you get here, you know that _sum is equal to 1001
print ("Congratulations! You won!") 

答案 1 :(得分:1)

你的两个while循环都将永远运行,因为它们的条件总是会计算为True(实际上,你永远不会达到第二个,因为第一个将永远运行)。

以下是您脚本的固定版本:

print "Want to play a game? Add numbers until you reach 1001!"
print "Current total is 0!"
# Don't name a variable `sum` -- it overrides the built-in
total = 0
# This will loop until `total` equals 1001
while total != 1001:
    store = raw_input("Enter a number!") 
    num = int(store)
    # This is the same as `total=total+num`
    total += num
    print total
    # If we have gone over 1001, reset `total` to 0
    if total > 1001:
        print "Oops! Too Far! Start Again!"
        total = 0
# When we get here, the total will be 1001
print "Congratulations! You won!"