Цикл Python - допустимый ввод - PullRequest
0 голосов
/ 18 октября 2019

Итак, у меня возникли проблемы с циклом в начале кода, когда я спрашивал пользователя, хотят ли они играть. Как мне заставить его воспроизводить цикл, если пользователь вводит неверный ответ?

Ниже приведено то, что у меня есть, но я застрял на том, куда идти дальше

play = input('Would you like to play the Guess the Number Game [y|n]?')
while play == 'y':
     play = True
if play == 'n':
     print ("No worries... another time perhaps... :)")
     exit()
else:
     print ("Please enter either 'y' or 'n'.")

Ответы [ 4 ]

0 голосов
/ 18 октября 2019
while True:
    play = input('Would you like to play the Guess the Number Game [y|n]?').lower()
    if play == 'n':
        print ("No worries... another time perhaps... :)")
        break
    elif play == 'y':
        #write your game code here 
    else:
        print ("Please enter either 'y' or 'n'.")
0 голосов
/ 18 октября 2019

Это можно сделать и с помощью рекурсии:

def user_input():
    play = input('Would you like to play the Guess the Number Game [y|n]?')
    if play == 'y':
        print("Play Starting...")
        return True
    elif play == 'n':
        print("No worries... another time perhaps... :)")
        return False
    else:
        user_input()


user_input()
0 голосов
/ 18 октября 2019

Определить рекурсивную функцию для запроса пользовательского ввода, которая вызывает себя, когда ввод недопустим.

def playFunction():
    play = input('Would you like to play the Guess the Number Game [y|n]?')
    if play == 'y':
         play = True
    if play == 'n':
        play = False
        print ("No worries... another time perhaps... :)")
        return
    else:
         print ("Please enter either 'y' or 'n'.")
         playFunction()
0 голосов
/ 18 октября 2019

Я думаю, это то, что вы хотите:

break_condition = True
while break_condition:
    play = input('Would you like to play the Guess the Number Game [y|n]?')
    if play == 'y':
        play = True
        break_condition = False

    elif play == 'n':
        print ("No worries... another time perhaps... :)")
        break_condition = False
    else:
        print ("Please enter either 'y' or 'n'.")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...