代码之家  ›  专栏  ›  技术社区  ›  chester

对python的不一致性有无疑问

  •  0
  • chester  · 技术社区  · 2 年前

    我正在尝试制作一个Discord机器人,它可以问一个是或否的问题,并回答用户的答案。我尝试了以下代码:

    @bot.event
    async def on_message(message):
        if message.content == 'ask me a question':
            await message.channel.send('Yes or No')
            if message.content == 'yes':
                await message.channel.send('correct!')
            elif message.content == 'no':
                await message.channel.send('wrong')
    

    机器人会回答“问我一个问题”,但当我输入“是”或“否”时,我没有得到回应。为什么它不工作,我该如何修复它?

    1 回复  |  直到 2 年前
        1
  •  2
  •   Clement Genninasca    2 年前

    问题是你没有要求它等待另一条消息。这意味着你的变量 message 仍然是“问我一个问题”的信息。Intead,你应该使用 bot.wait_for("message")

    @bot.event
    async def on_message(message):
        if message.content == 'ask me a question':
            await message.channel.send('Yes or No')
    
            response = await bot.wait_for("message")
            if response.content == 'yes':
                await message.channel.send('correct!')
            elif response.content == 'no':
                await message.channel.send('wrong')