Выводиться не то что нужно, что не так?
Пишу программу парсинга сайтов, но написал только одну функцию, но она работает не так как я хотел. Мой код:
from math import ceil as n
site = 0
genre = str(input('1.сайт1 2.сайт2 \n Напишите цифру сайта: '))
q = int(input('Какое количество материала вы хотите получить?: '))
# делим на 30 потому что на сайте 30 материалов, потом округляя мы узнаём сколько страниц нам нужно
q /= 30
q = n(q)
print(q)
if genre == 1:
site = f'сайт1.ру/?с={q}'
if genre == 2:
site = f'сайт2.ру/?с={q}'
print(site)
в идеале на данные:
1.сайт1 2.сайт2
Напишите цифру сайта: 1
Какое количество материала вы хотите получить?: 60
программа должна ответить этим:
сайт1.ру/?с=2
но она отвечает этим:
2
0
Почему так происходит я не знаю
Ответы (2 шт):
Автор решения: Mootfrost
→ Ссылка
Двойку выводит print(q), а в if вхождений нет т.к. при вводе вы конвертируете str в str, а потом сравниваете с int:
genre = str(input('1.сайт1 2.сайт2 \n Напишите цифру сайта: ')) # str
if genre == 1: # str == int
По сути надо конвертировать в int:
genre = int(input('1.сайт1 2.сайт2 \n Напишите цифру сайта: '))
и убрать вывод q
Автор решения: Danis
→ Ссылка
input выдаёт вам строку и вы сравниваете его с числом
genre = str(input('1.сайт1 2.сайт2 \n Напишите цифру сайта: '))
замените на
genre = int(input('1.сайт1 2.сайт2 \n Напишите цифру сайта: '))