Python尝试计算两个float相乘时抛出错误的问题咨询
代码问题排查
你的代码存在3个核心问题,按优先级排序如下:
- 类型转换未生效:
input()函数的返回值默认是字符串类型,你执行float(money)时没有将转换后的浮点结果重新赋值给money变量,此时money还是字符串类型,尝试和浮点数discount做乘法运算会直接抛出类型错误。 - 字符串拼接逻辑错误:即便修复了类型转换问题,后续
print语句中直接用+拼接字符串和数字类型也会触发类型错误,需要先将数字转换为字符串再拼接,或者直接使用格式化字符串输出。 - 业务逻辑写反:按照需求是金额高于阈值时应用折扣,但你当前的判断逻辑是金额高于阈值时输出原价,低于阈值时输出折扣价,和预期功能不符。
修正后可运行代码
money = float(input("how much are you paying ")) discount = 0.2 num = 20 if money > num: payment = money * discount else: payment = money print(f"you are paying {payment}")
内容的提问来源于stack exchange,提问作者MED
相关产品推荐
相关产品推荐

