我必须创建一个代码,其中用户输入的数字总和将加起来为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!")
答案 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!"