如何让' '.join(context.args)支持接收int类型而非自动转字符串?
首先明确:你使用的框架中,context.args 会默认将所有用户输入的命令参数解析为字符串类型,没有原生支持直接接收int类型数值的能力,你可以通过类型转换实现需求。
单数字输入场景(用户仅输入1个数字)
直接对拼接后的内容做类型转换即可,建议用异常捕获兼容负数、非法输入等场景:
def data(update: Update, context: CallbackContext): user_says = ' '.join(context.args) try: # 转换为int类型 user_input_num = int(user_says) except ValueError: # 输入不是合法整数时的提示逻辑 update.message.reply_text("请输入有效的整数") return # 后续直接使用user_input_num即可,为int类型
多数字输入场景(用户输入多个数字参数)
不需要先拼接,直接遍历context.args逐个转换:
def data(update: Update, context: CallbackContext): try: input_num_list = [int(arg) for arg in context.args] except ValueError: update.message.reply_text("所有参数都需要为有效整数") return # input_num_list中的元素均为int类型
内容的提问来源于stack exchange,提问作者Clot
相关产品推荐
相关产品推荐

