为什么我的if语句在python中不起作用?

时间:2019-07-20 09:39:29

标签: python list if-statement printing

这是电报机器人的简单代码。 我有一个清单, 用户键入“ m”时,其名称将添加到列表中,并且机器人将发布该列表 当用户键入“ n”时,名称将从列表中删除并发布列表 当列表的数量等于2时,漫游器应说“完成:并且不接收其他金额” 当列表的数量等于0时,机器人应说“ No”并发布列表。

但是当我运行这段代码时,当list等于0时,什么也没发生!

# -*- coding:utf-8 -*-
#coding=UTF-8

from telegram.ext import Updater , CommandHandler , Filters , 
CommandHandler , MessageHandler
from telegram import MessageEntity
from telegram import ParseMode , InputTextMessageContent

updater = Updater("898399795:AAEI-HlZ2EIMgB-DRAhyqqm6k4NeSoeohhM")

listt = []


def msg_filter(bot , update):
    wordsp = ['m']
    wordsn = ['n']



    if any (i in update.message.text for i in wordsp) and " 
    {}".format(update.message.from_user.first_name) not in listt:

    listt.append("{}".format(update.message.from_user.first_name))
    bot.send_message(chat_id = update.message.chat_id , text = 
    "\n".join(listt))
    bot.send_message(chat_id = update.message.chat_id , text = len(listt))

       if len(listt)==2:
           bot.send_message(chat_id = update.message.chat_id , text = 
           "Done")

    if any (i in update.message.text for i in wordsn) and " 
    {}".format(update.message.from_user.first_name)  in listt:


    listt.remove("{}".format(update.message.from_user.first_name))
    bot.send_message(chat_id = update.message.chat_id , text = 
    "\n".join(listt))

    bot.send_message(chat_id = update.message.chat_id , text = len(listt))

       if len(listt)==0:
       bot.send_message(chat_id = update.message.chat_id , text = 
       "nobody")



print(listt)
print(len(listt))

updater.dispatcher.add_handler(MessageHandler(Filters.text , msg_filter ))
updater.start_polling()

2 个答案:

答案 0 :(得分:0)

我看到你的情况不对

 if len(listt) == 2

应该是

 if len(listt) == 0

答案 1 :(得分:0)

检查您的病情应该

if lend(listt) == 0