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

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

1 точки общо

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

 1def no_it_isnt(args=[]):
 2    isnt_args = []
 3    for arg in reversed(args):
 4        if isinstance(arg, bool):
 5            isnt_args.append(not arg)
 6        elif isinstance(arg, str):
 7            isnt_args.append(arg[::-1])
 8        else:
 9            isnt_args.append(-arg)
10    return isnt_args

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

OK

Дискусия
Георги Кунчев
19.10.2023 09:05

Според мен трите отделни функции са излишни. Прекалено са прости, за да се отделят, но не държа да ги махаш. Твое е решението.
История

n1def rev_num(arg):n
2    return -arg
3 
4def rev_bool(arg):
5    return not arg
6 
7def rev_str(arg):
8    return arg[::-1]
9 
10def no_it_isnt(args = []):1def no_it_isnt(args=[]):
11    isnt_args = []2    isnt_args = []
12    for arg in reversed(args):3    for arg in reversed(args):
13        if isinstance(arg, bool):4        if isinstance(arg, bool):
n14            isnt_args.append(rev_bool(arg))n5            isnt_args.append(noarg)
15        elif isinstance(arg, str):6        elif isinstance(arg, str):
n16            isnt_args.append(rev_str(arg))n7            isnt_args.append(arg[::-1])
17        else:8        else:
t18            isnt_args.append(rev_num(arg))t9            isnt_args.append(-arg)
19    return isnt_args10    return isnt_args
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op

f1def rev_num(arg):f1def rev_num(arg):
2    return -arg2    return -arg
33
4def rev_bool(arg):4def rev_bool(arg):
5    return not arg5    return not arg
66
7def rev_str(arg):7def rev_str(arg):
8    return arg[::-1]8    return arg[::-1]
99
10def no_it_isnt(args = []):10def no_it_isnt(args = []):
11    isnt_args = []11    isnt_args = []
12    for arg in reversed(args):12    for arg in reversed(args):
13        if isinstance(arg, bool):13        if isinstance(arg, bool):
14            isnt_args.append(rev_bool(arg))14            isnt_args.append(rev_bool(arg))
15        elif isinstance(arg, str):15        elif isinstance(arg, str):
16            isnt_args.append(rev_str(arg))16            isnt_args.append(rev_str(arg))
17        else:17        else:
18            isnt_args.append(rev_num(arg))18            isnt_args.append(rev_num(arg))
19    return isnt_args19    return isnt_args
t20 t
21print(no_it_isnt([1, -3.14, True, 'abc', 0]))
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op