Предизвикателства > Мемник > Решения > Решението на Ирина Влайкова

Резултати
2 точки от тестове
0 точки от учител

2 точки общо

4 успешни теста
1 неуспешни теста
Код
Скрий всички коментари

 1memory = []
 2
 3def normalise_name(name):
 4    words = name.split("_")
 5    result = []
 6    for word in words:
 7        result.append(word.capitalize())
 8
 9    return " ".join(result)
10
11def memnick(*funcs):
12    if not funcs:
13        def decorator(func):
14            def remember_phrase(*args, **kwargs):
15                phrase = func(*args, **kwargs)
16                person_speaking_to = phrase.split(", ", 1)[0]
17                speaker = normalise_name(func.__name__)
18
19                memory_record = (person_speaking_to, speaker, phrase)
20                if memory_record not in memory:
21                    memory.append(memory_record)
22
23                return phrase
24
25            remember_phrase.__name__ = func.__name__
26            return remember_phrase
27
28        return decorator
29
30    else:
31        names = [normalise_name(func.__name__) for func in funcs]
32        result = []
33        for person_speaking_to, speaker, phrase in memory:
34            if person_speaking_to in names:
35                result.append(f"С гласа на {speaker}: {phrase}")
36
37        return result

..F..
======================================================================
FAIL: test_memnick_memorizes (test.TestMemnick.test_memnick_memorizes)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 51, in test_memnick_memorizes
self.assertEqual(
~~~~~~~~~~~~~~~~^
[
^
...<5 lines>...
solution.memnick(божана, емил),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С гласа на Лазар: Божана, може би ще те любя.', 'С г[166 chars]ах!'] != ['С гласа на Бай Венци: Емил, айде да играем шах!', 'С[166 chars]бя.']

First differing element 0:
'С гласа на Лазар: Божана, може би ще те любя.'
'С гласа на Бай Венци: Емил, айде да играем шах!'

+ ['С гласа на Бай Венци: Емил, айде да играем шах!',
- ['С гласа на Лазар: Божана, може би ще те любя.',
? ^

+ 'С гласа на Лазар: Божана, може би ще те любя.',
? ^

'С гласа на Митака: Божана, на този етап не съм сигурен дали искам да те '
'любя.',
- 'С гласа на Почекаин: Божана, ще те любя.',
? ^

+ 'С гласа на Почекаин: Божана, ще те любя.']
? ^

- 'С гласа на Бай Венци: Емил, айде да играем шах!']

----------------------------------------------------------------------
Ran 5 tests in 0.002s

FAILED (failures=1)

Дискусия
Виктор Бечев
15.03.2026 14:13

Отвъд горното - изглежда чисто. Малко ми се иска да ти дам бонус точка, като единственият човек, който `split`-ва по `", "`, както на мен ми идва отвътре, нищо, че и само `","` върши работа. Интервалът отзад стимулира добро форматиране на текста. Приеми, че имаш бонус точка в сърцето ми.
История
Това решение има само една версия.