2016-09-07 7 views
0

Я новичок в django python, поэтому, если это заставляет меня чувствовать себя смущенным. Пожалуйста, помогите мне!Условия Python IF

Im пытается сделать условие IF для Facebook-бота API-интерфейса. Вся функция заключается в том, когда пользователь отправляет что-то в чате Facebook, мой бот удаляет все пунктуации, строчит текст и разбивает его на основе пространства. После этого он выберет шутку из списка json с ключевым словом, которое он получил. Быстрый ответ с 2 кнопками «Да» и «Нет» также отправляется пользователю с шуточкой.

Он также проверяет, отсутствует ли ключевое слово. Теперь я хочу, чтобы, когда пользователь вводит «Нет» в чате, мой бот отправит что-то обратно, как «Then not». Что я сделал здесь неправильно?

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 (не joke_text и last if). –

ответ

5
if 'No': 

всегда верно, вы, вероятно, хотите, чтобы проверить, если что-то == 'Нет'?

+0

глупый, но я этого не видел :) +1 –

+0

Хорошая точка! Я попытался поставить [if recevied_message == 'No':] на это раньше, но он все равно отправил «Я не понял ...» выше, если вернулся –

+0

Oke Я понимаю, что я нооб. Я просто могу изменить положение if received_message == 'Нет': перед другим if. Это сработало для меня! Большое спасибо! –

0

Я думаю, что этот код есть проблема

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

Что «Нет"? Вы должны сравнивать что-то с „Нет“. А также это if условия на неправильном уровне отступа.

+0

Хорошая точка! Я уже исправил его после комментария @ iScrE4m –

0

'Нет' является строкой.

if 'No' 

всегда возвращает True.

Смежные вопросы