Python:如果elif语句触发了错误的逻辑。

时间:2017-10-13 13:09:19

标签: python

我在python中编写一个reddit bot来回答特定的问题。

以下是代码:

    if comment.id not in comments_replied_to:
        if comment.author != r.user.me():

            if "First Question" or "first q" in comment.body:
                comment.reply("First Answer")
                comments_replied_to.append(comment.id)
            elif "Second Question" in comment.body:
                comment.reply("Second Answer")
                comments_replied_to.append(comment.id)

当我输入评论时:

  

第一个问题

回复是:

  

第一个答案

当我输入时:

  

第二个问题

回复是:

  

第一个答案

为什么只发出第一个声明?

1 个答案:

答案 0 :(得分:1)

if "First Question" or "first q" in comment.body:始终为true,因为第一部分(or之前)读取if "First Question"而非空字符串的布尔值为true。

所以,将其改为:

if "First Question" in comment.body or "first q" in comment.body: