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

Python计算均值中位数众数时如何兼容逗号和空格分隔的用户输入

Python兼容多分隔符输入的实现方案

以下是修改后可直接运行的代码:

import re

def get_dataset():
    while True:
        raw_input = input("\nEnter Dataset: ").strip()
        # 校验输入仅包含允许的字符:数字、小数点、负号、逗号、空格
        if not re.fullmatch(r'^[\d\s,\.-]+$', raw_input):
            print("\nInvalid Input")
            continue
        # 按任意数量的逗号或空格分割,过滤空字符串
        split_res = [item for item in re.split(r'[, ]+', raw_input) if item]
        try:
            dataset = [float(num) for num in split_res]
        except ValueError:
            print("\nInvalid Input")
            continue
        if len(dataset) < 2:
            print("\nPlease enter at least 2 values.")
        else:
            return dataset

print(get_dataset())

效果测试

  • 输入1, 2, 3 → 输出[1.0, 2.0, 3.0]
  • 输入1 2 3 → 输出[1.0, 2.0, 3.0]
  • 输入1,2,3 → 输出[1.0, 2.0, 3.0]
  • 输入包含分号、顿号等其他分隔符时,直接返回无效输入提示
  • 支持负数、小数的合法输入识别

实现逻辑说明

  1. 新增输入字符合法性校验,仅允许数字、小数点、负号、逗号、空格五种字符输入,直接拦截其他分隔符的非法输入
  2. 使用正则分割逻辑同时适配三种输入场景:纯空格分隔、逗号加空格分隔、逗号无空格分隔
  3. 过滤分割后产生的空字符串,避免用户输入首尾带分隔符时出现转换错误
  4. 保留原有数值转换、长度判断的校验逻辑,兼容原代码的使用习惯

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 14:54:04