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`-ва по `", "`, както на мен ми идва отвътре, нищо, че и само `","` върши работа. Интервалът отзад стимулира добро форматиране на текста.
Приеми, че имаш бонус точка в сърцето ми.
|
15.03.2026 14:08