Python新手开发加油站项目 选择Total选项提示不存在a元素求助
加油站项目代码问题排查与修复
报错原因定位
你贴出的代码中Total分支仅引用了初始化时就定义的total变量,没有任何引用变量a的逻辑,不会触发「不存在'a'元素」的报错。如果实际运行时出现该错误,优先核对你本地实际执行的代码的Total分支,是否存在误写引用a的语句(比如把total错写为a)。
现有代码其他可修复问题
你当前贴出的代码还存在以下几个需要修正的bug:
- 95号汽油计算分支存在错误赋值:
b = print(b, "Manat")中print函数返回值为None,将其赋值给b无意义,直接保留print语句即可 - 柴油的提示单价与计算逻辑不符:用户提示写的是「Diesel - 0.90 cents」,但实际计算用的是
l * 1.90,根据你的业务需求修正其中一处即可 while循环条件冗余:while True and infiniteLoop可直接简化为while infiniteLoop- 缺少
Market、Restaurant两个选项的对应处理逻辑,用户选择后无响应,可后续补充对应业务代码
修复后完整代码
print("Welcome to the Gas Station!") infiniteLoop = True total = 0 # 简化循环条件 while infiniteLoop: print("\n Gasoline \n Market \n Restaurant \nTotal \n quit to exit") select = input("Select One:") if select == "Gasoline": select1 = input("92 - 1 manat \n95 - 1.40 manat \n Diesel - 0.90 manat \n Premium - 2 manat \nWhat Gasoline Do You Want:") l = int(input("type liter:")) if select1 == "92": a = l * 1 total = total + a print(a, "Manat") print("Gasoline Injected.") elif select1 == "95": b = l * 1.40 total += b # update total amount # 删掉错误的b=赋值 print(b, "Manat") print("Gasoline Injected.") elif select1 == "Diesel": # 这里统一和提示的0.90manat对齐,如果你实际要1.90就改提示文字 c = l * 0.90 total = total + c # update total print(c, "Manat") print("Gasoline Injected.") elif select1 == "Premium": d = l * 2.0 total = total + d print(d, "Manat") print("Gasoline Injected.") # 补充非法油号输入提示 else: print("请输入有效的油号") elif select == "Total": print("Total Amount:", total) elif select == 'quit': infiniteLoop = False # 补充未开发功能提示与非法选项提示 elif select == "Market" or select == "Restaurant": print("该功能尚未开发完成,敬请期待") else: print("请输入有效的选项")
内容的提问来源于stack exchange,提问作者CavidaN
相关产品推荐
相关产品推荐

