Python入门作业:if语句报错如何修复?小费计算程序调试
问题解决:餐厅小费计算程序报错修复
错误原因
你遇到的报错核心问题是:input()函数获取的输入默认是字符串(str)类型,直接拿字符串和浮点数13.4做大小比较,或者用字符串乘以数字,Python都会抛出类型不兼容的错误——不同数据类型无法直接执行这类数值运算。
修复后的代码
按照题目要求用if语句实现的正确代码如下:
# 将输入转换为浮点数,确保能进行数值运算 bill = float(input("Enter bill amount: ")) # 计算账单的15%小费 calculated_tip = bill * 0.15 # 用if语句判断,取15%小费和2美元中的较大值 if calculated_tip >= 2: print(calculated_tip) else: print(2)
补充优化说明
- Python变量名惯例用小写,建议把
Bill改成bill,代码可读性更高 - 也可以直接通过账单金额阈值判断(2美元小费对应的账单金额是
2 / 0.15 ≈ 13.333),写法如下,同样符合题目要求:
bill = float(input("Enter bill amount: ")) if bill > 13.333: print(bill * 0.15) else: print(2)
这里用13.333而非13.4,是为了保证账单金额超过精确阈值时,15%的小费刚好达到或超过2美元。
内容的提问来源于stack exchange,提问作者drc91
相关产品推荐
相关产品推荐

