Создание цикла состояний if

#python #if-statement

Вопрос:

 if explication == "y":
    print("The game is very simple, the programe generate a random number between 0 and 100 and your"  
    " objective is to guess it, if you type a number lower than the generated number i'll tell you"  
    " and the same will happen if you type a bigger number and there's a score if you guess wrong"  
    " it will decrease and when the score reach 0 you loose, that's all enjoy the game!")
if explication == "n":
    print("Great then we'll go straight to having fun!")

if explication != "n" and explication != "y":
    explication = input("please choose y or n: ")
 

Итак, я начал изучать python, и я хотел сделать простую забавную программу, и здесь я хотел спросить пользователя, нужно ли ему объяснять игру, которую было просто сделать, но я также хотел, чтобы он выбрал другое время, если он пропустит щелчок или просто хотел ввести другие вещи, поэтому я сделал 3-е утверждение if, я также хотел, чтобы оно повторилось, поэтому, если он продолжит печатать что-то другое, кроме y и n, программа всегда будет отправлять «пожалуйста, выберите y или n», пока он не наберет y или n, есть ли способ сделать это?

Комментарии:

1. Рассматривали ли вы цикл while или вы просто заинтересованы в том, чтобы выполнить это без структуры цикла?

Ответ №1:

 explication = None

# keep asking until we get "y" or "n"
while explication not in ["y", "n"]:
    # retrieve input
    explication = input("please choose y or n: ")

    # check whether it's y or n
    if explication == "y":
        print("The game is very simple...")
    elif explication == "n":
        print("Great then we'll go straight to having fun!")
    
    # if the input is neither y nor n, the program ends up here
    # and loops again
 

Альтернатива:

 # keep looping unconditionally
while True:
    # retrieve input
    explication = input("please choose y or n: ")

    if explication == "y":
        # print and break
        print("The game is very simple...")
        break  # <- this gets us out of the while loop
    elif explication == "n":
        print("Great then we'll go straight to having fun!")
        break
 

Ответ №2:

Вот простой способ написания кода

 explication = None
while(explication != "n" and explication != "y"):
    explication = input("please choose y or n: ")
    if explication == "y":
        print("The game is very simple, the programe generate a random number between 0 and 100 and your"  
        " objective is to guess it, if you type a number lower than the generated number i'll tell you"  
        " and the same will happen if you type a bigger number and there's a score if you guess wrong"  
        " it will decrease and when the score reach 0 you loose, that's all enjoy the game!")
        break
    if explication == "n":
        print("Great then we'll go straight to having fun!")
        break
    
#Code to start the game after this comment
 

Объяснение

Мы устанавливаем значение экспликации Нет, так как сначала необходимо инициализировать переменную экспликации. Цикл while выполняется, когда вход не является y или n. Если это y, мы объясняем игру, а затем выходим из цикла, используя break. Если это n, мы пропускаем объяснение и выходим из цикла. После того, как вы выйдете из цикла, вы сможете ввести код для игры!

Комментарии:

1. Когда вы используете операторы break, вам не нужно добавлять условие в цикл while, и наоборот. Проверьте два варианта в моем ответе.

2. @mcsoini я знаю. Я просто хотел изложить это так, чтобы новичок понял, используя код, который они предоставили. Я хотел, чтобы задающий вопрос понял код, который я написал, и я хотел использовать точный код, который они использовали, но с циклом while и вообще ничего не меняя.