试图在python中循环到函数的开头(排序)

时间:2013-04-27 20:01:33

标签: python function loops

我试图回到函数的顶部(不重新启动它,但转到顶部)但无法弄清楚如何执行此操作。而不是给你很长的代码,我只是想做一个我想要的例子:

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]

我需要能够回去,所以基本上忘记你试图再次使用“here”而不擦拭内存。虽然我知道它们很糟糕,但我基本上需要去,但它们在python中不存在。有什么想法吗?

*编辑:对不起,我忘了提及当它已经在使用时,我需要能够选择其他地方去(我只是不想让代码陷入困境)。我添加了得分==“这一个” - 所以如果我试图把它放在“这里”,“这里”已经采取了,它会给我选择重做得分=输入(“”)然后我可以采取该值并将其插入“this one”而不是“here”。你的循环语句将返回到顶部,但不会让我获取我刚刚找到的值并将其放在其他位置。我希望这是有道理的:p

2 个答案:

答案 0 :(得分: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,那么您会再次进行循环播放。

答案 1 :(得分: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")