求助:运行Python代码时出现TypeError: can't multiply sequence by non-int of type 'float'错误
错误原因与解决方法
错误根源
你碰到的TypeError: can't multiply sequence by non-int of type 'float',是因为input()函数获取的bill是字符串类型。字符串只能和整数相乘(作用是重复字符串),和浮点数相乘就会触发这个错误。
解决代码
直接把bill转换成float类型就行,既支持整数账单也支持小数账单,同时把人数ppl转成整数更合理(毕竟人数不会是小数),完整修改后的代码:
# 转换账单金额为float类型 bill = float(input("What is your total amount? ")) persent = float(input("How much you wanna tip? 10%, 12% or 15%? ")) # 人数转成int类型 ppl = int(input("How many ppl are spliting the bill? ")) tip_rate = persent / 100 # 计算含小费的总账单 total_bill = bill * (1 + tip_rate) # 计算人均应付金额 per_person_cost = total_bill / ppl # 格式化输出,保留两位小数 print(f"Each person needs to pay: ${per_person_cost:.2f}")
关键修改点
bill = float(input(...)):把输入的账单字符串转为浮点数,解决类型不匹配问题ppl = int(input(...)):人数转为整数,符合实际场景- 补充了总账单和人均金额的计算逻辑,比原代码只算小费更实用
内容的提问来源于stack exchange,提问作者FACTOR.EXE
相关产品推荐
相关产品推荐

