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

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

10 точки общо

10 успешни теста
0 неуспешни теста
Код (🌳🛠️🌳)

 1def function_that_says_ni(*args, **kwargs):
 2
 3    BUSH_VALUES_LOWER = ("храст", "shrub", "bush")
 4
 5    summation = 0
 6
 7    used_letters = set();
 8
 9
10    for value in args:
11
12        if isinstance(value, dict) and isinstance(name := value.get("name"), str) and name.lower() in BUSH_VALUES_LOWER:
13
14            if(price := value.get("cost")):
15
16                summation += price
17
18
19    for key, value in kwargs.items():
20
21        if isinstance(value, dict) and isinstance(name := value.get("name"), str) and name.lower() in BUSH_VALUES_LOWER:
22
23            used_letters |= set(key)
24
25            if price := value.get("cost"):
26
27                summation += price
28
29    floored_price = int(summation)
30    
31    is_valid_letter = lambda x: isinstance(x, str) and (x.islower() or x == '_')
32    
33    number_of_unique_letters = sum(1 for letter in used_letters if is_valid_letter(letter))
34    
35    if(summation > 42 or floored_price == 0 or number_of_unique_letters % floored_price != 0):
36        return "Ni!"
37
38
39    return f"{summation:.2f}лв"

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

OK

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

f1def function_that_says_ni(*args, **kwargs):f1def function_that_says_ni(*args, **kwargs):
nn2 
2    BUSH_VALUES_LOWER = ("храст", "shrub", "bush")3    BUSH_VALUES_LOWER = ("храст", "shrub", "bush")
nn4 
3    summation = 05    summation = 0
nn6 
4    used_letters = set();7    used_letters = set();
58
nn9 
6    for value in args:10    for value in args:
nn11 
7        if(isinstance(value, dict) and isinstance(name := value.get("name"), str) and name.lower() in BUSH_VALUES_LOWER):12        if isinstance(value, dict) and isinstance(name := value.get("name"), str) and name.lower() in BUSH_VALUES_LOWER:
13 
8            if(price := value.get("cost")):14            if(price := value.get("cost")):
n9                summation += pricen15 
10    
11    for key, value in kwargs.items():
12        if(isinstance(value, dict) and isinstance(name := value.get("name"), str) and name.lower() in BUSH_VALUES_LOWER):
13            used_letters |= set(key)
14            if(price := value.get("cost")):
15                summation += price16                summation += price
1617
n17    if(summation > 42 or (floored_price := int(summation)) == 0 or (sum(1 for letter in used_letters if isinstance(letter, str) and (letter.islower() or letter == '_')))  % floored_price != 0):n18 
19    for key, value in kwargs.items():
20 
21        if isinstance(value, dict) and isinstance(name := value.get("name"), str) and name.lower() in BUSH_VALUES_LOWER:
22 
23            used_letters |= set(key)
24 
25            if price := value.get("cost"):
26 
27                summation += price
28 
29    floored_price = int(summation)
30    
31    is_valid_letter = lambda x: isinstance(x, str) and (x.islower() or x == '_')
32    
33    number_of_unique_letters = sum(1 for letter in used_letters if is_valid_letter(letter))
34    
35    if(summation > 42 or floored_price == 0 or number_of_unique_letters % floored_price != 0):
18        return "Ni!"36        return "Ni!"
1937
tt38 
20    return f"{summation:.2f}лв"39    return f"{summation:.2f}лв"
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op