TypeError: unsupported operand type(s) for /: 'float' and 'NoneType'
В Парсере валют почему-то выдаёт такую ошибку TypeError: unsupported operand type(s) for /: 'float' and 'NoneType' , уже пол дня морочусь как бы её исправить, не могу найти ответ, прошу помощи, спасибо.
P.S l Ошибка выдаётся из-за предпоследней строки result = number / dollar_uah()
import requests
from bs4 import BeautifulSoup
DOLLAR_UAH = 'https://www.google.com/search?q=%D0%94%D0%BE%D0%BB%D0%BB%D0%B0%D1%80+%D0%B3%D1%80%D0%B8%D0%B2%D0%BD%D0%B0&oq=%D0%94%D0%BE%D0%BB%D0%BB%D0%B0%D1%80+%D0%B3%D1%80%D0%B8%D0%B2%D0%BD%D0%B0&aqs=chrome.0.69i59j0i20i263i512j0i512l8.2878j1j7&sourceid=chrome&ie=UTF-8'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36'}
def dollar_uah():
full_page = requests.get (DOLLAR_UAH, headers=headers)
soup = BeautifulSoup(full_page.content, 'html.parser')
convert = soup.findAll("span", {"class" : "DFlfde", "class" : "SwHCTb", "data-precision": 2})
convert[0].text.replace(",", ".")
what_value = {
"1",
"2",
"3"
}
while True:
what = input("\nВыберите, что вы отдаете: \n 1 - Доллар , 2 - Гривна: ")
if what not in what_value:
print("Ошибка")
exit()
what2 = input("Выберите, что вы получаете: \n 1 - Доллар , 2 - Гривна: ")
if what2 not in what_value:
print("Ошибка")
exit()
while True:
try:
number = float( input("Введите сколько вы хотите посчитать: "))
except ValueError:
print('Введите число')
else:
break
#Доллары в гривны
if what == "1" and what2 == "2":
result = number / dollar_uah()
print ("Результат: " + str(result))
Ответы (2 шт):
Автор решения: idparker
→ Ссылка
Нужно в конце функции написать: return float(convert[0].text.replace(",", ".") )
Автор решения: Вадим Ткаченко
→ Ссылка
Ваша функция ничего не возвращает, а None — это и есть ничего. Нужно в конце функции заменить последнюю строку на: return float(convert[0].text.replace(",", ".")).
P.S. Программа говорила Вам, что нельзя делить число с плавающей точкой на None