Python try / except / else 循环执行 try 和 else 操作

Python try / except / else loop does both the try and else actions

我正在 运行 将 Python 脚本用于 post 如果长度足够短的 Tweet 有错误异常和太长消息的 else 语句.

当我 运行 这样做时,它 post 推文仍然给出推文太长的消息。知道为什么会发生这种情况以及如何使其按预期工作吗?

if len(tweet_text) <= (280-6):
    try:    
        twitter = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)
        twitter.update_status(status=tweet_text)
    except TwythonError as error:
            print(error)
    else:
        print("Tweet too Long. Please try again.")

第一个字符串正在检查推文的长度。将 else 向后移动四个空格。因为try/except构造可以try/except/else构造

来自docs

The try … except statement has an optional else clause, which, when present, must follow all except clauses. It is useful for code that must be executed if the try clause does not raise an exception. (emphasis added)

Spaces/Tabs 事情 Python.

您的摘要用普通英语表达了什么 是“尝试post推文,除非有错误,然后打印错误。如果没有错误,打印'Tweet too long. Please try again.'”

你想要的是:

if len(tweet_text) <= (280-6):
    try:    
        twitter = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET)
        twitter.update_status(status=tweet_text)
    except TwythonError as error:
        print(error)
else:
    print("Tweet too Long. Please try again.")