1from collections import defaultdict
2
3def курс_в_лева(exchange_rates):
4
5 exchange_rates_bg = {}
6 for key, value in exchange_rates.items():
7 if len(key) != 3:
8 continue
9 exchange_rates_bg[key] = round(1 / value, 4)
10
11 return exchange_rates_bg
12
13def валута_към_левчета(*args, **kwargs):
14
15 sums = defaultdict(float)
16 for currency, amount in args:
17 sums[currency] += amount
18
19 result = []
20 for currency, amount in sums.items():
21 if currency == "BGN":
22 leva = amount
23 else:
24 rate = kwargs[currency]
25 leva = amount / rate
26 result.append((currency, round(leva, 4)))
27
28 return result
29
30def е_валиден_лев(num):
31 return abs(num - round(num, 2)) < 1e-9
32
33def е_патриотична(amounts, exchange_rates):
34 sums = defaultdict(float)
35 for currency, amount in amounts:
36 sums[currency] += amount
37
38 result = 0
39 for currency, amount in sums.items():
40 result += amount / exchange_rates[currency]
41
42 return "ПАТРИОТИЧНА!" if е_валиден_лев(result) else "НЕПАТРИОТИЧНА!"
43
44# exchange_rates = {"EUR": 1.9558, "USD": 1.6718, "DKK": 0.2616}
45# print(курс_в_лева(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# exchange_rates = {"EUR": 0.5, "USD": 0.6, "DKK": 3.8}
56# amount = [("EUR", 1), ("USD", 3), ("DKK", 7.6), ("EUR", 3)]
57# print(е_патриотична(amount, exchange_rates)) # ПАТРИОТИЧНА! - 4 / 0.5 + 3 / 0.6 + 7.6 / 3.8 = 15
58
59# amount = [("EUR", 1), ("USD", 2), ("DKK", 7.6), ("EUR", 3)]
60# print(е_патриотична(amount, exchange_rates)) # НЕПАТРИОТИЧНА! - 4 / 0.5 + 2 / 0.6 + 7.6 / 3.8 = 13.33, опитват се да ни измамят
......FF..
======================================================================
FAIL: test_е_патриотична_стотинки (test.TestЕПатриотична.test_е_патриотична_стотинки)
The total should be evaluated with a precision of 2 digits after the decimal point.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 132, in test_е_патриотична_стотинки
self.assertEqual("ПАТРИОТИЧНА!", патриотична)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'ПАТРИОТИЧНА!' != 'НЕПАТРИОТИЧНА!'
- ПАТРИОТИЧНА!
+ НЕПАТРИОТИЧНА!
? ++
======================================================================
FAIL: test_е_патриотична_цели (test.TestЕПатриотична.test_е_патриотична_цели)
The total should be evaluated by means of whether the sum is a round number.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 124, in test_е_патриотична_цели
self.assertEqual("НЕПАТРИОТИЧНА!", непатриотична)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'НЕПАТРИОТИЧНА!' != 'ПАТРИОТИЧНА!'
- НЕПАТРИОТИЧНА!
? --
+ ПАТРИОТИЧНА!
----------------------------------------------------------------------
Ran 10 tests in 0.001s
FAILED (failures=2)
Николай Георгиев
11.03.2026 15:16Трябва да направиш опция да ти лайквам коментарите хахаха
|
11.03.2026 14:08
11.03.2026 14:12