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

Python如何实现input输入支持逗号分隔数字和短横线区间解析

数字区间输入解析功能实现

你无需使用正则表达式,仅通过基础的字符串分割判断即可完成需求,修改后的完整代码如下:

def convert_to_int(user_input_str):
    input_list_str = user_input_str.split(",")
    number_list = []
    for item in input_list_str:
        # 去除片段前后空格,兼容用户输入带空格的场景
        item = item.strip()
        if '-' in item:
            # 仅分割1次,避免多横线输入导致的报错
            start, end = item.split('-', 1)
            start_num = int(start.strip())
            end_num = int(end.strip())
            # range为左闭右开特性,右边界需要+1才能包含结束值
            number_list.extend(range(start_num, end_num + 1))
        else:
            # 普通单数字直接转换加入列表
            number_list.append(int(item))
    return number_list


if __name__ == "__main__":
    print("enter list, each integer separated by a comma")
    user_input_str = input()
    print("From user : ", convert_to_int(user_input_str))

功能验证

输入样例1,2,3,9-14,21,运行后输出结果为[1, 2, 3, 9, 10, 11, 12, 13, 14, 21],完全匹配预期要求。
如果需要兼容非法输入场景(比如非数字字符、区间右值小于左值等),可以在数字转换和区间生成逻辑外包裹try-except语句捕获异常,给用户对应错误提示即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:30:01