Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 1 / 0
Регистрация: 24.11.2020
Сообщений: 138

Стоя на голове

31.03.2022, 09:08. Показов 1239. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
– Как это вы умеете говорить, стоя на голове? – удивилась Алиса, выволакивая Рыцаря из канавы.
– Это помогает думать, – ответил рыцарь. – Тело всем своим весом давит на голову, и мысли от этого становятся весомее.

Напишите класс Мысль (Thought), экземпляр которого при инициализации принимает аргументы:
– имя владельца;
– вес мысли;
– необязательный аргумент темы мысли, по умолчанию пустой список.

Класс реализует следующую функциональность:
– переворот – overturn(value) – аргумент – вес тела, который давит на голову. При каждом последующем вызове метода происходит попеременно умножение веса мысли на вес тела, а при следующем деление нацело. Полученное значение – вес мысли. При этом меняется тема мысли на следующую в списке (по кругу), если он не пуст;
– add_topic(value) – добавляет тему в конец списка;
– мысли можно сравнивать: сначала по весу, затем по количеству тем в списке, затем по алфавиту владельца. Для этого должны быть реализованы все методы сравнения: ==, !=, <, >, <=, >=;
– строковое представление в виде (если список тем пуст, то после слова тема (topic) ничего не выводится):
Thought of <name>, weight of <weight>, topic <topic[0]>

Пример 1
Ввод Вывод
th = Thought('Jack', 20, ['weather', 'poetry', 'life'])
th.add_topic('job')
print(th)
th.overturn(3)
print(th)
th.overturn(11)
print(th)
th.overturn(4)
print(th)
Thought of Jack, weight of 20, topic weather
Thought of Jack, weight of 60, topic poetry
Thought of Jack, weight of 5, topic life
Thought of Jack, weight of 20, topic job
Пример 2
Ввод Вывод
th = Thought('Jack', 20, ['weather', 'poetry', 'life'])
th1 = Thought('Robin', 20, ['friendship', 'animal', 'films'])
print(th >= th1)
th2 = Thought('Jack', 20, ['music', 'shopping', 'talks'])
print(th == th2)
th2.overturn(3)
print(th, th2, sep='\n')
print(th < th2)
th3 = Thought('Bobin', 15)
print(th3)
False
True
Thought of Jack, weight of 20, topic weather
Thought of Jack, weight of 60, topic shopping
True
Thought of Bobin, weight of 15, topic
Примечания
В файле, сдаваемом в тестирующую систему, не должно быть ничего, кроме класса и, возможно, вспомогательных функций.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2022, 09:08
Ответы с готовыми решениями:

Работать стоя?)
Ого, первый раз слышу о том, чтобы работать стоя) Хотя если подумать, то идея эта действительно толковая. И для организма полезная. Так что...

Персонаж не прыгает, стоя на земле
Здравствуйте! Столкнулся с такой проблемой, что когда игрок, стоя на земле не прыгает. Это зачастую происходит после прыжка с одного...

Если пописать в электрическую розетку, стоя на мокром каменном полу
Если пописать в электрическую розетку, стоя на мокром каменном полу, можно &quot;кони двинуть&quot;? Насколько сильным будет удар током?

1
712 / 351 / 120
Регистрация: 09.12.2020
Сообщений: 918
01.04.2022, 17:31
Лучший ответ Сообщение было отмечено WLRA как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class Thought:
    def __equals(self, other):
        if self.weight == other.weight and self.name == other.name and len(self.themes) == len(other.themes):
            return True
        else:
            return False
 
    def __less(self, other):
        return True if (self.weight < other.weight) \
                       or (self.weight == other.weight and len(self.themes) < len(other.themes)) \
                       or (self.weight == other.weight and len(self.themes) == len(other.themes) 
                           and self.name < other.name) else False
 
    def __more(self, other):
        return True if (self.weight > other.weight) or \
                       (self.weight == other.weight and len(self.themes) > len(other.themes)) \
                       or (self.weight == other.weight and len(self.themes) == len(other.themes) 
                           and self.name > other.name) else False
 
    def __init__(self, n, w, k=[]):
        self.name = n
        self.weight = w
        self.themes = k
        self.__calls = 0
 
    def overturn(self, v):
        self.__calls += 1
        if self.__calls % 2:
            self.weight = self.weight * v
        else:
            self.weight = self.weight // v
 
        if self.themes:
            self.themes.append(self.themes.pop(0))
        else:
            pass
 
    def add_topic(self, v):
        self.themes.append(v)
 
    def __eq__(self, other):
        return Thought.__equals(self, other)
 
    def __ne__(self, other):
        return not Thought.__equals(self, other)
 
    def __gt__(self, other):
        return Thought.__more(self, other)
 
    def __lt__(self, other):
        return Thought.__less(self, other)
 
    def __le__(self, other):
        return any([Thought.__less(self, other), Thought.__equals(self, other)])
 
    def __ge__(self, other):
        return any([Thought.__more(self, other), Thought.__equals(self, other)])
 
    def __str__(self):
        return f'Thought of {self.name}, weight of {self.weight}, topic {self.themes[0] if self.themes else ""}'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.04.2022, 17:31
Помогаю со студенческими работами здесь

Пожалуйста, на колянях стоя, прошу, расшифровуйте ШПЗ, с коим уже которую неделю борюсь
Сам шифр: Ч Р Т Ц Б Я Б Ж Ч Ж Е Э П Е Т Ж Д Л З С Ц Б Ф Р Ъ Р Й Ю У Х Б Ф Т Б Р Ю Е М Р К Ж У П Е М З М Ч Р Х Р П Ъ У М Ц Е М У П У Й...

Как поставить двумерный массив из положения лёжа в положение стоя ( инвертировать, повернуть) одной строчкой?
У меня есть массив: 1 2 3 4 5 6 7 8 я хочу превратить его в: 1 2 3 4 5 6 7 8

Хлам в голове
Доброго времени суток! Задумывались ли вы, что может случиться с человеком, если вместо знаний в голове будет храниться странным образом...

Немецкий язык. Как перевести "стоя, сидя, лёжа"?
Как то переводя текст я (случайно) нашёл в словаре слово im Stehen = стоя Это меня заинтересовало. Сильно заинтересовало. Со светящимися...

Калькулятор в моей голове
Здравствуйте. В моем сознании возникла такая мысль: что такое логическая операция в человеческом мозге? Т.е. если происходит поиск...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru