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

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

6 точки общо

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

 1#exchange_rates = {"EUR": 1.9558, "USD": 1.6718, "DKK": 0.2616}
 2
 3def курс_в_лева(exchange_rates):
 4
 5    for currency, rate in exchange_rates.items():
 6        exchange_rates[currency] = round(1/rate, 4)
 7    return exchange_rates
 8
 9#print(курс_в_лева(exchange_rates))
10
11def валута_към_левчета(*args,**kwargs):
12
13    unique_currencies = {}
14    for currency, amount in args:
15        if currency in unique_currencies:
16            unique_currencies[currency] += amount
17        else:
18            unique_currencies[currency] = amount
19    
20    currency_in_lev = []
21    for currency, amount in unique_currencies.items():
22        if currency in kwargs:
23            currency_in_lev.append((currency, round(amount/kwargs[currency], 4)))
24        elif currency == "BGN":
25            currency_in_lev.append((currency, amount))
26    return currency_in_lev
27
28
29def е_патриотична(amount, exchange_rates):
30    
31    currency_in_lev = валута_към_левчета(*amount, **exchange_rates)
32
33    total_in_lev = round(sum(amount for currency, amount in currency_in_lev), 2)
34
35    if total_in_lev % 1 == 0 :
36        return f"ПАТРИОТИЧНА!"
37    else :
38        return f"НЕПАТРИОТИЧНА!"
39
40# exchange_rates = {"EUR": 0.5, "USD": 0.6, "DKK": 3.8}
41# amount = [("EUR", 1), ("USD", 3), ("DKK", 7.6), ("EUR", 3)]
42# print(е_патриотична(amount, exchange_rates))
43
44# amount = [("EUR", 1), ("USD", 2), ("DKK", 7.6), ("EUR", 3)]
45# print(е_патриотична(amount, exchange_rates))
46# print(валута_към_левчета(
47#     ("EUR", 1.5),
48#     ("USD", 10),
49#     ("DKK", 10),
50#     ("EUR", 2.5),
51#     EUR=0.5,
52#     USD=0.8,
53#     DKK=7,
54# ))
55# print(валута_към_левчета(
56#     ("BGN", 1.5),
57#     ("USD", 10),
58#     USD=0.8,
59# ))

..........
----------------------------------------------------------------------
Ran 10 tests in 0.001s

OK

Дискусия
История
Това решение има само една версия.