TypeError: unsupported operand type(s) for /: 'str' and 'str'

При попытке привести тип данных в числовые выскакивает ошибка. Данные берутся XML из http://www.cbr.ru/scripts/XML_daily.asp.

import requests
from lxml import etree


resp = etree.fromstring(requests.get("http://www.cbr.ru/scripts/XML_daily.asp").text.encode("1251"))
curs_1 = resp.find("Valute[@ID='R01135']/Value").text
curs_2 = resp.find("Valute[@ID='R01535']/Value").text

curs_3 = int(curs_2 / curs_1)

print(f"Одна норвежская крона равна {curs_2}  {curs_1} Венгерских форинтов")

Вывод

Traceback (most recent call last):
  File "C:\py\Skillfactory\Forint.py", line 9, in <module>
    curs_3 = int(curs_2 / curs_1)
TypeError: unsupported operand type(s) for /: 'str' and 'str'

Ответы (1 шт):

Автор решения: CrazyElf
curs_3 = int(curs_2 / curs_1)
  • Преобразовывать в числа нужно обе переменные по отдельности
  • Преобразовывать нужно в числа с плавающей точкой, а не в целые числа
  • Нужно поменять в строках знак , на . перед преобразованием
curs_3 = float(curs_2.replace(',','.')) / float(curs_1.replace(',','.'))
print(curs_3)
# 3.3617511336142663
→ Ссылка