2013-04-27 2 views
0

Я пытаюсь вернуться в начало функции (не перезапускать ее, а перейти на верх), но не могу понять, как это сделать , Вместо того чтобы дать вам длинный код, я просто хочу, чтобы составить пример того, что я хочу:попытка петли к началу функции (своего рода) в python

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. Есть идеи?

Редактировать: Ах, извините, я забыл упомянуть, что, когда он уже используется, мне нужно уметь куда-то заходить, чтобы он мог (я просто не хотел заглушать код). Я добавил счет == «this one», поэтому, если бы я попытался поместить его в «здесь», «здесь» уже было принято, это даст мне возможность повторного набора баллов = input («»), а затем я мог бы принять это значение и включить его в «этот» вместо «здесь». Ваш оператор цикла вернется к вершине, но не позволяет мне взять значение, которое я только что нашел, и поместить его в другое место. Я надеюсь, что это будет иметь смысл: р

+4

использовать цикл while. –

+1

@AshwiniChaudhary +1 вы должны опубликовать это как правильный ответ. – tripleee

ответ

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") 
+1

Эмм, ты забыл добавить «end_condition = True» где-нибудь? (-: – tripleee

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, и вы снова проходите цикл.

Смежные вопросы