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] - 输入包含分号、顿号等其他分隔符时,直接返回无效输入提示
- 支持负数、小数的合法输入识别
实现逻辑说明
- 新增输入字符合法性校验,仅允许数字、小数点、负号、逗号、空格五种字符输入,直接拦截其他分隔符的非法输入
- 使用正则分割逻辑同时适配三种输入场景:纯空格分隔、逗号加空格分隔、逗号无空格分隔
- 过滤分割后产生的空字符串,避免用户输入首尾带分隔符时出现转换错误
- 保留原有数值转换、长度判断的校验逻辑,兼容原代码的使用习惯
内容的提问来源于stack exchange,提问作者CoreVisional
相关产品推荐
相关产品推荐

