当我运行我的代码时,只要go等于'no',以下代码就应该继续循环使用函数:
def use():
item = input("What would you like to buy in bulk? ")
purchase.append(item)
done()
def done():
global go
go = input("Is that all? ")
use()
if go == "no":
use()
我不知道为什么它只运行item = input("What would you like to buy in bulk? ")
两次。
任何人都可以提供帮助。
答案 0 :(得分:0)
您问题的简短回答是,您只需拨打use()
两次。 if
不是像while
那样的循环结构,并且您没有递归调用。因此,函数调用仅达到两次。
您可以通过在done()
末尾拨打use()
,并在use()
内的条件内拨打done()
来添加循环,以便生成循环。
purchase = []
def use():
item = input("What would you like to buy in bulk? ")
purchase.append(item)
done()
def done():
go = input("Is that all? ")
if go == "no":
use()
# Here is the first call to use() that will be reached:
use()
# This will be reached after the first time 'no' is not given to done()
print(purchase)
另请注意,我添加了一个购买清单,以便purchase.append(item)
来电。
答案 1 :(得分:0)
如果你想重复一些事情,请使用循环,例如while
:
def input_purchases():
purchase = []
while True:
item = input("What would you like to buy in bulk? ")
purchase.append(item)
go = input("Is that all? ")
if go != "no":
break
return purchase
purchase = input_purchases()