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

Python中如何实现可同时为浮点数或字符串类型的变量?

现有代码核心问题

  • 浮点数转换结果未保存,后续所有比较均为字符串ASCII码比较,并非数值比较,例如"10"比较结果会小于"2"
  • 浮点数转换逻辑早于done输入判断,输入done时会先触发异常走错误分支
  • 异常分支仅定义了字符串字面量,未实际打印错误提示
  • 首次给largest赋值时未判空,直接拿数值与None比较会抛出类型错误
  • 非法输入内容未被跳过,会参与后续大小值计算,导致结果异常

修正后代码

largest = None
smallest = None
while True:
    num_input = input("Enter a number: ")
    # 优先判断退出条件
    if num_input == "done":
        break
    # 尝试转换为浮点数
    try:
        num = float(num_input)
    except:
        print("invalid input")
        # 非法输入跳过后续逻辑,重新发起输入
        continue
    # 计算最大值
    if largest is None or num > largest:
        largest = num
    # 计算最小值
    if smallest is None or num < smallest:
        smallest = num
    print(num)

print("Maximum is", largest)
print("Minimum is", smallest)

修正后的代码完全匹配需求:输入同时支持数字(自动转换为浮点数执行数值比较)和done字符串(命中直接退出程序),非法输入会触发提示且不影响正常计算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:15:08