Домашни > Да върнем левчето обратно! > Решения > Решението на Михаил Георгиев

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

6 точки общо

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

 1#dict comprehension for flex
 2def курс_в_лева(exchange_rates):
 3    return {curr: round(1 / exchange_rates[curr], 4) for curr in exchange_rates}
 4
 5def валута_към_левчета(*args, **kwargs):
 6    all = {}
 7
 8    for curr, value in args:
 9        all[curr] = all.get(curr, 0) + value
10
11    result = []
12    for curr in all:
13        all_values = all[curr]
14
15        lev = round(all_values if curr == 'BGN' else all_values / kwargs[curr], 4)
16
17        result.append((curr, lev))
18    return result
19
20def е_патриотична(amount, exchange_rates):
21    leva = 0
22
23    for curr, value in amount:
24        if curr == 'BGN':
25            leva += round(value, 2)
26        else:
27            leva += round(value / exchange_rates[curr], 2)
28
29    return 'ПАТРИОТИЧНА!' if leva == int(leva) else 'НЕПАТРИОТИЧНА!' #ternary operator for flex

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

OK

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

f1#dict comprehension for flexf1#dict comprehension for flex
2def курс_в_лева(exchange_rates):2def курс_в_лева(exchange_rates):
3    return {curr: round(1 / exchange_rates[curr], 4) for curr in exchange_rates}3    return {curr: round(1 / exchange_rates[curr], 4) for curr in exchange_rates}
44
5def валута_към_левчета(*args, **kwargs):5def валута_към_левчета(*args, **kwargs):
6    all = {}6    all = {}
77
8    for curr, value in args:8    for curr, value in args:
9        all[curr] = all.get(curr, 0) + value9        all[curr] = all.get(curr, 0) + value
1010
11    result = []11    result = []
12    for curr in all:12    for curr in all:
13        all_values = all[curr]13        all_values = all[curr]
1414
t15        if curr == 'BGN':t15        lev = round(all_values if curr == 'BGN' else all_values / kwargs[curr], 4)
16            lev = round(all_values, 4)
17        else:
18            lev = round(all_values / kwargs[curr], 4)
1916
20        result.append((curr, lev))17        result.append((curr, lev))
21    return result18    return result
2219
23def е_патриотична(amount, exchange_rates):20def е_патриотична(amount, exchange_rates):
24    leva = 021    leva = 0
2522
26    for curr, value in amount:23    for curr, value in amount:
27        if curr == 'BGN':24        if curr == 'BGN':
28            leva += round(value, 2)25            leva += round(value, 2)
29        else:26        else:
30            leva += round(value / exchange_rates[curr], 2)27            leva += round(value / exchange_rates[curr], 2)
3128
32    return 'ПАТРИОТИЧНА!' if leva == int(leva) else 'НЕПАТРИОТИЧНА!' #ternary operator for flex29    return 'ПАТРИОТИЧНА!' if leva == int(leva) else 'НЕПАТРИОТИЧНА!' #ternary operator for flex
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op