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

Python实现可兼容整数和浮点数输入的两数相乘功能

问题原因

原代码使用int()强制转换输入字符串,仅支持整数格式输入,遇到带小数点的浮点输入就会抛出ValueError: invalid literal for int() with base 10错误;如果直接替换为float(),整数输入计算后会输出带.0的浮点结果,不符合常规输出预期。

解决方案

修正后可同时兼容整数、浮点输入的代码如下:

def multiplication():
    a = input()
    b, c = a.split()
    # 统一转float计算,兼容整数、浮点格式的输入
    d = float(b) * float(c)
    # 自动适配输出格式,整数结果不会带.0
    print(int(d) if d % 1 == 0 else d)
代码说明
  • 移除了原代码中无意义的a.split()冗余行(该行仅做拆分但没有赋值给变量,不会产生实际作用)
  • 用float()转换输入值:float()可以同时识别整数格式(如"4")和浮点格式(如"4.5")的字符串,不会触发格式错误
  • 输出前做格式适配:如果计算结果取模1等于0,说明是整数,转成int输出避免带.0,否则直接输出浮点结果
  • 测试验证:输入4 5输出20,输入4.5 5输出22.5,两种场景都符合预期

可选优化

如果需要处理输入格式错误的场景(比如输入超过两个值、输入非数字内容),可以增加异常捕获逻辑:

def multiplication():
    try:
        a = input()
        b, c = a.split()
        d = float(b) * float(c)
        print(int(d) if d % 1 == 0 else d)
    except ValueError:
        print("输入格式错误,请输入两个用空格分隔的数字")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:48:01