SHOW:
|
|
- or go back to the newest paste.
1 | from math import floor | |
2 | ||
3 | rates = {1: "Доллары", 2: "Eвро", 3: "Рубли"} | |
4 | ||
5 | ||
6 | def how_much_money(): | |
7 | dollars = input("Введи сколько долларов у тебя: ") | |
8 | while not dollars.isdigit(): | |
9 | dollars = input("Неверное значение! Должно быть целое число! Введи сколько у тебя долларов:") | |
10 | else: | |
11 | dollars = [int(dollars)] | |
12 | ||
13 | euros = input("Введи сколько euro у тебя: ") | |
14 | while not euros.isdigit(): | |
15 | euros = input("Неверное значение! Должно быть целое число! Введи сколько у тебя eвро: ") | |
16 | else: | |
17 | euros = [int(euros)] | |
18 | ||
19 | rubles = input("Введи сколько рублей у тебя: ") | |
20 | while not rubles.isdigit(): | |
21 | rubles = input("Неверное значение! Должно быть целое число! Введи сколько у тебя рублей: ") | |
22 | else: | |
23 | rubles = [int(rubles)] | |
24 | ||
25 | return {1: dollars, 2: euros, 3: rubles} | |
26 | ||
27 | ||
28 | def exchange_rates(item: int): | |
29 | if item == 1: | |
30 | dollar = input("Введи сколько стоит доллар в рублях: ") | |
31 | while not dollar.isdigit(): | |
32 | dollar = input("Введи сколько стоит доллар в рублях: ") | |
33 | return int(dollar) | |
34 | elif item == 2: | |
35 | euro = input("Введи сколько стоит евро в рублях:") | |
36 | while not euro.isdigit(): | |
37 | euro = input("Введи сколько стоит евро в рублях:") | |
38 | return int(euro) | |
39 | elif item == 3: | |
40 | return 1 | |
41 | else: | |
42 | return None | |
43 | ||
44 | ||
45 | def get_amount(_from: str, _to: str, how_much: dict): | |
46 | from_max = how_much.get(int(_from)) | |
47 | to_max = how_much.get(int(_to)) | |
48 | ||
49 | amount = input(f"Напиши сумму конвертации. Максимум: {from_max} ") | |
50 | ||
51 | ex_from = exchange_rates(int(_from)) | |
52 | ex_to = exchange_rates(int(_to)) | |
53 | result = floor((ex_from * int(amount)) / ex_to) | |
54 | if amount.isdigit(): | |
55 | if int(amount) <= from_max[0]: | |
56 | if result < to_max[0]: | |
57 | from_max[0] -= int(amount) | |
58 | to_max[0] += int(amount) | |
59 | return result | |
60 | else: | |
61 | print(f"Конечная сумма не может быть больше чем {to_max}!") | |
62 | get_amount(_from, _to, how_much) | |
63 | else: | |
64 | print(f"Сумма не может быть больше чем {from_max}!") | |
65 | get_amount(_from, _to, how_much) | |
66 | else: | |
67 | print("Сумма должна быть числом!") | |
68 | get_amount(_from, _to, how_much) | |
69 | ||
70 | ||
71 | def convert(how_much: dict): | |
72 | _from = input("Выбери, что перевести: 1. Доллар 2. Евро 3. Рубль ") | |
73 | ||
74 | while not _from.isdigit(): | |
75 | _from = input("Это не число! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ") | |
76 | else: | |
77 | while not int(_from) in range(1, 4): | |
78 | _from = input("Неверное значение! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ") | |
79 | ||
80 | _to = input("Выбери, во что перевести: 1. Доллар 2. Евро 3. Рубль ") | |
81 | ||
82 | while not _to.isdigit(): | |
83 | _to = input("Это не число! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ") | |
84 | else: | |
85 | while not int(_to) in range(1, 4): | |
86 | _to = input("Неверное значение! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ") | |
87 | ||
88 | res = get_amount(_from, _to, how_much) | |
89 | return {"amount": res, "from": _from, "to": _to} | |
90 | ||
91 | ||
92 | how_much = how_much_money() | |
93 | ||
94 | ||
95 | def main(): | |
96 | print(f"У тебя {how_much[1]} долларов, {how_much[2]} евро и {how_much[3]} рублей") | |
97 | res = convert(how_much) | |
98 | print(f"Ты конвертировал {rates[int(res.get('from'))]} в {rates[int(res.get('to'))]} И" | |
99 | f" получил сумму {res['amount']} {rates[int(res.get('to'))]}") | |
100 | print(f"Теперь у тебя {how_much[1]} долларов, {how_much[2]} евро и {how_much[3]} рублей") | |
101 | ||
102 | ask = input("Продолжить работу? (y/n)") | |
103 | ||
104 | while ask not in ("y", "n"): | |
105 | ask = input("Выбери y или n. Продолжить работу? (y/n)") | |
106 | if ask == "y": | |
107 | main() | |
108 | elif ask == "n": | |
109 | print("---------- Программа закончила работу -----------") | |
110 | ||
111 | ||
112 | main() | |
113 |