Домашни > Функцията, която казва "Ni!" > Решения > Решението на Георги Кунчев

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

10 точки общо

10 успешни теста
0 неуспешни теста
Код (Cover mixed casing)
Скрий всички коментари

 1def function_that_says_ni(*args, **kwargs):
 2    # Define constants
 3    SHRUB_DEFINITIONS = ("храст", "shrub", "bush")
 4    MAX_COST = 42
 5    # Init variables
 6    cost = 0
 7    niceness_unique_vals = set()
 8    # Get list of tuples of all input arguments combined
 9    arg_list = list(map(lambda x: ('', x), args)) + list(kwargs.items())
10    # Collect cost and unique name characters
11    for name, val in arg_list:
12        if type(val) is not dict:
13            continue
14        if val.get('name', '').lower() in SHRUB_DEFINITIONS:
15            cost += val.get('cost', 0)
16            niceness_unique_vals.update(*name)
17    # Determine cost and niceness and return the result
18    if int(cost) and cost <= MAX_COST:
19        if len(niceness_unique_vals) % int(cost) == 0:
20            return f"{cost:.2f}лв"
21    return "Ni!"

..........
----------------------------------------------------------------------
Ran 10 tests in 0.000s

OK

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

f1def function_that_says_ni(*args, **kwargs):f1def function_that_says_ni(*args, **kwargs):
2    # Define constants2    # Define constants
3    SHRUB_DEFINITIONS = ("храст", "shrub", "bush")3    SHRUB_DEFINITIONS = ("храст", "shrub", "bush")
4    MAX_COST = 424    MAX_COST = 42
5    # Init variables5    # Init variables
6    cost = 06    cost = 0
7    niceness_unique_vals = set()7    niceness_unique_vals = set()
8    # Get list of tuples of all input arguments combined8    # Get list of tuples of all input arguments combined
9    arg_list = list(map(lambda x: ('', x), args)) + list(kwargs.items())9    arg_list = list(map(lambda x: ('', x), args)) + list(kwargs.items())
10    # Collect cost and unique name characters10    # Collect cost and unique name characters
11    for name, val in arg_list:11    for name, val in arg_list:
12        if type(val) is not dict:12        if type(val) is not dict:
13            continue13            continue
t14        if val.get('name', '') in SHRUB_DEFINITIONS:t14        if val.get('name', '').lower() in SHRUB_DEFINITIONS:
15            cost += val.get('cost', 0)15            cost += val.get('cost', 0)
16            niceness_unique_vals.update(*name)16            niceness_unique_vals.update(*name)
17    # Determine cost and niceness and return the result17    # Determine cost and niceness and return the result
18    if int(cost) and cost <= MAX_COST:18    if int(cost) and cost <= MAX_COST:
19        if len(niceness_unique_vals) % int(cost) == 0:19        if len(niceness_unique_vals) % int(cost) == 0:
20            return f"{cost:.2f}лв"20            return f"{cost:.2f}лв"
21    return "Ni!"21    return "Ni!"
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op