@FromProg

Каким способ лучше закончить программу?

Как способом лучше всего сделать метод конвертирования 3-х валют?
Просто прописывать всё через if choise == usd: или есть ещё какой-то способ, подскажите пожалуйста

class Converting:
	def data(self):
		choise = (input('Введите валюту, которую хотите купить(rub, usd, eur): '))
		choise_lower = choise.lower()
		if choise_lower != 'rub' and choise_lower != 'usd' and choise_lower != 'eur':
			exit('Такой валюты у нас нет!')
		currency = (input('Какая у вас валюта(rub, usd, eur): '))
		currency_lower = currency.lower()
		if currenc_lowery != 'rub' and currency_lower != 'usd' and currency_lower != 'eur':
			exit('Такую валюту мы не принимаем!')
		amount = int(input('Сколько вы хотите купить {0}: '.format(choise)))

	def answer(self):
		rub = 1
		eur = 90
		usd = 75

		
		print('Стоимость покупки {} {} будет составлять {}'.format(self.amount, self.choise_lower, ))
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@twistfire92
Python backend developer
У вас тут ООП ради ООП.
Вообще неясно для чего нужен класс Converting, все же можно в несколько строк написать. Конечно может быть это часть какого-то большого проекта, где это оправдано, но я как-то сильно сомневаюсь.

Для конвертации каких-либо величин необходимо завязаться на что-то одно. На какую-то абстрактную величину.
Создайте словарь, где будете хранить стоимость всех ваших валют относительно "эталонной" величины.
values ={'rub': 1, 'eur': 90, 'usd': 75}
Вот мы показали, что в рубле содержится ровно одна такая величина, в евро - 90, в долларе - 75

Теперь если пользователь ввел, например, 'usd', просто обращайтесь к словарю по этому ключу и получите сколько в одном долларе этих самых величин. Дальше идет банальная математика, которую вы сами сможете реализовать.

Проверку на правильность ввода можно теперь переложить на конструкцию key in dict у этого словаря.
Можно добавить в этот словарь еще каких-либо значений и не придется расписывать дополнительные условия для проверки правильности ввода.

Если у вас версия питона 3.6 и выше, то вместо метода format() используйте f-строки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы