Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from math import floor
- rates = {1: "Доллары", 2: "Eвро", 3: "Рубли"}
- def how_much_money():
- dollars = input("Введи сколько долларов у тебя: ")
- while not dollars.isdigit():
- dollars = input("Неверное значение! Должно быть целое число! Введи сколько у тебя долларов:")
- else:
- dollars = [int(dollars)]
- euros = input("Введи сколько euro у тебя: ")
- while not euros.isdigit():
- euros = input("Неверное значение! Должно быть целое число! Введи сколько у тебя eвро: ")
- else:
- euros = [int(euros)]
- rubles = input("Введи сколько рублей у тебя: ")
- while not rubles.isdigit():
- rubles = input("Неверное значение! Должно быть целое число! Введи сколько у тебя рублей: ")
- else:
- rubles = [int(rubles)]
- return {1: dollars, 2: euros, 3: rubles}
- def exchange_rates(item: int):
- if item == 1:
- dollar = input("Введи сколько стоит доллар в рублях: ")
- while not dollar.isdigit():
- dollar = input("Введи сколько стоит доллар в рублях: ")
- return int(dollar)
- elif item == 2:
- euro = input("Введи сколько стоит евро в рублях:")
- while not euro.isdigit():
- euro = input("Введи сколько стоит евро в рублях:")
- return int(euro)
- elif item == 3:
- return 1
- else:
- return None
- def get_amount(_from: str, _to: str, how_much: dict):
- from_max = how_much.get(int(_from))
- to_max = how_much.get(int(_to))
- amount = input(f"Напиши сумму конвертации. Максимум: {from_max} ")
- ex_from = exchange_rates(int(_from))
- ex_to = exchange_rates(int(_to))
- result = floor((ex_from * int(amount)) / ex_to)
- if amount.isdigit():
- if int(amount) <= from_max[0]:
- if result < to_max[0]:
- from_max[0] -= int(amount)
- to_max[0] += int(amount)
- return result
- else:
- print(f"Конечная сумма не может быть больше чем {to_max}!")
- get_amount(_from, _to, how_much)
- else:
- print(f"Сумма не может быть больше чем {from_max}!")
- get_amount(_from, _to, how_much)
- else:
- print("Сумма должна быть числом!")
- get_amount(_from, _to, how_much)
- def convert(how_much: dict):
- _from = input("Выбери, что перевести: 1. Доллар 2. Евро 3. Рубль ")
- while not _from.isdigit():
- _from = input("Это не число! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ")
- else:
- while not int(_from) in range(1, 4):
- _from = input("Неверное значение! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ")
- _to = input("Выбери, во что перевести: 1. Доллар 2. Евро 3. Рубль ")
- while not _to.isdigit():
- _to = input("Это не число! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ")
- else:
- while not int(_to) in range(1, 4):
- _to = input("Неверное значение! Выбери от 1 до 3, что перевести: 1. Доллар 2. Евро 3. Рубль ")
- res = get_amount(_from, _to, how_much)
- return {"amount": res, "from": _from, "to": _to}
- how_much = how_much_money()
- def main():
- print(f"У тебя {how_much[1]} долларов, {how_much[2]} евро и {how_much[3]} рублей")
- res = convert(how_much)
- print(f"Ты конвертировал {rates[int(res.get('from'))]} в {rates[int(res.get('to'))]} И"
- f" получил сумму {res['amount']} {rates[int(res.get('to'))]}")
- print(f"Теперь у тебя {how_much[1]} долларов, {how_much[2]} евро и {how_much[3]} рублей")
- ask = input("Продолжить работу? (y/n)")
- while ask not in ("y", "n"):
- ask = input("Выбери y или n. Продолжить работу? (y/n)")
- if ask == "y":
- main()
- elif ask == "n":
- print("---------- Программа закончила работу -----------")
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement