@kyklaed

Как осуществить проверку ввода с клавиатуры и выход из программы?

Всем привет

Я сделал обработку исключений через try: except:
она все нормально обрабатывает и вывод сообщение о том что вы ввели не цифру

но мне нужно сделать выход из программы в любом месте по символу 'q'
как это правильно осуществить, потому как try: except: перехватывает любые символы и они не попадают не в if не в while

t_morning = 0
t_afternoon = 0
t_evening = 0
t_average = 0
c_f = 0
while True:
    c_f = input("Введите букву ") # метка для выбора в каких единицах измереения будем считать
    if t_morning or t_morning or t_evening or c_f != 'q':

        while True:
            if c_f == "c" : # проверка на введенную букву
                while True:
                    try:
                        t_morning = int(input("Температура утром "))
                        t_morning = int(input("Температура днем"))
                        t_evening = int(input("Температура вечером"))
                        t_average = (t_morning + t_afternoon + t_average)/3 # рассчет среденесуточной температуры
                        print("Среднесуточная температура по цельсию = ", t_average)
                        print("Если вы хотите узнать температуру по фаренгейту введите 'y', а если нет введите букву 'q'")
                        while True:
                            far= input("Введите букву")
                            if far == 'y':
                                t_f = t_average * 1.8 + 32 # расчет тмпературы по фаренгейту
                                print("Среднесуточная температура по F = ", t_f,", досвидания! ")
                                exit()
                            elif far == "q":
                                print("Досвидания")
                                exit()
                    except(TypeError, ValueError):
                        print("Ошибка!  вы вводите не число! ")


            elif c_f =="f": # проверка на введенную букву
                while True:
                    try:
                        t_morning = int(input("Температура утром "))
                        t_afternoon = int(input("Температура днем"))
                        t_evening = int(input("Температура вечером"))
                        t_average = (t_morning + t_afternoon + t_average)/3# рассчет среденесуточной температуры
                        print("Среднесуточная температура по фаренгейту = ", t_average)
                        print("Если вы хотите узнать температуру по цельсию введите 'y', а если нет введите букву 'q'")
                        while True:
                            cel= input("Введите букву")
                            if cel == 'y':
                                t_c = (t_average - 32) / 1.8 # расчет тмпературы по цельсию
                                print("Среднесуточная температура по цельсию = ", t_c,", досвидания! ")
                                exit()
                            elif cel == 'q':
                                print("Досвидания")
                                exit()
                    except(TypeError, ValueError):
                        print("Ошибка!  вы вводите не число! ")
    else:
        print("вы вышли из программы")
        exit()
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
DDDsa
@DDDsa
Вы можете, например, присваивать значение ввода одной и той же переменной (чтобы не плодить проверки), а в except добавить проверку этого значения вот так:
while True:
            if c_f == "c" : # проверка на введенную букву
                while True:
                    try:
                        inp = input("Температура утром ")
                        t_morning = int(inp)
                        inp = input("Температура днем")
                        t_afternoon = int(inp)
                        inp = input("Температура вечером")
                        t_evening = int(inp)
                        t_average = (t_morning + t_afternoon + t_average)/3 # рассчет среденесуточной температуры
                        print("Среднесуточная температура по цельсию = ", t_average)
                        print("Если вы хотите узнать температуру по фаренгейту введите 'y', а если нет введите букву 'q'")
                        while True:
                            far = input("Введите букву")
                            if far == 'y':
                                t_f = t_average * 1.8 + 32 # расчет тмпературы по фаренгейту
                                print("Среднесуточная температура по F = ", t_f,", досвидания! ")
                                exit()
                            elif far == "q":
                                print("Досвидания")
                                exit()
                    except(TypeError, ValueError):
                        if inp.lower() == 'q':
                            print('До свидания')
                            exit()
                        else:
                            print("Ошибка!  вы вводите не число! ")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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