Как показать веб-страницу

Вам нужно будет изменить разрыв внутри вашей функции на возврат, и вам нужно иметь оператор else в случае, если пользователь не предоставил вам правильный ввод. Наконец, вам нужно включить вызов в while loop в оператор if.

Это позволит вам разорвать оператор while, если игрок войдет в нужную команду, если он не попросит снова. Я также обновил вашу функцию yn, чтобы позволить пользователю использовать символы нижнего и верхнего регистра, а также да и нет.

def yn(input, yes, no):
    input = input.lower()
    if input == 'y' or input == 'yes':
        print (yes)
        return 1
    elif input == 'n' or input == 'no':
        print (no)
        return 2
    else:
        return 0

name = raw_input('What is your name, adventurer? ')
print 'Nice to meet you, %s. Are you ready for your adventure?' % name

while True:
    ready = raw_input('y/n ')
    if yn(ready, 'Good, let\'s start our adventure!',
       'That is a real shame.. Maybe next time') > 0:
        break

Идея этого довольно проста. Функция yn имеет три состояния. Любой пользователь ответил да, нет или недействителен. Если ответ пользователя есть либо «да», либо «нет», функция вернет 1 для «да», а «2 - нет». И если пользователь не предоставляет действительный ввод, например. пустое пространство, оно вернет 0.

Внутри цикла while True: мы завершаем функцию yn ('....', '....') с if statement, которая проверяет если функция yn возвращает число, большее 0. Поскольку yn вернет 0, если пользователь предоставит нам действительный ввод и 1 или 2 для допустимого ввода.

Как только мы получим действительный ответ от yn мы называем break, который останавливает while loop, и мы закончили.

1
задан asd 19 September 2010 в 09:33
поделиться