def complex():
answer = raw_input("Would you like to run this program?")
answer = answer.lower()
money = 5
if "yes" in answer:
print money
money = money - 1
complex()
else:
quit()
complex()
出于某种原因,每次我在raw_input中输入“yes”它会吐出5.但我希望它吐出5然后当我再次输入yes时我希望它吐出4,然后如果我输入是的,我希望它吐出3 ....
我使用Global语句修复了这个问题:
money = 5
def complex():
answer = raw_input("Would you like to run this program?")
answer = answer.lower()
if "yes" in answer:
global money
print money
money = money - 1
complex()
else:
quit()
complex()
答案 0 :(得分:1)
money
是complex
函数的局部变量。
每次调用complex
函数时,都会创建变量。
尝试在方法之前创建变量。
答案 1 :(得分:1)
这是你的程序正在做的事情:
money
设置为5 money
为5时的打印值。money
设置为5 - 1 = 4 complex()
money
设置为5 money
为5时的打印值。money
设置为5 - 1 = 4 complex()
... 等
正如您所看到的,您的过程会在每次迭代时使用值5覆盖所需的值(4),这就是为什么它不能按您的意愿工作的原因。
您可以做的是在money
设置为5后,循环运行x次。
答案 2 :(得分:0)
在“复杂”功能中,您可以将money变量重置为5。
答案 3 :(得分:0)
因为你调用complex(),所以行 钱= 5 不断被召唤。要解决此问题,您的递归调用不应包含此设置。或者,使用迭代。
答案 4 :(得分:0)
更改金钱=金钱 - 一个到另一个变量,你使用它太多次了,它会花钱5个
print dollars
dollars = money - 1