2016-09-07 126 views
0

我是新来的Django的Python,所以如果让我感到困惑。请帮帮我!蟒蛇IF条件

我试图为Facebook聊天僵尸API创建一个IF条件。整个功能是当用户在Facebook聊天中发送内容时,我的机器人将删除所有标点符号,小写文本并根据空间进行分割。 之后,他会用json列表中的关键字从json列表中挑选一个笑话。用2个按钮“是”和“否”的快速回复也会通过笑话发送给用户。

它还检查关键字是否不存在。现在我希望当用户在聊天中键入“否”时,我的机器人会发送回“如果不是”。我在这里做错了什么?

strong texttokens = re.sub(r"[^a-zA-Z0-9\s]", ' ', recevied_message).lower().split() 
joke_text = '' 
for token in tokens: 
    if token in jokes: 
     joke_text = random.choice(jokes[token]) 

     .... some code 

     send_message(fbid, joke_text) 

     quick_text = "Do you want another joke? " 
     send_quick_reply_message(fbid, quick_text) 
     break 
if not joke_text: 
    joke_text = "I didn't understand! " \ 
       "Send 'stupid', 'fat', 'dumb' for a Yo Mama joke!" 
    send_message(fbid, joke_text) 
    if 'No': 
     joke_text = "Then not" 
     send_message(fbid, joke_text) 
+0

最后一个'if'错误的缩进级别?它只在'not joke_text'时执行 –

+0

当我把最后一个if语句放到begin时,bot会发送两个if语句(不是joke_text和last if)。 –

回答

5
if 'No': 

始终是真实的,你可能要被检查,如果事情== '不'?

+0

笨,但我没有看到:) +1 –

+0

好点!我试图把[如果recevied_message =='否':]在那之前,但它仍然发送“我不明白...”的上述,如果回 –

+0

Oke我意识到我是一个noob。我只是可以将if received_message =='No'的位置切换:在另一个if之前。它为我工作!非常感谢你! –

0

我觉得这段代码有问题

if 'No': 
    joke_text = "Then not" 
    send_message(fbid, joke_text) 

什么是“不“吗?你有比较的东西‘否’。 而且也是这个if条件是错误的缩进级别。

+0

好点!我已经在@ iScrE4m评论之后修复了它 –

0

'不' 是一个字符串。

if 'No' 

始终返回true。