![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Paranorma |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Народ! На ровном месте застопорилась! Помогите, плиз!
Делается ввод: весной природа просыпается Вывод: в п п е р р с и о н р с о о ы й д п а а е т с я Это здание следует делать так. Функция get_lines (она выглядит так):
Функция get_max_len она определяет длинну самой длинной строки в списке. Функция fixed_len_list получает в качестве параметров: lst - список строк разной длинны n - целое число В качестве результата функция выдает другой список, полученный из исходного так, что все строки стали длинны n длинные строки обрезаны, к коротким же в конец добавлены пробелы. Функция turn_list получает список строк, а выдает новый список, в котором первая строка составлена из первых символов строк исходного списка. Вторая строка из вторых символов. Пример: ["abc", "123"] превращается в ["а1", "b2", "с3"] Функция print_list будет выглядеть так:
Функция main с помощью указанных выше ф-ций вводит список строк определяет длинну самой длинной строки введенный список превращает в список строк постоянной длинны с помощью turn_list поворачивает строки вертикально печатает строки. Пожалуйста, скажите, как написать ф-ции get_max_len, fixed_len_list и turn_list Как написать main я уже по ходу соображу. Заранее большое спасибо! |
||||
|
|||||
| Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
Если есть проблемы с пониманием или запрет на использование higher order functions и list comprehensions, то всё это можно переписать так:
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
| Paranorma |
|
||||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Народ!
Помогите, плиз! Я тут с преподом пообщалась и он мне дал дельный совет - проверить по отдельности работу каждой функции, что я и сделала:
И функция print_list, так как она должна печатать строки по буквам - одну под другой, то будет выглядеть так:
Я эти функции привожу для наглядности, чтоб понятно было, как и что. Я попробовала функцию main записать так:
В общем виде вся программа выглядит так:
Но у меня она не работает так, как надо. Вылезает ошибка указывающая на строку
Как поправить main? В чем ошибка? |
||||||||||||||
|
|||||||||||||||
| Void |
|
||||||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
Ошибок много.
Одна из них моя: неправильно написал второй вариант функции fixed_len_list. Надо так:
Чуете разницу? А всего-то хотел сэкономить на лишнем копировании, когда len(s) == n. Преждевременная оптимизация — зло.
Тут налицо полное непонимание того, что делает код. Построчно: в переменную a занесли введённый список строк, в b — максимальную длину. Функция fixed_len_list ожидает первым параметром список строк, а вторым — требуемую длину строки в результирующем списке. А что получает? Максимальную длину и какое-то магическое число. А надо:
Непонятно с какой целью изменена функция turn_list. Похоже на неудачную попытку избавиться от цикла for ... range. Что в нём такого криминального? Функция работала как надо. И наконец, print_list выведет совсем не то, что ожидалось. Надо переписать её так:
Итоговый код:
Стоит обратить внимание на последнюю строчку. Этот «магический» if будет запускать main только в том случае, если скрипт запускается как самостоятельная программа. Многие (и люди, и фреймворки автоматического тестирования) имеют привычку импортировать его как модуль и тестировать, как посоветовал преподаватель, по функциям. И запуск main тут ни к чему. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||||||
|
|||||||||||
| Paranorma |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Большое спасибо за помощь)))
|
|||
|
||||
| Paranorma |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Есть еще один вопросик.
Мне препод предложил эту задачку импортировать по разным модулям следующим образом: Ф-ции:
и
Поместить в модуль first. В модуль second поместить ф-ции
И в модуль third поместить только это:
Надо один файл импортировать в другой... Читала учебник, но не поняла, как мне быть... Я написала в файле first "import second" В файле second написала import third Но и это видимо не верно, а главное что написать в в файле third? PLEASE HELP!!! SOS!!! |
||||||||
|
|||||||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
В модули first и second (бр-р, ну и названия) раскладываем функции, как сказано, ничего не добавляем.
В модуле third пишем:
Учебник почитать ещё раз. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |