shindayoni
@shindayoni
Студент

Как дать пользователю возможность ввести значения заново в случае неправильного ввода?

Я знаю только способ только через do while, но его в python нет.

Код, как это пытался реализовать я
def mode():
    cryptMode = input("Выберите режим! [З]ашифровать|[Д]ешифровать: ").upper()
    if cryptMode not in ['З','Д']: # Проверка правильности введенного выбора (режима)
        print("Ошибка! режим не найден! Повторите попытку...");

    openFile = input("Вы желаете ввести сообщение в консоль или открыть из файла? [О]ткрыть, [В]вод вручную: ").upper()
    if openFile not in ['О','В']:
        print("Ошибка! Проверьте правильность введенного режима! Повторите попытку...");

    if (cryptMode == 'З' or 'Д') and (openFile == 'O' or 'В'):
        return True 

mode()
while not True:
    mode()

Нужно реализовать это следующим образом: если пользователь неправильно ввел значение в первом режиме ему заново представилась возможность ввести правильное значение. Если он правильно ввел значение в первом режиме, то нужно чтобы программа не начиналась с нуля, а продолжилась с момента записи в переменную openFile (В моем коде нет этого фрагмента, так как не дошло как это сделать)
В общем нужна помощь.
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
https://pythonworld.ru/osnovy/cikly-for-i-while-op...
while True:
    cryptMode = input("Выберите режим! [З]ашифровать|[Д]ешифровать: ").upper()
    if cryptMode not in ['З','Д']: # Проверка правильности введенного выбора (режима)
        print("Ошибка! режим не найден! Повторите попытку...");
        continue

    openFile = input("Вы желаете ввести сообщение в консоль или открыть из файла? [О]ткрыть, [В]вод вручную: ").upper()
    if openFile not in ['О','В']:
        print("Ошибка! Проверьте правильность введенного режима! Повторите попытку...");
        continue

    if cryptMode in ['З', 'Д'] and openFile in ['O', 'В']:
        return True
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mcsnegovik
Что-то такое?

secret = 'Привет!'
a=input()
while a != secret:
    print('Ответ не правильный!')
    a=input()
print('Вы угадали!')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы