leonardo19 |
|
Темы:
40
Сообщения:
847
Участник с: 25 ноября 2008
|
nafanjaЯ плохой знаток Питона, но в данном случае не согласен: работает совершенно определённо. Если mes задан неправильно, то отрабатывается ветка except и цикл повторяется, если правильно, то печатается результат и цикл прерывается. Я не беру в расчет случаи, когда вместо целого числа вводится дробь или строка - топикстартер спрашивал не об этом. Я предложил не код, а конструкцию. |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
Я бы сделал так:
|
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
leonardo19, calendar.monthrange(year, mes) кидает конкретное исключение IllegalMonthError и тогда твоя конструкция становится определенной
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
nafanjaА мне кажется, что, в конкретном случае, абсолютно без разницы, какое исключение будет перехвачено. Если оно есть, то формат неверный (какая разница, почему) - всё равно надо запрашивать данные заново. |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Anton8830, и на любое исключение выводить сообщение "Месяц должен быть больше 0 и меньше 13"???
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
nafanja А почему нет? Ну, можно написать так: "Месяц должен быть указан целым числом от 1 до 12" Если задано не число, то из пояснения понятно, что требуется. Если ничего не задано или задана дробь - тоже... |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Anton8830, из условия понятно что главным является выявление ошибки в месяце. leonardo19 привел хорошую конструкцию, я слегка конкретизировал на нужном исключении. вроде как больше ничего не требовалось из условия проверять.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
Ещё вариант:
|
Anton8830 |
|
Темы:
23
Сообщения:
175
Участник с: 16 ноября 2013
|
nafanjaПользователи - они такие... Они месяц могут написать как "Дек" или "december" или ещё как... А отлов исключения print (calendar.monthrange (year, month)) в данном случае не поможет. Программа вывалится раньше, не дойдя до этой конструкции... |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
Anton8830не спорю. вопрос в другом, а нужен ли был ТС настолько исчерпывающий ответ который ты ему дал?
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |