Я пишу креветочного бота, который проходит через определенный сабреддит и захватывает заголовки каждого поста в пределах определенного лимита, 20 постов. Затем он пытается определить, существует ли конкретная строка («word_to_find») в заголовке каждого сообщения.
Я хочу, чтобы бот распечатал строку «Не могу найти статьи Kawhi в сабреддите!» если он не находит указанное слово "word_to_find" ни в одном из заголовков сообщений.
Однако я хочу, чтобы бот печатал указанную выше строку только один раз, и только если word_to_find не существует ни одного из найденных заголовков.
Однако, когда оператор else выполняется в моем цикле for, он распечатывает сообщение с найденной строкой «word_to_find» и оставшееся количество сообщений с указанной выше строкой, все в пределах 20.
Надеюсь, все это имеет смысл. Ниже мой текущий код.
def run_bot():
sub = r.subreddit('nba')
print("---Grabbing subreddit---\n")
subs = sub.top('week', limit=20)
print("---Grabbing posts in sub---\n")
print("Looking for Kawhi Articles..\n")
for posts in subs:
article_url = posts.url
post_title = posts.title
word_to_find = "Kawhi"
if word_to_find in post_title:
print(post_title)
else:
print("Can't find Kawhi articles in the
subreddit!")
run_bot()
else
должен запускаться один раз, когда ни один изposts
вsubs
не имеетword_to_find
, верно? Вы можете поддерживать логическую переменную и печатать сообщение только в том случае, если она верна после завершения циклаfor
. - person TheGamer007   schedule 25.05.2019