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

Python代码输入含特殊字符/浮点数触发ValueError的问题咨询

解决输入数字列表的兼容问题

原代码仅支持空格分隔的整数输入,遇到特殊字符、逗号分隔的浮点数时会报错,以下是改进方案:

问题分析

  • 仅依赖split()默认按空格分割,不支持逗号等其他分隔符
  • 直接转换数值类型时,无法处理非数字字符(包括作为小数分隔的逗号)
  • 无异常处理,输入错误直接终止程序

改进代码

import re

input_str = input("Type numbers here: ").replace(',', ' ')
items = [item.strip() for item in input_str.split() if item.strip()]

box = []
for item in items:
    # 把欧洲式小数(逗号当小数点)转换为标准格式
    num_str = re.sub(r'^(\d+),(\d+)$', r'\1.\2', item)
    try:
        num = float(num_str)
        box.append(num)
    except ValueError:
        print(f"忽略无效输入: {item}")

box.sort()
print(box)

功能说明

  • 支持空格或逗号分隔的数字输入(例如1 2,3 4.5或2,5 6)
  • 兼容欧洲式小数写法(例如2,5会自动转为2.5)
  • 自动过滤无法转换为数字的无效输入项
  • 默认升序排序输出(reverse=False可省略)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:53:14