![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.02.2022
Сообщений: 7
|
![]()
Задача:
Ваша программа работает с архивом документов. Каждый документ состоит из списка строк, представляющих собой страницы текста. Ваша задача — написать функцию print_document(pages), которая будет просто распечатывать переданный документ страница за страницей. Иногда в документе попадаются секретные страницы. Они всегда идут в конце, а первая страница секретной части начинается словом «Секретно». Секретную часть печатать не нужно, надо остановиться на последней незасекреченной странице. В случае, когда секретных страниц не было, выведите в конце: «Напечатано без купюр». Если секретные страницы были, выведите «Дальнейшие материалы засекречены». Пример 1 Ввод Вывод print_document(["Обычная страница", "И еще страница", "Секретно Вот этот вот текст не показывать", "Никому", "Никогда"]) Обычная страница И еще страница Дальнейшие материалы засекречены Пример 2 Ввод Вывод print_document(["Пустой трёп", "который", "никому не интересен"]) Пустой трёп который никому не интересен Напечатано без купюр Это была сама задача, а теперь мой код: Код:
|
![]() |
![]() |
![]() |
#2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
По условию сказано распечатать, а вы возвращаете список строк-страниц, поэтому на экране и пустота.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,377
|
![]()
У вас есть список строк - pages
Строки списка можно получить в цикле. Функция печатает допустимые строки и прекращает печать, если находит "волшебное" слово. Причину прекращения печать функция может вернуть в виде логического значения. Пусть это будет переменная flag. Тогда: Код:
Код:
Код:
Код:
Как-то так, ...
|
![]() |
![]() |
![]() |
#4 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Эх, надеялся, что ТС сначала попробует свой код исправить, ну да ладно. Мой вариант, как к обычной печати:
Код:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,377
|
![]()
BDA
Цитата:
И даже если решит, то не выложит. Что у ТС со скобками получилось? Да и с алгоритмом проблема ![]() Не нашёл я этот метод: startswith(). К тому же подумал за расширенный вариант, когда волшебное слово в середине строки (по условию оно конечно в начале, но ...) ![]() Это другая версия. Код:
Как-то так, ...
|
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 09.02.2022
Сообщений: 7
|
![]()
У меня еще возник следующий вопрос: почему код является недостижимым(unreachable) после цикла while True?
Он выделяется желтой полосой в пайчарме, а именно последняя строчка с условием через if Код:
Последний раз редактировалось corpselles; 11.02.2022 в 00:20. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,377
|
![]() Код:
У вас тут ничего нет. Цитата:
Тут нашёл ещё несколько терминов: ![]() https://tunnel.ru/post-chto-znachit-...niya-na-forume
Как-то так, ...
Последний раз редактировалось ViktorR; 11.02.2022 в 00:30. |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 09.02.2022
Сообщений: 7
|
![]()
Там даже не в теле цикла ошибка, а просто код ниже условия не читаем программой
А в самой ошибке пишет "This cod is unreachable" |
![]() |
![]() |
![]() |
#9 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
str.startswith.
Цитата:
![]() Потому что он недостижим. Вы внутри цикла использовали return, который вернет значение k из функции (при этом происходит выход из всей функции, а не только из цикла).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
|
![]() |
![]() |
![]() |
#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 |