Python 3 вывод результата цикла for
Есть цикл
for slug in urls:
newUrl = url.replace('?page=1', slug)
response = requests.get(newUrl)
soup = BeautifulSoup(response.text, 'lxml')
items = soup.find_all('div', class_='col-lg-4 col-md-6 mb-4')
for n, i in enumerate(items, start=n):
itemName = i.find('h4', class_='card-title').text.strip()
itemPrice = i.find('h5').text
res = print(f'{n}: {itemPrice} за {itemName}')
В последней строке объявил переменную res Все отрабатывает хорошо, но потом хочу еще раз ее вывести путем простого
print(res)
Выдает None, объясните как такое реализуется на питоне, хочу эту переменную использовать например для такой конструкции
with open("items.html", "w+", encoding="utf-8") as file:
with redirect_stdout(file):
print(f'{n}: {itemPrice} за {itemName}')
При таком раскладе выдает последнее значение - например 6: $49.99 за Short Chiffon Dress А должно быть соответственно списком
1: $24.99 за Short Dress
2: $29.99 за Patterned Slacks
3: $49.99 за Short Chiffon Dress
4: $59.99 за Off-the-shoulder Dress
5: $24.99 за V-neck Top
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
res = print(f'{n}: {itemPrice} за {itemName}')
вы переменной res присвоили не значение строки:
res = f'{n}: {itemPrice} за {itemName}'
а значение, которое выдает функция print
поскольку функция print не выдает никакого значения (функция не возвращает значений), то переменной res присвоилось значение None
простой пример:
def func1(value)
res = value * 2
return res
def func2(value)
res = value * 2
print(func1(10)) # вернет 20
print(func2(10)) # вернет None