1. Главная
  2. Библиотека
  3. Программирование
  4. Напишите класс GoodAndEvil (Добро и Зло) для хранения т...
Разбор задачи

Напишите класс GoodAndEvil (Добро и Зло) для хранения того, что разные люди считают добром или злом, и операций с ним. Экземпляр класса (gae) при инициализации принимает тип good или evil и произвольное число аргументов-признаков. Класс обеспечивает

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Напишите класс GoodAndEvil (Добро и Зло) для хранения того, что разные люди считают добром или злом, и операций с ним. Экземпляр класса (gae) при инициализации принимает тип good или evil и произвольное число аргументов-признаков. Класс обеспечивает

Условие:

Напишите класс GoodAndEvil (Добро и Зло) для хранения того, что разные люди считают добром или злом, и операций с ним.

Экземпляр класса (gae) при инициализации принимает тип good или evil и произвольное число аргументов-признаков. Класс обеспечивает выполнение методов:
\ngae.change() — у экземпляра можно поменять тип: good меняется на evil и наоборот, одновременно меняется регистр первой буквы признаков: прописная становится строчной и наоборот, остальные буквы не меняются;\ngae.expansion(lst) — к признакам добавляются в конец все элементы переданной коллекции;
из экземпляра можно вычесть число: new_gae = gae - n, возвращается новый экземпляр класса с первыми n признаками или всеми, если их меньше, тип у нового экземпляра такой же, как у исходного; исходный экземпляр не меняется;
экземпляр можно умножить на число: gae *= n, каждый признак с длиной, не большей n, удваивается (второй такой же экземпляр записывается сразу за первым);
при вызове экземпляра класса как функции без аргументов возвращается кортеж из количества строк с прописной первой буквой и со строчной первой буквой;
экземпляры класса можно сравнивать: сначала по количеству признаков, затем по количеству признаков с прописной первой буквой, затем по типу по алфавиту;
для печати возвращается строка:\nGoodAndEvil(<тип в одинарных кавычках>, <признаки в одинарных кавычках через запятую и пробел>)

Решение:

  1. Для начала создаём класс GoodAndEvil, который при инициализации получает тип (строку "good" или "evil") и произвольное число признаков. Признаки удобно хранить в списке.

  2. Метод change() должен менять тип с "good" на "evil" и наоборот. При этом для каждого признака надо поменять регистр только первой буквы: если первая буква была прописной, её делаем строчной, а если строчной – прописной. Остальные символы признака остаются без изменений.

  3. Метод expansion(lst) просто добавляет (конкатенирует) в конец списка признаков эл...

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

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

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

Какой метод класса GoodAndEvil отвечает за изменение регистра первой буквы признаков при смене типа объекта (с good на evil и наоборот)?

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

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

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

Топ 3 ошибок

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

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