|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.02.2022, 03:43 | #1 |
Регистрация: 09.02.2022
Сообщений: 7
|
Задача "Секретные материалы"
Задача:
Ваша программа работает с архивом документов. Каждый документ состоит из списка строк, представляющих собой страницы текста. Ваша задача — написать функцию print_document(pages), которая будет просто распечатывать переданный документ страница за страницей. Иногда в документе попадаются секретные страницы. Они всегда идут в конце, а первая страница секретной части начинается словом «Секретно». Секретную часть печатать не нужно, надо остановиться на последней незасекреченной странице. В случае, когда секретных страниц не было, выведите в конце: «Напечатано без купюр». Если секретные страницы были, выведите «Дальнейшие материалы засекречены». Пример 1 Ввод Вывод print_document(["Обычная страница", "И еще страница", "Секретно Вот этот вот текст не показывать", "Никому", "Никогда"]) Обычная страница И еще страница Дальнейшие материалы засекречены Пример 2 Ввод Вывод print_document(["Пустой трёп", "который", "никому не интересен"]) Пустой трёп который никому не интересен Напечатано без купюр Это была сама задача, а теперь мой код: Код:
|
10.02.2022, 05:34 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
По условию сказано распечатать, а вы возвращаете список строк-страниц, поэтому на экране и пустота.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
10.02.2022, 14:50 | #3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
У вас есть список строк - pages
Строки списка можно получить в цикле. Функция печатает допустимые строки и прекращает печать, если находит "волшебное" слово. Причину прекращения печать функция может вернуть в виде логического значения. Пусть это будет переменная flag. Тогда: Код:
Код:
Код:
Код:
Как-то так, ...
|
10.02.2022, 22:12 | #4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Эх, надеялся, что ТС сначала попробует свой код исправить, ну да ладно. Мой вариант, как к обычной печати:
Код:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
10.02.2022, 22:43 | #5 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
BDA
Цитата:
И даже если решит, то не выложит. Что у ТС со скобками получилось? Да и с алгоритмом проблема Не нашёл я этот метод: startswith(). К тому же подумал за расширенный вариант, когда волшебное слово в середине строки (по условию оно конечно в начале, но ...) Это другая версия. Код:
Как-то так, ...
|
|
11.02.2022, 00:15 | #6 |
Регистрация: 09.02.2022
Сообщений: 7
|
У меня еще возник следующий вопрос: почему код является недостижимым(unreachable) после цикла while True?
Он выделяется желтой полосой в пайчарме, а именно последняя строчка с условием через if Код:
Последний раз редактировалось corpselles; 11.02.2022 в 00:20. |
11.02.2022, 00:21 | #7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Код:
У вас тут ничего нет. Цитата:
Тут нашёл ещё несколько терминов: https://tunnel.ru/post-chto-znachit-...niya-na-forume
Как-то так, ...
Последний раз редактировалось ViktorR; 11.02.2022 в 00:30. |
|
11.02.2022, 00:59 | #8 |
Регистрация: 09.02.2022
Сообщений: 7
|
Там даже не в теле цикла ошибка, а просто код ниже условия не читаем программой
А в самой ошибке пишет "This cod is unreachable" |
11.02.2022, 01:28 | #9 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
str.startswith.
Цитата:
Потому что он недостижим. Вы внутри цикла использовали return, который вернет значение k из функции (при этом происходит выход из всей функции, а не только из цикла).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
13.02.2022, 01:30 | #10 |
Регистрация: 09.02.2022
Сообщений: 7
|
Всее, я видоизменил чутка свой код, но получил нужное решение задачи. Все-таки сделал через список, как по мне, так проще)
Но вот мне кажется, что тут здесь где-то есть излишество в переменных k и count, то есть это я к тому, что одну из них можно как-нибудь сократить и переделать задачу Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" | Бахтиёр1916 | Windows | 1 | 05.04.2017 12:53 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" | Sandakan01 | Помощь студентам | 1 | 24.02.2016 03:20 |