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

如何检查输入为浮点数或整数?优化Python代码支持浮点数输入

解决Python输入浮点数/整数的验证问题

原代码的核心问题在于使用x.isnumeric()验证输入,该方法仅能识别无小数点、无符号的纯数字字符串,无法处理浮点数格式(如"1.5")。以下是修改后的代码,支持整数和浮点数输入,同时处理无效输入的情况:

print("hello")
mass_list = []
volume_list = []

# 获取质量输入
while True:
    x = input("Enter Mass: ")
    if x == "":
        break
    try:
        m = float(x)
        mass_list.append(m)
    except ValueError:
        print("请输入有效的数字(整数或浮点数)")

# 获取体积输入,数量匹配质量列表
while len(volume_list) < len(mass_list):
    x = input("Enter volume: ")
    try:
        v = float(x)
        volume_list.append(v)
    except ValueError:
        print("请输入有效的数字(整数或浮点数)")

print(mass_list)
print(volume_list)

# 计算密度列表
density = [mass_list[n]/volume_list[n] for n in range(len(mass_list))]
print(density)

# 计算平均密度并保留两位小数
avg_density = sum(density) / len(density)
print("{0:.2f}".format(avg_density))

关键修改说明

  • 输入验证逻辑:用try-except捕获float()转换的ValueError,只要输入能被转为浮点数(包括整数格式的字符串),就视为有效输入,完美覆盖整数和浮点数场景
  • 空输入处理:质量输入循环中,直接判断输入为空时跳出循环,逻辑更清晰
  • 代码优化:密度计算改用列表推导式,平均密度计算用sum()简化代码,比原代码更简洁高效

测试预期输入:

  • 质量输入:10、15、20、空值
  • 体积输入:1、1.5、2
  • 最终输出平均密度为10.00,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:15:36