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

Python开发货币转换器报can't multiply sequence by non-int of type 'float'错误原因?

报错原因

你遇到的TypeError: can't multiply sequence by non-int of type 'float'报错的直接原因是:你尝试用浮点数类型的inp乘以字符串类型的din,Python仅支持字符串和整数做乘法(用于重复字符串),不支持字符串和浮点数的乘法运算,因此抛出该错误。

深层逻辑问题出在你对din变量的处理:

  • 你在din的赋值语句里给input返回的字符串套了float()转换,但input提示用户输入的是eur/ars/mxn/pen/cop/brl这类货币代码字符串,无法转为float,这一步本身就会先触发值错误;你遇到类型错误说明实际运行的代码里din没有做float转换,直接拿到了用户输入的字符串。
  • 即使转换成功,你也没有把用户输入的货币标识和你预先定义的对应汇率做关联,运算逻辑完全不成立。
修复方案

你需要调整din的取值逻辑,通过映射关系把用户输入的货币代码对应到汇率值,修改后的可运行代码如下:

# 货币转换器
inp = float(input('输入要兑换的金额:'))
din = input('输入要兑换的目标货币代码(可选:eur/ars/mxn/pen/cop/brl):')

# 用字典存储货币代码和对应汇率的映射,替代分散的变量
rate_dict = {
    'eur': 0.84,
    'ars': 97.94,
    'mxn': 19.90,
    'pen': 4.10,
    'cop': 3.800,
    'brl': 5.17
}

# 先校验输入的货币是否支持
if din not in rate_dict:
    print('你输入的货币类型暂不支持')
else:
    result = inp * rate_dict[din]
    print(f'兑换后金额:{result},货币类型:{din}')

主要修改点:

  • 移除了din赋值时的float()转换,直接接收用户输入的货币代码字符串
  • 用字典统一存储货币与汇率的映射,查询更便捷,也方便后续新增货币类型
  • 增加了输入合法性校验,避免用户输入未支持的货币代码时程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:24:03