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

如何在Discord.py中将用户输入转换为int类型?

解决Discord.py中int()转换Message对象的错误

你用await bot.wait_for("message")拿到的是一个Message对象,不是用户输入的纯文本内容,直接传给int()肯定会报错——int()只接受字符串、字节类对象或数字类型,不认Message实例。

核心修正方法

提取Message对象的content属性,这才是用户发送的文本内容,再进行类型转换:

# 获取用户的Message对象
user_input_msg = await bot.wait_for("message")
# 提取文本后转换为整数,同时处理非数字输入的情况
try:
    answer = int(user_input_msg.content)
    # 这里编写转换成功后的逻辑
except ValueError:
    # 提示用户输入无效
    await user_input_msg.channel.send("请输入有效的整数!")

额外优化:限定回复用户

如果需要确保只有触发命令的用户才能回复,可以给wait_for添加检查条件(假设在命令上下文ctx中使用):

user_input_msg = await bot.wait_for(
    "message",
    check=lambda m: m.author == ctx.author and m.channel == ctx.channel
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:05:22