Домашни > Да върнем левчето обратно! > Решения > Решението на Светлозар Йовчев

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

2 точки общо

3 успешни теста
7 неуспешни теста
Код
Скрий всички коментари

 1"""Засега толкова."""
 2"""Без лоши чувства."""
 3"""https://www.youtube.com/watch?v=7_pRiUfp938"""
 4"""https://www.youtube.com/watch?v=ZmInkxbvlCs"""
 5
 6
 7def курс_в_лева (dict):
 8    cours_v_leva_dict = {}
 9    for key in dict:
10        cours_v_leva_dict[key] = round(1 / dict[key], 4)
11    return cours_v_leva_dict
12    
13exchange_rates = {"EUR": 1.9558, "USD": 1.6718, "DKK": 0.2616}
14
15курс_в_лева(exchange_rates)
16
17def валута_към_левчета (amount, exchange_rates):
18    valuta_kym_levcheta_dict = {}
19    euro_currency = "EUR"
20    if dict[euro_currency] == 0.5113:
21        exchange_rates = курс_в_лева(exchange_rates)
22        print(exchange_rates)
23    for key in amount:
24        key_in_amount = key[0]
25        print(exchange_rates)
26        valuta_kym_levcheta_dict[key[0]] = round(key[1] * (exchange_rates[key_in_amount]), 4)
27    print(valuta_kym_levcheta_dict)
28    return valuta_kym_levcheta_dict
29
30exchange_rates_1 = {"EUR": 0.5113, "USD": 0.5982, "DKK": 3.8226}
31amount = [("EUR", 1.34), ("USD", 10.23), ("DKK", 0.12), ("EUR", 1.5)]
32
33
34def е_патриотична (amount, exchange_rates):
35    valuta_kym_levcheta_dict = {}
36    валута_към_левчета (amount, exchange_rates)
37    print(valuta_kym_levcheta_dict)
38
39е_патриотична(amount, exchange_rates_1)

{'EUR': 0.5113, 'USD': 0.5982, 'DKK': 3.8226}
{'EUR': 0.5113, 'USD': 0.5982, 'DKK': 3.8226}
{'EUR': 0.5113, 'USD': 0.5982, 'DKK': 3.8226}
{'EUR': 0.5113, 'USD': 0.5982, 'DKK': 3.8226}
{'EUR': 0.767, 'USD': 6.1196, 'DKK': 0.4587}
{}
EEEEE.F
Stdout:
{'KRW': 872.4512, 'INR': 54.846}
{'KRW': 872.4512, 'INR': 54.846}
{'KRW': 8724512.0, 'INR': 266332.176}
{}
F
Stdout:
{'ASL': 10, 'PLS': 0.1}
{'ASL': 10, 'PLS': 0.1}
{'ASL': 100, 'PLS': 0.5}
{}
..
======================================================================
ERROR: test_валута_към_левчета_conversion (test.TestВалутаКъмЛевчета.test_валута_към_левчета_conversion)
Entries should be converted to BGN.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 91, in test_валута_към_левчета_conversion
in_leva = валута_към_левчета(
("THB", 100),
...<2 lines>...
ZAR=0.1,
)
TypeError: валута_към_левчета() got an unexpected keyword argument 'THB'

======================================================================
ERROR: test_валута_към_левчета_rounding (test.TestВалутаКъмЛевчета.test_валута_към_левчета_rounding)
Output should be rounded to the 4th digit after the decimal point.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 102, in test_валута_към_левчета_rounding
in_leva = валута_към_левчета(
("SGD", 5),
...<2 lines>...
SGD=0.759,
)
TypeError: валута_към_левчета() got an unexpected keyword argument 'PHP'

======================================================================
ERROR: test_валута_към_левчета_sums (test.TestВалутаКъмЛевчета.test_валута_към_левчета_sums)
Entries for the same currency should be summed up.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 78, in test_валута_към_левчета_sums
in_leva = валута_към_левчета(
("JPY", 10),
...<4 lines>...
TRY=1,
)
TypeError: валута_към_левчета() got an unexpected keyword argument 'JPY'

======================================================================
ERROR: test_валута_към_левчета_takes_variable_length_args (test.TestВалутаКъмЛевчета.test_валута_към_левчета_takes_variable_length_args)
Function should take a variable length of args and kwargs.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 48, in test_валута_към_левчета_takes_variable_length_args
валута_към_левчета(
~~~~~~~~~~~~~~~~~~^
("EUR", 1.5),
^^^^^^^^^^^^^
...<12 lines>...
JPY=7,
^^^^^^
)
^
TypeError: валута_към_левчета() got an unexpected keyword argument 'EUR'

======================================================================
ERROR: test_валута_към_левчета_with_bgn (test.TestВалутаКъмЛевчета.test_валута_към_левчета_with_bgn)
Entries with BGN should be converted 1:1.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/test.py", line 68, in test_валута_към_левчета_with_bgn
in_leva = валута_към_левчета(
("HUF", 10),
("BGN", 10000.5),
HUF=1,
)
TypeError: валута_към_левчета() got an unexpected keyword argument 'HUF'

======================================================================
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: 'ПАТРИОТИЧНА!' != None

Stdout:
{'KRW': 872.4512, 'INR': 54.846}
{'KRW': 872.4512, 'INR': 54.846}
{'KRW': 8724512.0, 'INR': 266332.176}
{}

======================================================================
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 118, in test_е_патриотична_цели
self.assertEqual("ПАТРИОТИЧНА!", патриотична)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'ПАТРИОТИЧНА!' != None

Stdout:
{'ASL': 10, 'PLS': 0.1}
{'ASL': 10, 'PLS': 0.1}
{'ASL': 100, 'PLS': 0.5}
{}

----------------------------------------------------------------------
Ran 10 tests in 0.002s

FAILED (failures=2, errors=5)

Дискусия
Светлозар Йовчев
11.03.2026 19:26

Thanks и извинявай, пропуснал съм този print. Имаше още :D Имаше нещо с подаваните exchange_rates. Явно не винаги ще са подавани към валутата, затова и проверката за "EUR" == 0.5113. Хубаво е, че има лог от тестовете. Ще се оправя по тях :)
История

f1"""Засега толкова."""f1"""Засега толкова."""
2"""Без лоши чувства."""2"""Без лоши чувства."""
3"""https://www.youtube.com/watch?v=7_pRiUfp938"""3"""https://www.youtube.com/watch?v=7_pRiUfp938"""
4"""https://www.youtube.com/watch?v=ZmInkxbvlCs"""4"""https://www.youtube.com/watch?v=ZmInkxbvlCs"""
55
66
n7def cours_v_leva (dict):n7def курс_в_лева (dict):
8    cours_v_leva_dict = {}8    cours_v_leva_dict = {}
9    for key in dict:9    for key in dict:
10        cours_v_leva_dict[key] = round(1 / dict[key], 4)10        cours_v_leva_dict[key] = round(1 / dict[key], 4)
11    return cours_v_leva_dict11    return cours_v_leva_dict
12    12    
13exchange_rates = {"EUR": 1.9558, "USD": 1.6718, "DKK": 0.2616}13exchange_rates = {"EUR": 1.9558, "USD": 1.6718, "DKK": 0.2616}
1414
n15cours_v_leva(exchange_rates)n15курс_в_лева(exchange_rates)
1616
n17def valuta_kym_levcheta (amount, exchange_rates):n17def валута_към_левчета (amount, exchange_rates):
18    valuta_kym_levcheta_dict = {}18    valuta_kym_levcheta_dict = {}
19    euro_currency = "EUR"19    euro_currency = "EUR"
20    if dict[euro_currency] == 0.5113:20    if dict[euro_currency] == 0.5113:
n21        exchange_rates = cours_v_leva(exchange_rates)n21        exchange_rates = курс_в_лева(exchange_rates)
22        print(exchange_rates)22        print(exchange_rates)
23    for key in amount:23    for key in amount:
24        key_in_amount = key[0]24        key_in_amount = key[0]
25        print(exchange_rates)25        print(exchange_rates)
26        valuta_kym_levcheta_dict[key[0]] = round(key[1] * (exchange_rates[key_in_amount]), 4)26        valuta_kym_levcheta_dict[key[0]] = round(key[1] * (exchange_rates[key_in_amount]), 4)
27    print(valuta_kym_levcheta_dict)27    print(valuta_kym_levcheta_dict)
28    return valuta_kym_levcheta_dict28    return valuta_kym_levcheta_dict
2929
30exchange_rates_1 = {"EUR": 0.5113, "USD": 0.5982, "DKK": 3.8226}30exchange_rates_1 = {"EUR": 0.5113, "USD": 0.5982, "DKK": 3.8226}
31amount = [("EUR", 1.34), ("USD", 10.23), ("DKK", 0.12), ("EUR", 1.5)]31amount = [("EUR", 1.34), ("USD", 10.23), ("DKK", 0.12), ("EUR", 1.5)]
3232
3333
n34def e_patriotichna (amount, exchange_rates):n34def е_патриотична (amount, exchange_rates):
35    valuta_kym_levcheta_dict = {}35    valuta_kym_levcheta_dict = {}
n36    valuta_kym_levcheta (amount, exchange_rates)n36    валута_към_левчета (amount, exchange_rates)
37    print(valuta_kym_levcheta_dict)37    print(valuta_kym_levcheta_dict)
3838
t39e_patriotichna(amount, exchange_rates_1)t39е_патриотична(amount, exchange_rates_1)
4040
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op