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

Python代码报ValueError无法将字符串转换为浮点数问题求助

代码错误修复说明

现有代码存在的问题

  • 无输入校验逻辑:直接将用户输入转为float类型,若输入非数字、格式非法(如多个小数点)会触发ValueError,也未实现「最多保留三位小数」的需求校验。
  • 无限循环无出口:while True未设置终止条件,代码永远无法执行到后续的统计打印逻辑。
  • 平均值计算错误:格式化输出平均时长时直接传入整个时长列表,未计算列表总和除以元素个数得到平均值。
  • 打印语句语法错误:最短、最长时长的打印语句中,字符串和变量之间缺少逗号分隔,会触发语法错误。

修复后可运行代码

length = []
print("请问你频道内每个视频的时长是多少?")
print("提示:每次输入一个时长(最多保留三位小数),输入q结束录入")

while True:
    input_content = input("请输入单个视频时长:")
    # 处理退出逻辑
    if input_content.strip().lower() == 'q':
        if not length:
            print("未录入任何有效时长,无法进行统计")
        break
    # 校验输入合法性
    try:
        length_num = float(input_content)
        # 校验小数位数不超过3位
        if round(length_num, 3) != length_num:
            print("输入错误:时长最多保留三位小数,请重新输入")
            continue
        length.append(length_num)
    except ValueError:
        print("输入错误:请输入合法的数字内容,请重新输入")

# 仅当录入有效数据时执行统计
if length:
    average = sum(length) / len(length)
    print('所有视频的平均时长为:{:.3f}'.format(average))
    print("最短视频时长为:", min(length))
    print("最长视频时长为:", max(length))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:54:02