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

浮点操作编程任务遇ValueError错误,求代码修正方案

错误分析
  • 输入逻辑错误:你把用户输入的数字内容直接强转成int,但任务允许输入小数,且用户可能输入多数字或带小数点的内容,int()无法解析这类输入,直接触发ValueError。另外任务明确要求输入10个数,无需让用户输入数量,直接循环10次即可。
  • 列表追加位置错误:user_numbers.append(el)写在for循环外部,只会把最后一次输入的数字加入列表,前9次输入的数据全部丢失。
修正后的完整代码
user_numbers = []

# 循环10次获取用户输入的浮点数
for _ in range(10):
    while True:
        try:
            num = float(input("请输入一个数字(可整数或小数):"))
            user_numbers.append(num)
            break
        except ValueError:
            print("输入无效,请输入合法的数字!")

print("你输入的10个数字列表:", user_numbers)

# 1. 计算总和
total = sum(user_numbers)
print(f"总和:{total}")

# 2. 最大值的索引
max_value = max(user_numbers)
max_index = user_numbers.index(max_value)
print(f"最大值的索引:{max_index}")

# 3. 最小值的索引
min_value = min(user_numbers)
min_index = user_numbers.index(min_value)
print(f"最小值的索引:{min_index}")

# 4. 平均值(保留两位小数)
average = total / 10
print(f"平均值:{average:.2f}")

# 5. 计算中位数
sorted_numbers = sorted(user_numbers)
median = (sorted_numbers[4] + sorted_numbers[5]) / 2
print(f"中位数:{median}")
关键修正说明
  • 直接通过range(10)循环10次获取输入,贴合任务要求的“输入10个浮点数”需求。
  • 加入异常处理,避免用户输入非数字内容导致程序崩溃。
  • 将append操作移入循环内部,确保每一个输入的数字都被存入列表。
  • 补充了任务要求的所有计算操作:总和、最大/最小值索引、保留两位小数的平均值、中位数计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:45:45