Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 06.04.2020
Сообщений: 16

Мимимишный мимиметр

11.05.2022, 21:05. Показов 5869. Ответов 3

Студворк — интернет-сервис помощи студентам
Хорошо бы автоматизировать подсчет лайков. Напишите базовый класс Liked, который подсчитывает количество эмодзи разных типов, например, таких:

Code
1
:) ) ( ;) :( ;(
При инициализации экземпляр класса принимает произвольное количество строк, а при вызове метода likes() возвращается словарь: ключи – эмодзи, значения – количество штук. Если что-то не встречалось, то ключ не создается.

Производный от базового класс MiMiMi считает лайки только в строках с котиками (cat, kitten). Не создавайте метод likes в производном классе, используйте метод базового класса!

Пример 1
Ввод
Python
1
2
3
lines = ["Hi, ;)!", "How are you))", "Well ;)?"]
lk = Liked(*lines)
print(lk.likes())
Вывод
Code
1
{';)': 2, ')': 2}
Пример 2
Ввод
Python
1
2
3
4
5
lines = ["What a cute kitten :):)", "I love it:)",
         "So pretty cat:))))", "See, kitty :)",
         "What happened to the cat ;("]
mi = MiMiMi(*lines)
print(mi.likes())
Вывод
Code
1
{':)': 3, ')': 3, ';(': 1}
0
0 / 0 / 0
Регистрация: 08.05.2022
Сообщений: 7
25.03.2023, 06:11
Poddelka364, Привет! Задача решилась?
0
0 / 0 / 0
Регистрация: 02.04.2023
Сообщений: 1
02.04.2023, 08:04
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
class Liked:
    def __init__(self, *args):
        self.ls = list(args[:])
 
    def likes(self):
        if self.__class__ == Liked:
            f = {}
            em = ":) ) ( ;) :( ;(".split(" ")
 
            for i in self.ls:
                i = i + "a"
                for j in range(len(i) - 1):
 
                    if (i[j] + i[j + 1]) in em:
                        if (i[j] + i[j + 1]) not in f:
                            f[i[j] + i[j + 1]] = 0
                            f[i[j] + i[j + 1]] += 1
                        else:
                            f[i[j] + i[j + 1]] += 1
 
                    elif (i[j] == "(" or i[j] == ")") and i[j - 1] not in [";", ":"]:
                        if (i[j]) not in f:
                            f[i[j]] = 0
                            f[i[j]] += 1
                        else:
                            f[i[j]] += 1
 
            return f
        else:
            f = {}
            em = ":) ) ( ;) :( ;(".split(" ")
            for i in self.ls:
                if "cat" in i or "kitten" in i:
                    i = i + "a"
                    for j in range(len(i) - 1):
 
                        if (i[j] + i[j + 1]) in em:
                            if (i[j] + i[j + 1]) not in f:
                                f[i[j] + i[j + 1]] = 0
                                f[i[j] + i[j + 1]] += 1
                            else:
                                f[i[j] + i[j + 1]] += 1
 
                        elif (i[j] == "(" or i[j] == ")") and i[j - 1] not in [";", ":"]:
                            if (i[j]) not in f:
                                f[i[j]] = 0
                                f[i[j]] += 1
                            else:
                                f[i[j]] += 1
                else:
                    continue
            return f
 
 
class MiMiMi(Liked):
    pass
0
1 / 1 / 0
Регистрация: 30.06.2024
Сообщений: 1
30.06.2024, 13:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Liked:
    def __init__(self, *strings):
        self.lines = list(strings)
        
    def likes(self):
        global likes
        out = {}
        for line in self.lines:
            for like in [':)', ';)', ':(', ';(', ')', '(']:
                if like in line:
                    if like in out:
                        out[like] += line.count(like)
                    else:
                        out[like] = line.count(like)
                line = line.replace(like, '')
        return out
    
    
class MiMiMi(Liked):
    def __init__(self, *strings):
        self.lines = [line for line in strings if 'cat' in line or 'kitten' in line]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Функция установки текстового статуса в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru