python中的elif语句无效语法

时间:2017-04-05 18:08:40

标签: python if-statement syntax cs50

与python相比很新,但在C中有一些经验。

if语句的工作方式与C中的工作方式相同吗?将if语句放在另一个if语句下面以检查错误返回。

我试图在python中使用elif语句似乎有问题可以帮助我弄清楚这里的问题是什么?

#!/usr/bin/env python3

# TODO
#import nltk
from helpers import get_user_timeline
from analyzer import Analyzer

#ZYMAYLA'S HINTS

#ensure proper usage
    #argv
def main():
    if len(sys.argv) != 2:
        sys.exit("Usage: ./smile @username")

    # absolute paths to lists
    positives = os.path.join(sys.path[0], "positive-words.txt")
    negatives = os.path.join(sys.path[0], "negative-words.txt")

#get tweets
    ##get_user_timeline (in helpers.py)
    if get_user_timeline(screen_name, count=200) is False:
        #Check if successful
        #if private account or does not exist(unsuccessful)
        #error message if unsuccessful(sys.exit)
        sys.exit("account either private or does not exist")
        #tokenize the tweet (like we did in analyzer.py for "smile")

        #tokenizers are part of natural language toolkit
        #use a TweetTokenizer to split into a list of words


    #analyze tweets
    #initialize Analyzer
    analyzer = Analyzer(positives, negatives)
    #instantiate Analyzer, iterate over every token scoring them pos,neg,neutral (this will indicate if the tweet is posistive/negative/neutral)
    score = analyzer.TweetAnalyzer(sys.argv[1])

    if score > 0.0:
        #print score
        print(colored("{}".format(score), "green", end=''))
        #print tweet
        print("{}".format(tweet)

    elif score < 0.0:
        print(colored("{}".format(score), "red", end=''))
        #print tweet
        print("{}".format(tweet)

    else:
        print(colored("{}".format(score), "yellow", end=''))
        #print tweet
        print("{}".format(tweet)

if __name__ == "__main__":
    main()

2 个答案:

答案 0 :(得分:2)

您在上一行中缺少一个括号:

    print("{}".format(tweet)

这应该是:

    print("{}".format(tweet))

......第48和53行的print相同。

答案 1 :(得分:2)

if / elif / else块中的最后一个print语句都缺少结束括号