Задать вопрос
BenderF
@BenderF

Функция ввода символов?

Здравствуйте !
Как сделать функцию на Python проверку символов, чтоб она принимала только 2 символа 'y' и 'n', если символы не другие то она заново просит вас ввести эти символы.
Сам я новичок, нашел тут в интернете похоже на языке C++ попробовал то же самое на Python написать:
Код на C++
char getOperator()
{
    while (true) // цикл продолжается до тех пор, пока пользователь не введёт корректное значение
    {
        std::cout << "Enter one of the following: +, -, *, or /: ";
        char sm;
        std::cin >> sm;
 
        // Переменные типа char могут принимать любые символы из пользовательского ввода, поэтому нам не стоит беспокоиться по поводу возникновения неудачного извлечения
 
        std::cin.ignore(32767,'\n'); // удаляем лишний балласт
 
        // Выполняем проверку пользовательского ввода
        if (sm == '+' || sm == '-' || sm == '*' || sm == '/')    
            return sm; // возвращаем обратно в caller
        else // в противном случае, сообщаем пользователю что что-то пошло не так
            std::cout << "Oops, that input is invalid.  Please try again.\n";
        } 
}

Моё творчество которое не работает:)))
def key():
    while True:
        x = input("Сыграть еще раз? y/n\n")
        if x ==  'n' or 'y':
            return x
        else:
            print("Сыграть еще раз? y/n")
key()

Если не затруднит могли бы вы указать именно, где я не то делаю. Для меня это очень важно
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@MaxPython375
Не плохо программирую на Python.
while True:#бесконечный цикл
    a = input("y/n")#ввод
    if a == "y":#если равно y(можно сделать как вы сразу проверка y и n)
        print(a)#напечатать текст
        break#выход из бесконечного цикла while True (писать не обязательно)
    elif a == "n":
        print(a)
        break
    else:#писать не обязательно else и следующую строку
        print("Не знаю такого символа")
print("Выход из цикла")
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
aRegius
@aRegius
Python Enthusiast
while x not in ('y', 'n'):
	  x = input("Сыграть еще раз?")

Либо для любого регистра ('Y', 'y', 'N', 'n'):

while x.lower() not in ('y', 'n')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы