Форум сайта python.su
0
maxwellА почему бы и нет?
caesar('xyz', 1) должен возвращать ‘yza’, а не следующие символы по ASCII.
maxwellДля обучения вообще не стоит давать решения :)
Для «обучения» не обязательно писать все в одну строчку, тем более что это напрочь отбивает понимание «эффективности» программы.
maxwellНасколько помню модульную арифметику - таки даёт.
остаток от деления на 255 не дает «правильного» решения.
maxwellС чего вдруг?
В случае с русскими символами работать вообще не будет.
Отредактировано (Сен. 20, 2010 22:26:16)
Офлайн
0
knkd,
А почему бы и нет?Да, алфавит нужен, но я детям даю конкретное задание — используя ASCII получить «правильный Цезарь», т.е. именно поворот алфавита.
В любом случае придётся выбирать таблицу символов, так почему бы не воспользоваться стандартной?
(Кстати, варьируя ((char + X)%Y) легко можно выбрать в ASCII нужный диапазон ;))
Для обучения вообще не стоит давать решения :)Ну, если сложность разбора заключается в использовании специфических конструкций, которые ничего общего с программированием не имеют, то вы абсолютно правы.
А если и давать то такие которые требуют для своего разбора больше труда чем для самостоятельного написания :) :)
Насколько помню модульную арифметику - таки даёт.Модуль 255 дает числовой диапазон от 0..254, но это не относится к задаче.
Офлайн
0
maxwellупс… :)
Модуль 255 дает числовой диапазон от 0..254
maxwellДык ASCII это ведь тоже алфавит. И мы его прибавлением по модулю поворачиваем.
используя ASCII получить «правильный Цезарь», т.е. именно поворот алфавита.
maxwellЕсли уж говорить за эффективность - за конкатенацию в цикле нужно бить по пальцам линейкой :)
тем более что это напрочь отбивает понимание «эффективности» программы.
Отредактировано (Сен. 21, 2010 01:02:04)
Офлайн
0
knkd, я нигде и не утверждал, что то решение хорошее :)
Остается надеется, что автор еще зайдет в этот топик и прочитает все что было написано после 7го ответа. ;)
Офлайн
0
все прочитал, не переживайте :)
Офлайн