Предмет: Информатика, автор: rezniknikkita

Помогите пожалуйста! На языке PYTHON написать код

Зайдите на сайт Национального банка вашей страны и найдите информацию о курсе валют. Сделайте парсинг этой страницы и получите курс доллара США. На основе получения информации реализуйте класс конвертера валют и. после запуска программы пользователь вводит в консоль количество валюты своей страны, а в результате на экран выводится соответствующая ей сумма в долларах США.

Ответы

Автор ответа: abob334
1

Для парсинга веб-страницы мы будем использовать библиотеку BeautifulSoup. А для запросов на веб-страницу, мы будем использовать библиотеку requests.

import requests

from bs4 import BeautifulSoup

class CurrencyConverter:

   def __init__(self):

       self.url = 'https://www.cbr.ru/currency_base/daily/'

       self.currency_dict = {}

       self.get_currency_dict()

   def get_currency_dict(self):

       response = requests.get(self.url)

       soup = BeautifulSoup(response.content, 'html.parser')

       table = soup.find('table', {'class': 'data'})

       rows = table.tbody.find_all('tr')

       for row in rows:

           cols = row.find_all('td')

           if len(cols) > 1:

               currency_name = cols[1].text.strip()

               currency_rate = cols[4].text.strip().replace(',', '.')

               self.currency_dict[currency_name] = float(currency_rate)

   def convert(self, amount, from_currency, to_currency):

       initial_amount = amount

       if from_currency != 'USD':

           amount = amount / self.currency_dict[from_currency]

       # limiting the precision to 4 decimal places

       amount = round(amount * self.currency_dict[to_currency], 4)

       return amount

# Пример использования класса конвертера валют

currency_converter = CurrencyConverter()

print(currency_converter.convert(1000, 'RUB', 'USD')) # конвертируем 1000 российских рублей в доллары США

Обратите внимание, что данный код работает только для Центрального Банка Российской Федерации. Если вам нужно получить курсы валют другой страны, вам нужно изменить URL, который используется для запросов на страницу, и, возможно, изменить структуру HTML-разметки страницы для парсинга информации.


rezniknikkita: А что делать если выдаёт ошибку в последней строчке?
rezniknikkita: у меня в последней строчке выдаёт ошибку, что делать?
Автор ответа: sonasevcenko183
0

Ответ:

mport requests

class CurrencyConverter:

  def __init__(self):

      self.rates = {}

  def get_rates(self):

      response = requests.get("https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json")

      data = response.json()

      for item in data:

          self.rates[item['cc']] = item['rate']

  def convert(self, amount, from_currency, to_currency):

      if from_currency != "USD":

          amount = amount / self.rates[from_currency]

      amount = round(amount * self.rates[to_currency], 2)

      return amount

converter = CurrencyConverter()

converter.get_rates()

while True:

  try:

      amount = float(input("Enter the amount of currency: "))

      from_currency = input("Enter the currency code of the amount you entered: ")

      to_currency = "USD"

      converted_amount = converter.convert(amount, from_currency.upper(), to_currency)

      print("The amount of {} {} is equal to {:.2f} USD".format(amount, from_currency.upper(), converted_amount))

      break

  except KeyError:

      print("Invalid currency code entered. Please try again.")

  except ValueError:

      print("Invalid amount entered. Please try again.")

Объяснение:

Похожие вопросы
Предмет: Алгебра, автор: pavlovakata453