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

编写用户输入数字处理函数,返回浮点型列表并修正代码问题

修正后的函数实现及问题分析

这里是完全符合需求的函数实现:

def num_print():
    output_list = []
    while True:
        user_input = input('Enter the digit\n')
        # 输入Stop时终止并返回转换后的浮点型列表
        if user_input == 'Stop':
            return [float(num) for num in output_list]
        # 按逗号分割输入的内容
        items = user_input.split(',')
        # 遍历每个分割后的元素
        for item in items:
            # 去除元素前后的空格,兼容带空格的输入格式
            cleaned_item = item.strip()
            # 判断是否为纯数字,符合条件则加入列表
            if cleaned_item.isdigit():
                output_list.append(cleaned_item)

原代码的核心问题:

  • 分割逻辑错误:原代码用split()(默认按空格分割),但需求中输入是逗号分隔(比如1,2,3),应改为split(',')才能正确拆分元素。
  • 数字判断逻辑错误:直接对整个输入字符串调用isdigit(),如果输入包含逗号(比如1,2),整个字符串不是纯数字会被直接跳过,正确做法是分割后逐个判断每个元素。
  • 提前返回导致转换不完整:原代码在Stop分支的循环里,刚转换第一个元素就执行return,导致仅第一个元素被转成浮点型就返回,循环根本无法完成全部转换。
  • 未处理输入空格:如果用户输入1 , 2这类带空格的格式,原代码无法正确识别数字,需要先去除每个元素的前后空格。

测试输入1,2,3,4,h,5,Stop,函数会返回[1.0, 2.0, 3.0, 4.0, 5.0],完全匹配预期效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:05:29