Как использовать try except в python?
скрин из пайчарма кинул, там красным 14 строка подсвечено и снизу трейсбек длинный. пишу по видео с ютуба, у меня после него ничего дальше не, а в видео у него всё идёт.
Ваш вопрос
скрин из пайчарма кинул, там красным 14 строка подсвечено и снизу трейсбек длинный. пишу по видео с ютуба, у меня после него ничего дальше не, а в видео у него всё идёт.
4.20
Суть в одной конструкции: while True: try: обрабатываешь ввод, break при успехе, except ValueError: сообщение и цикл идёт по новой.
Разворачиваем. Бесконечный while True держит программу в режиме "спрашивай, пока не получится". Внутри try кладёшь строку, которая может упасть — обычно int(input(...)). Если преобразование прошло, сразу break, чтобы выйти из цикла. Если нет — управление уходит в except, печатает сообщение, и цикл while без break просто начинается заново, снова спрашивая ввод.
Если операций несколько и падать может по-разному — добавляй ещё except под другой тип ошибки, каждый со своим сообщением, а не сваливай всё в один голый except.
Задача | Как решить через try except Не дать программе упасть от плохого ввода | Обернуть строку с преобразованием типа в try Дать пользователю ввести заново | Поместить try except внутрь цикла while True Выйти из цикла после успешного ввода | break внутри try сразу после успешного преобразования Показать понятное сообщение об ошибке | print внутри except с текстом для пользователя
Рабочий пример по шагам. Заведи бесконечный цикл while True:, внутри него try: и строка число = int(input('Введите число: ')). Дальше после успешного присваивания сразу break, чтобы выйти из цикла. Строкой ниже except ValueError: и print('Это не похоже на число, попробуйте ещё раз').
Как это работает. Пока пользователь вводит не число, int() будет выбрасывать ValueError на каждой попытке, except будет его ловить, а цикл while True продолжит крутиться, снова показывая приглашение ввести число. Как только ввод корректный, break прервёт цикл, и переменная число будет готова к использованию дальше в программе.
Частая ошибка. Забыть про break внутри try — тогда программа будет спрашивать число даже после правильного ввода, потому что ничего не останавливает цикл.
Расширение на несколько ошибок. Если операций несколько, например деление, можно добавить ещё except ZeroDivisionError: отдельной веткой, чтобы разные проблемы обрабатывались по-разному, а не одним общим сообщением.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
v4-flash
v4-flash
Как использовать try except в python?