2016-09-07 17 views
0

私はdjango pythonを初めて使うので、ifは私を混乱させるように感じます。私を助けてください!PythonのIF条件

FacebookのチャットボットAPIのIF条件を作成しようとしています。全体の機能は、ユーザーがFacebookのチャットで何かを送信したとき、私のボットはすべての句読点を削除し、テキストを小文字にしてスペースに基づいて分割します。 その後、彼は彼が得たキーワードで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

おかげさまで私はノブです。私はただの位置を切り替えることができますreceived_message == 'いいえ':前に他の場合。それは私のために働いた!どうもありがとうございました! –

0

私は 。このコードは「いいえ 『いいえ"?あなたがして何かを比較する必要が』されて何の問題

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

を持っていると思うし、また、このif条件が間違ってインデントレベルにある。

+0

良い点!私は@ iScrE4mのコメントの後ですでにそれを修正した –

0

'いいえ' の文字列である。

if 'No' 

は常にtrueを返す。