Предизвикателства > Полиморфичен негативизъм > Решения > Решението на Цветелина Цветанова

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

1 точки общо

5 успешни теста
0 неуспешни теста
Код

 1def no_it_isnt(list):
 2    result = []
 3    for item in list:
 4        result.append(reverse_item(type(item))(item))
 5    return result[::-1]
 6
 7def reverse_item(type):
 8    if type is int or type is float:
 9        return reverse_num
10    if type is str:
11        return reverse_str
12    if type is bool:
13        return reverse_bool
14
15    def default(item):
16        pass
17    return default
18
19def reverse_num(num):
20    return -num
21
22def reverse_str(str):
23    return str[::-1]
24
25def reverse_bool(bool):
26    return not bool

.....
----------------------------------------------------------------------
Ran 5 tests in 0.000s

OK

Дискусия
Георги Кунчев
18.10.2023 11:46

Интересна концепция с всички функции и функции, които връщат функции. За текущата задача според мен е прекалено, но пък добре си си поиграла. Просто споменвам, че ако наистина трябва да решиш този проблем, една функция с 6-7 реда ще е напълно валидна и достатъчна.
История

f1def no_it_isnt(list):f1def no_it_isnt(list):
2    result = []2    result = []
3    for item in list:3    for item in list:
4        result.append(reverse_item(type(item))(item))4        result.append(reverse_item(type(item))(item))
n5    return result[-1::-1]n5    return result[::-1]
66
7def reverse_item(type):7def reverse_item(type):
8    if type is int or type is float:8    if type is int or type is float:
9        return reverse_num9        return reverse_num
10    if type is str:10    if type is str:
11        return reverse_str11        return reverse_str
12    if type is bool:12    if type is bool:
13        return reverse_bool13        return reverse_bool
1414
15    def default(item):15    def default(item):
16        pass16        pass
17    return default17    return default
1818
19def reverse_num(num):19def reverse_num(num):
20    return -num20    return -num
2121
22def reverse_str(str):22def reverse_str(str):
t23    return str[-1::-1]t23    return str[::-1]
2424
25def reverse_bool(bool):25def reverse_bool(bool):
26    return not bool26    return not bool
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op