You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Discord.py中实现非斜杠命令的自定义输入随机选择功能

解决方案

下面是完善后的代码,实现支持任意数量自定义选项的随机选择功能:

import discord
import random
from discord.ext import commands

# 初始化机器人,替换成你的前缀和Token
bot = commands.Bot(command_prefix="!", intents=discord.Intents.all())

@bot.command(name="random")
async def random_choice(ctx, *args):
    # 检查是否提供了选项
    if not args:
        await ctx.send(f"{ctx.author.mention} 请提供至少一个选项,比如:`!random text1 text2 text3`")
        return
    
    # 随机选中一个选项
    selected = random.choice(args)
    
    # 创建结果Embed
    embed = discord.Embed(
        colour=0xc81f9f,
        title="随机选择结果",
        description=f"{ctx.author.mention} 随机选中了:**{selected}**"
    )
    await ctx.send(embed=embed)

# 启动机器人
bot.run("你的机器人Token")

关键改进说明:

  • 用*args接收参数:这能让命令支持任意数量的输入选项,完全匹配你想要的!random text1 text2 text3...使用场景。
  • 增加参数校验:如果用户没输入任何选项,会发送提示信息,避免程序报错。
  • 规避内置关键字:不再用str、list这类Python内置关键字当变量名,避免语法冲突。
  • 优化内容表述:把Embed的标题和描述改成贴合“随机选择”功能的内容,结果展示更直观。
  • 规范命令命名:明确将命令名设为random,和你期望的触发指令一致(原代码用的是r作为命令名)。

内容的提问来源于stack exchange,提问作者MrCooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:16:24