为什么我编写的Python小费计算器代码会重复打印两次百分比和小费金额?
小费计算器重复打印问题解决
问题原因
你代码里的三处for循环属于多余的错误写法:
str(15)会转为包含'1'、'5'两个元素的字符串,遍历的时候会执行2次循环内的打印语句,自然会输出两次15%的计算结果- 同理
str(20)、str(25)都是双字符,对应循环各跑2次,所以三个比例的结果全都重复打印两次
修复方案
直接删掉三个多余的for循环,保留循环内部的打印语句即可,这里同时提供汉化优化后的简洁版本:
print("小费计算器") print() re_run = "y" while re_run.lower() == "y": cost_of_meal = float(input("餐费金额:")) # 定义小费比例列表,后续调整比例只需修改该列表即可 tip_percents = [15, 20, 25] print() for percent in tip_percents: tip = round(cost_of_meal * percent / 100, 2) total = round(cost_of_meal + tip, 2) print(f"{percent}%") print(f"小费金额:{tip}") print(f"总金额:{total}\n") print() re_run = input("\n是否继续计算?y/n:") if re_run.lower() != "y": break print("\n感谢使用小费计算器,再见!")
如果你不想调整原有代码结构,仅需删除打印部分的三行for循环声明即可:
# 删掉for循环行,直接执行打印 print("15%") print(("Tip amount: ") + str(tip_1)) print(("Total amount: ") + str(total_amount_1) + "\n") print("20%") print(("Tip amount: ") + str(tip_2)) print(("Total amount: ") + str(total_amount_2) + "\n") print("25%") print(("Tip amount: ") + str(tip_3)) print(("Total amount: ") + str(total_amount_3)+ "\n")
内容的提问来源于stack exchange,提问作者Ali250
相关产品推荐
相关产品推荐

