1. Главная
  2. Библиотека
  3. Программирование
  4. Напишите программу, отделяющую финтифлюшки от основ рем...
Разбор задачи

Напишите программу, отделяющую финтифлюшки от основ ремесла. Функция craft() принимает произвольное количество кортежей из двух строк: (строка для проверки, проверочная строка). Функция выбирает первые строки из кортежей, в которых либо присутствует

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Разработка и тестирование программного обеспечения
Напишите программу, отделяющую финтифлюшки от основ ремесла. Функция craft() принимает произвольное количество кортежей из двух строк: (строка для проверки, проверочная строка). Функция выбирает первые строки из кортежей, в которых либо присутствует

Условие:

Напишите программу, отделяющую финтифлюшки от основ ремесла.
Функция craft() принимает произвольное количество кортежей из двух строк: (строка для проверки, проверочная строка). Функция выбирает первые строки из кортежей, в которых либо присутствует проверочная строка, либо чётность длины такая же, как у длины проверочной.

Но если хотя бы одна проверочная строка оказалась пустой, то возбуждается стандартное исключение NameError с сообщением: Empty control line.

Если хотя бы в одной проверочной строке есть пробел, то нужно возбудить собственное исключение SpaceError с сообщением: Space in control line.

Если ни одну из строк выбрать не удалось, то возбуждается собственное исключение NoResultError с сообщением: No any line in result.

Если ни одно исключение не возникло, то нужно вернуть список строк в алфавитном порядке.

Исключения следует проверять в порядке, описанном в задаче.
Функция должна только порождать исключения, перехватывать их будет тестирующая система.

Решение:

  1. Сначала нужно перебрать все кортежи. Для каждого кортежа:
    • Проверяем, что вторая строка (контрольная) не пустая. Если встречается пустая – генерируем исключение NameError с сообщением "Empty control line".
  2. После этого нужно пройтись по всем кортежам снова и проверить, что в контрольной строке отсутствует пробел. Если находится пробел, то генерируем исключение SpaceError с сообщением "Space in control line". Это – пользовательское исключение, поэтому его предварительно объявляем.
  3. Далее для каждого кортежа проверяем условие отбора: либо контр...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

В каком порядке должны проверяться условия для возбуждения исключений в функции `craft`?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет