0

我试图回到一个函数的顶部(不是重新启动它,而是回到顶部)但不知道如何做到这一点。而不是给你长代码,我只是要编一个我想要的例子:

used = [0,0,0]  
def fun():
   score = input("please enter a place to put it: ")
   if score == "this one":
      score [0] = total
   if score == "here"
      if used[1] == 0:
        score[1] = total
        used[1] = 1
      elif used[1] == 1:
        print("Already used")
        #### Go back to score so it can let you choice somewhere else. 
  list = [this one, here]

我需要能够返回,所以基本上它会忘记你试图再次使用“这里”而不擦除内存。尽管我知道它们很糟糕,但我基本上需要尝试,但它们在 python 中不存在。有任何想法吗?

*编辑:抱歉,我忘了提到当它已经在使用时,我需要能够选择其他地方让它去(我只是不想让代码陷入困境)。我添加了 score == "this one"- 所以如果我试图把它放在 "here" 中,"here" 已经被占用了,它会给我重做 score = input("") 的选项,然后我可以采取该值并将其插入“this one”而不是“here”。您的循环语句将回到顶部,但不允许我将刚刚找到的值放在其他地方。我希望这是有道理的:p

4

2 回答 2

5

您正在寻找的是一个while循环。您想设置循环以继续进行,直到找到一个地方。像这样的东西:

def fun():
    found_place = False
    while not found_place:
        score = input("please enter a place to put it: ")
        if score == "here"
            if used[1] == 0:
                score[1] = total
                used[1] = 1
                found_place = True
            elif used[1] == 1:
                print("Already used")

这样,一旦你找到了一个地方,你就可以设置found_place停止True循环的地方。如果你还没有找到一个地方,就found_place留下False来,然后你再循环一次。

于 2013-04-27T20:12:39.820 回答
1

正如 Ashwini 正确指出的那样,你应该做一个while循环

def fun():
  end_condition = False
  while not end_condition:
    score = input("please enter a place to put it: ")
    if score == "here":
      if used[1] == 0:
        score[1] = total
        used[1] = 1
      elif used[1] == 1:
        print("Already used")
于 2013-04-27T20:11:26.467 回答