2016-10-21 3 views
-6

Я просто изучаю Python и решил написать очень простой Python-бот, чтобы ответить на Reddit.Почему мой код не компилируется

На компиляции я получаю следующее сообщение об ошибке:

File "C:\Python35\Scripts\RedditBot\Reddit.py", line 28 except attributeerror: ^SyntaxError: invalid syntax

Я не могу увидеть, что является причиной этого, как код выглядит правильно для меня.

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() 
+6

кроме отступа-х неправильно – Lafexlos

+6

выглядит также, как 'attributeerror' должен быть' AttributeError', чтобы избежать еще одной проблемы. – sytech

+0

И похоже, что вы разместили свои собственные скрипты в папке установки Python. Не делай этого. – Matthias

ответ

3

У вас возникли две проблемы.

  • Первый, который отображается в traceback, является отступом. «try» и «except» должны быть на одном уровне отступов.
  • Во-вторых, ссылка на атрибутerror. Он должен быть на камне, как в AttributeError.

Так внутри вашего цикл должен выглядеть следующим образом:

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 
+0

Спасибо. Я буду более осторожен с моими делами и отступом. – Legend1989

 Смежные вопросы

  • Нет связанных вопросов^_^