Python实现电费计算代码出现语法错误求助

代码问题排查
- 冗余输入:已经定义变量接收用电量输入,后续又重复弹出用电量输入框让用户二次输入,前期输入的变量完全没有被使用,逻辑冗余。
- 字符串拼接错误:两处print语句用逻辑运算符
and拼接内容,属于语法错误,Python中and仅用于逻辑判断,不能用来拼接输出内容。 - 输出语句语法错误:无折扣分支的print语句中,字符串后直接用冒号连接变量,不符合Python语法规范。
- while循环错误:
- 循环体缩进异常,前面多了多余的空格,会触发缩进报错
- 循环条件
discount_contract != "yes" or "no"逻辑完全错误,该条件会永远返回True,正确写法应该是判断输入值不在("yes", "no")范围内 - 循环内的输入结果没有赋值给
discount_contract变量,永远无法退出循环
- 折扣计算逻辑错误:
VAT2 = VAT - D没有业务逻辑支撑,VAT是税率比例,D是配电总费用,二者单位不统一,计算结果无效。
修正后完整代码
name = input("请输入你的名字:") surname = input("请输入你的姓氏:") # 直接转成浮点型,避免重复输入 electric_amount = float(input("请输入用电量(单位:kwh):")) discount_contract = input("你是否有折扣合同?(yes/no):") # 循环校验输入合法性,直到用户输入yes或者no为止 while discount_contract not in ("yes", "no"): discount_contract = input("输入无效,请重新回答你是否有折扣合同?(yes/no):") AU = 0.91555 VAT = 0.18 DU = 0.2651 A = AU * electric_amount D = DU * electric_amount F = A * 0.007 total_before_VAT = A + D + F total_electric_bill = (1 + VAT) * total_before_VAT if discount_contract == "yes": # 可根据题目实际折扣规则调整此处计算逻辑 total_electric_bill = total_electric_bill * 0.9 print(f"尊敬的{name} {surname},") print(f"你本次用电量为{electric_amount}kwh,你有折扣合同,最终电费账单为:{round(total_electric_bill, 2)}") if discount_contract == "no": print(f"尊敬的{name} {surname},") print(f"你本次用电量为{electric_amount}kwh,无折扣合同,最终电费账单为:{round(total_electric_bill, 2)}")
内容的提问来源于stack exchange,提问作者NaNo Blin
相关产品推荐
相关产品推荐

