命令'random.choice(list)'没有给出任何输出[关闭]

Posted

技术标签:

【中文标题】命令\'random.choice(list)\'没有给出任何输出[关闭]【英文标题】:The command 'random.choice(list)' doesn't give any output [closed]命令'random.choice(list)'没有给出任何输出[关闭] 【发布时间】:2021-12-24 20:31:15 【问题描述】:

我一直致力于使用 python 制作一个不和谐的机器人。

我输入了random.choice 以从列表flirt 中获取消息。此外,该函数需要读取列表中的特定单词sad,然后响应flirt

这是我的python代码:

async def on_message(message):

    if message.author == client.user:
        return

    for word in sad:
        if word in message.content:
            response = random.choice(flirt)
            await message.reply(response)
            break

两个列表示例:

sad = ["sad", "depressed", "lonely", "miserable"]
flirt = ["Baby I will be the broom that sweeps all the sadness in your heart.", "If a star would cure sadness, your heart would be empty of sadness."]

【问题讨论】:

奇怪。 1/random.choice 不起作用是什么意思?脚本挂了吗?函数什么都不返回吗?还是一个空字符串?等 2/ 你确定random.choice 被调用了吗?通话中的flirt 是您定义的那个?等你可以通过定义自己的random_choice函数进行测试,并在其中登录random.choice返回的参数和值 嘿,1. 脚本没有挂起 2. 函数不返回任何内容 3. 调用了 random.choice 并且也导入了库 仍然没有任何反应 【参考方案1】:

on_message() 之前有@client.event 吗?

@client.event
async def on_message(message):
...

这是我唯一改变的东西,你的代码完美无缺。

您可能还想添加 lower() 来捕捉不是小写的单词(例如 SAD):

for word in sad:
    if word in message.content.lower():

【讨论】:

在此之前我使用过@client.event,而我是向机器人提供输入只是为了检查的人,所以所有内容都是手动小写的。 那么它应该可以正常工作。您是否收到任何错误或根本没有任何输出? 没有错误,我也没有得到任何输出。我不知道这里有什么问题 也许检查您的on_message 是否与print("test") 一起工作。 好的,我试试。

以上是关于命令'random.choice(list)'没有给出任何输出[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

mypy:如何最好地处理 random.choice

Python 中的 numpy.random.choice()

嵌入 discord.py 中的 Random.choice 不起作用

验证码

numpy.random.choice和random.choice的输入参数有区别吗?

如何在python中不重复采样? [复制]