Почему мой код не компилируется
Я только изучаю Python и решил написать действительно простого бота Python для ответа на Reddit.
При компиляции я получаю следующую ошибку:
Файл "C:\Python35\Scripts\RedditBot\Reddit.py", строка 28, за исключением атрибута error: ^ SyntaxError: неверный синтаксис
Я не могу понять, что является причиной этого, поскольку код выглядит правильно для меня.
import praw
USERAGENT = "BOT Name"
USERNAME = "Username"
PASSWORD = "Password"
SUBREDDIT = "Subreddit"
MAXPOSTS = 100
SETPHRASES = ["Phrase", "PhraseOne"]
SETRESPONSE = "This is the response."
print('Logging in to Reddit')
r = praw.Reddit(USERAGENT)
r.login (USERNAME, PASSWORD)
def replybot():
print('Fetching Subreddit ' + SUBREDDIT)
subreddit = r.get_subreddit(SUBREDDIT)
print('Fetching comments')
comments = subreddit.get_comments(limit=MAXPOSTS)
for comment in comments:
try:
cauthor = comment.author.name
cbody = comment.body.lower()
if any(key.lower() in cbody for key in SETPHRASES):
print("Replying to " + cauthor)
comment.reply(SETRESPONSE)
except attributeerror:
pass
replybot()
1 ответ
Решение
У вас две проблемы.
- Первый, который отображается в traceback, - это отступ. "попробовать" и "кроме" должны быть на одном уровне отступа.
- Второй - ссылка на attributeerror. Это должно быть верблюжьим, как в AttributeError.
Поэтому внутренняя часть вашего цикла for должна выглядеть следующим образом:
try:
cauthor = comment.author.name
cbody = comment.body.lower()
if any(key.lower() in cbody for key in SETPHRASES):
print("Replying to " + cauthor)
comment.reply(SETRESPONSE)
except AttributeError:
pass