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

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

0 точки общо

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

 1memory={}
 2def memnick(*args):
 3    if len(args) == 0:
 4        def decorator(func):
 5            data = func()
 6            name, phrase = data.split(",", 1)
 7            if name not in memory:
 8                memory[name] = [phrase]
 9            else:
10                memory[name].append(phrase)
11            return func
12        return decorator
13    else:
14        to_return = []
15        for arg in args:
16            person = arg.__name__.capitalize()
17            if person in memory:
18                for phrase in memory[person]:
19                    to_return.append(f"С гласа на {person}: {phrase}")
20                    
21        return to_return
22    

EFF.F
======================================================================
ERROR: test_memnick_decorates_variable_functions (test.TestMemnick.test_memnick_decorates_variable_functions)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 108, in test_memnick_decorates_variable_functions
solution.memnick()(граматиков)("Капан 1", "Капан 2", "кос", "друг кос", утрепан_от_мамника=True)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/tmp/solution.py", line 5, in decorator
data = func()
TypeError: TestMemnick.test_memnick_decorates_variable_functions.<locals>.граматиков() missing 2 required positional arguments: 'фото_капан_1' and 'фото_капан_2'

======================================================================
FAIL: test_memnick_does_not_memorize_repetitions (test.TestMemnick.test_memnick_does_not_memorize_repetitions)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 76, in test_memnick_does_not_memorize_repetitions
self.assertEqual(
~~~~~~~~~~~~~~~~^
["С гласа на Бай Венци: Емил, айде да играем шах!"],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
solution.memnick(емил),
^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С гласа на Бай Венци: Емил, айде да играем шах!'] != ['С гласа на Емил: айде да играем шах!', 'С гласа на [187 chars]ах!']

First differing element 0:
'С гласа на Бай Венци: Емил, айде да играем шах!'
'С гласа на Емил: айде да играем шах!'

Second list contains 5 additional elements.
First extra element 1:
'С гласа на Емил: айде да играем шах!'

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

+ ['С гласа на Емил: айде да играем шах!',
? ^^ ^

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

======================================================================
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]ах!'] != ['С гласа на Божана: може би ще те любя.', 'С гласа н[134 chars]ах!']

First differing element 0:
'С гласа на Лазар: Божана, може би ще те любя.'
'С гласа на Божана: може би ще те любя.'

Diff is 729 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_memnick_splits_properly (test.TestMemnick.test_memnick_splits_properly)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 89, in test_memnick_splits_properly
self.assertEqual(
~~~~~~~~~~~~~~~~^
["С гласа на Емил: Бай Венци, кажи ми за рисунката."],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
solution.memnick(бай_венци),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
AssertionError: Lists differ: ['С гласа на Емил: Бай Венци, кажи ми за рисунката.'] != []

First list contains 1 additional elements.
First extra element 0:
'С гласа на Емил: Бай Венци, кажи ми за рисунката.'

- ['С гласа на Емил: Бай Венци, кажи ми за рисунката.']
+ []

----------------------------------------------------------------------
Ran 5 tests in 0.004s

FAILED (failures=3, errors=1)

Дискусия
История

f1memory={}f1memory={}
2def memnick(*args):2def memnick(*args):
3    if len(args) == 0:3    if len(args) == 0:
4        def decorator(func):4        def decorator(func):
5            data = func()5            data = func()
6            name, phrase = data.split(",", 1)6            name, phrase = data.split(",", 1)
7            if name not in memory:7            if name not in memory:
8                memory[name] = [phrase]8                memory[name] = [phrase]
9            else:9            else:
10                memory[name].append(phrase)10                memory[name].append(phrase)
11            return func11            return func
12        return decorator12        return decorator
13    else:13    else:
14        to_return = []14        to_return = []
15        for arg in args:15        for arg in args:
16            person = arg.__name__.capitalize()16            person = arg.__name__.capitalize()
17            if person in memory:17            if person in memory:
18                for phrase in memory[person]:18                for phrase in memory[person]:
19                    to_return.append(f"С гласа на {person}: {phrase}")19                    to_return.append(f"С гласа на {person}: {phrase}")
20                    20                    
21        return to_return21        return to_return
22    22    
t23 t
24@memnick()
25def божана():
26    return "Почекаин, ти си луд!"
27 
28божана()
29 
30@memnick()
31def бай_венци():
32    return "Емил, айде да играем шах!"
33 
34бай_венци()
35 
36@memnick()
37def бай_венци():
38    return "Емил, гладен съм!"
39 
40бай_венци()
41 
42@memnick()
43def емил():
44    return "Божана, намери сина ми."
45 
46емил()
47 
48@memnick()
49def емил():
50    return "Почекаин, нищо не става от тебе."
51 
52емил()
53 
54@memnick()
55def почекаин():
56    return "Божана, ще те любя."
57 
58почекаин()
59print(memnick(емил, божана))
60print(memnick(бай_венци))
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op