Как получить оператор if elif else для перезапуска - PullRequest
2 голосов
/ 13 июня 2019

Я новичок, и у меня возникают проблемы с обработкой следующего кода.

choice

if: (оператор ложен)

  moves to elif statement

elif:(утверждение неверно)

  moves to else statement

else: (Я бы хотел, чтобы цикл вернулся к выбору, чтобы повторить операторы if и elif

Я пробовал несколько различных отступов и тому подобное,но я уверен, что мне не хватает чего-то еще, чтобы повторить цикл.

Ответы [ 4 ]

2 голосов
/ 13 июня 2019

Я полагаю, вы ищете петлю while. В этом примере код будет продолжаться сверху, пока пользователь не введет exit.

while True:
    item = input('Enter text: ')
    if item == 'banana':
        print('You entered: {}'.format(item))
    elif item == 'apple':
        print('You entered: {}'.format(item))
    elif item == 'cherry':
        print('You entered: {}'.format(item))
    elif item == 'exit':
        break
    else:
        print('You did not enter a fruit, try again!')

Некоторые примеры вывода

Enter text: banana
You entered: banana
Enter text: apple
You entered: apple
Enter text: cherry
You entered: cherry
Enter text: exit
2 голосов
/ 13 июня 2019

if это не цикл, а условный. Следовательно, цикл перезапуска отсутствует.

while - это цикл. (Есть другие, которые делают немного другие вещи.) Это не может ветвиться как if, это просто циклы.

Если вам нужно принять решение в цикле, поместите if внутри while. Ни одно утверждение не предназначено для всего.

while True:    # repeats forever
    feedback = get_user_feedback()
    if feedback_is_this_way(feedback):
        go_this_way()
    elif feedback_is_that_way(feedback):
        go_that_way()
    elif feedback_says_user_is_sick_and_tired(feedback):
        apologise_to_user()
        break    # exits the loop
    else:
        tell_the_user_not_to_mess_around()
0 голосов
/ 13 июня 2019

Вы можете попробовать поместить условный блок в функцию, а затем снова вызвать функцию для условия else:

def conditionCheck():
    if (...):
        #do stuff
    elif (...):
        #do stuff
    else:
        conditionCheck()
0 голосов
/ 13 июня 2019
while True:
    if condition_one:
       pass
    elif condition_two:
       pass
    else:
        continue
    break
...