2016-09-07 120 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。