С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753

Обработка исключений

05.12.2019, 10:04. Показов 3617. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что то не выводит слово ydachno, когда ввожу число
Python
1
2
3
4
5
6
d=input('vvedite celoe cislo: ')
try:
    d=int(d)
    print(ydachno)
except:
    print('choto poshlo ne tak')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2019, 10:04
Ответы с готовыми решениями:

Обработка исключений
Здравствуйте, вопрос простой, но в питоне я 0. Есть скрипт для импорта моделей в blender: import os import bpy path_to_obj_dir...

Обработка исключений
Написал функцию которая возвращает true если простое число, false если нет : def is_prime(number): """Вернуть...

Обработка исключений
Всем добрый день помогите выполнить обработку исключений. Нужно добавить обработку исключений в классы Date и DateTime из ДЗ #20. Для...

38
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
05.12.2019, 10:05
Забыты кавычки.
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.12.2019, 10:38
Только
Python
1
except ValueError:
А то слишком жирно.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
05.12.2019, 12:57  [ТС]
Что то не пойму, чем отличается по результату выполнения этот код от того, что выше?
Python
1
2
3
4
5
6
try:
    n = input('Введите целое число: ')
    n = int(n)
    print("Все нормально. Вы ввели число", n)
except ValueError:
    print("Вы ввели не целое число")
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.12.2019, 13:01
Что ловится конкретное исключение (которое бросает функция int, если у неё не получилось преобразовать аргумент в целое число), в не все исключения.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
05.12.2019, 13:12  [ТС]
Вводил число, а в другой раз буквы или дробное число. Что ещё можно ввести, чтобы понять, в чем отличие?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.12.2019, 13:26
Не понимаю что ты хочешь.

Вот попробуй ещё:
Code
1
2
3
4
5
6
(пустая строка)
123
-123
0.0
0001
fox
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
05.12.2019, 13:57  [ТС]
Имею в виду, что результат работы программы вот этой
Python
1
2
3
4
5
6
d=input('vvedite celoe cislo: ')
try:
    d=int(d)
    print(ydachno)
except:
    print('choto poshlo ne tak')
и вот этой не отличается и не пойму, что дает except ValueError:
Python
1
2
3
4
5
6
try:
    n = input('Введите целое число: ')
    n = int(n)
    print("Все нормально. Вы ввели число", n)
except ValueError:
    print("Вы ввели не целое число")
Собираюсь по нему почитать ещё в других местах и поискать видео, тогда возможно пойму.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
05.12.2019, 14:08
Цитата Сообщение от supmener Посмотреть сообщение
Обработка исключений
и
Цитата Сообщение от supmener Посмотреть сообщение
print("Вы ввели не целое число")
Это не одно и тоже.
То есть вы написали в программе
Python
1
2
try: что-то 
except: print(ха-ха)
это еще не значит что-вы что-то обработали.
Обработка подразумевает логику.
Логика подразумевает нахождение выхода из ошибки.
Выход из ошибки подразумевает ветвление: "либо я сделаю это и программа будет работать так, либо я сделаю вот так и программа будет работать вот так, либо я скажу - не-а, давай-ка лучше залогируем ошибку и упадем, потому что работать при таких данных нельзя."
Указание конкретного типа исключения, которое ловится в данном конкретнтном блоке - это культура программирования.
Пустой except ловит все исключения, даже те, которые не нужно.
1
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
05.12.2019, 14:09
supmener, int вам бросает valueerror при неверном значении, а вы обрабатываете все
1
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
05.12.2019, 15:32
Вот отличия:
Python
1
2
3
4
try:
    raise NotImplementedError
except:
    print('error')
Любое исключение будет поймано. Кстати, PyCharm на этот код будет ругаться, типа слишком жирно.

Python
1
2
3
4
try:
    raise NotImplementedError
except ValueError as e:
    print(e)
Исключение NotImplementedError не будет поймано, как и планировалось.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
07.12.2019, 20:04  [ТС]
Что то ноль не отлавливается.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
try:
    r=input('Введите целое число: ')
    r=int(r)
except ValueError:
    print('Вы что то попутали с вводом')
    try:
        3/0 
    except ZeroDivisionError:
        print('Деление на 0 запрещено')
else:
    print('Все нормально. Введено число',r)
finally:
    print('Конец программы')
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
07.12.2019, 20:12
Отлавливается:
Code
1
2
3
4
Введите целое число: hjh
Вы что то попутали с вводом
Деление на 0 запрещено
Конец программы
Просто деление на ноль написан в блоке, где обрабатывается исключение на неправильный ввод. Ты, наверное, хотел так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
r=input('Введите целое число: ')
try:
    r=int(r)
    3/0 
except ValueError:
    print('Вы что то попутали с вводом')
except ZeroDivisionError:
    print('Деление на 0 запрещено')
else:
    print('Все нормально. Введено число',r)
finally:
    print('finally')
print('Конец программы')
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
07.12.2019, 21:21  [ТС]
В вашем варианте, если ввести 7, то пишет:
Введите целое число: 7
Деление на 0 запрещено
finally
Конец программы

А это должно писать, когда 0 ввели, а когда 7, то должно писать: "Все нормально. Введено число 7".
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.12.2019, 08:09
Ну... можно бросить исключение руками:
Python
1
2
3
r = int(r)
if r == 0:
    raise ZeroDivisionError
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
08.12.2019, 08:10  [ТС]
А как будет выглядеть весь код вместе с этим фрагментом?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.12.2019, 08:19
Это фрагмент помести внутрь блока try-except.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
08.12.2019, 08:32  [ТС]
Не могли бы Вы показать, куда надо вставлять и с какими оступами, а то не работает.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
08.12.2019, 08:38
Покажи свой код.
0
 Аватар для supmener
87 / 95 / 15
Регистрация: 26.06.2013
Сообщений: 4,753
08.12.2019, 08:57  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
r=input('Введите целое число: ')
try:
    r=int(r)
    3/0 
    r = int(r)
    if r == 0:
    raise ZeroDivisionError
except ValueError:
    print('Вы что то попутали с вводом')
except ZeroDivisionError:
    print('Деление на 0 запрещено')
else:
    print('Все нормально. Введено число',r)
finally:
    print('finally')
print('Конец программы')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.12.2019, 08:57
Помогаю со студенческими работами здесь

Обработка исключений
Добрый вечер ! Написал функцию которая возвращает True если число простое и False если наоборот Нужно добавить исключения number - любой...

Обработка исключений
Наткнулся на такой случай-не хочет читать данный код. Выдаёт syntaxError. Как этот обработчик работает?try: k=1/0 except...

Обработка исключений
Здравствуйте. Есть код. def wcourse(fname): soup = BeautifulSoup(open(fname, encoding="utf8"), "lxml") for i in...

Обработка исключений
Здравствуйте. Нахожу названия по коду. Но этих исключений try except не хватает. def wcourse(fname): soup =...

Обработка исключений
Как можно обработать исключение? _tkinter.TclError: bad listbox index "": must be active, anchor, end, @x,y, or a number try: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru