我的CSDN主页My Python 学习个人备忘录我的HOT博
那天,同事们聊起油耗的问题,但我们五个同事没一个能整得明白看似“简单”的油耗问题。
于是,我决定用代码撸一个“计算器”,只管输入油价和加油金额就好。
在网络搜索,找不到一种比“小熊油耗”更好的计算油耗的方法。我个人以为这个方法是比较精确的。计算分两种加油习惯:
一、油表亮灯(加油提示指示灯亮)加油
二、油箱加满加油
前者前一次加油量即是区间用油,后者后一次加油是区间用油。两种习惯对油耗计算没什么影响,但后一种习惯更为方便。我是用“油箱加满”滴。鸞鸞
代码运行效果
“用户输入,都是不可靠的”,我不记得这句话从哪里“学”来,但却“深以为然”。所以,自从学会 trt: … except : 以后,只要涉及用户输入,我都会加上异常捕获,不至于让我的代码因 python 抛出错误而终止运行。有的时候也会用 if … : … else: … ,这个练习中的,油箱状态选择输入。
自定义“错误提示”函数
def error(): s = ''' 错误提示打印 ''' input(f'nn{s:=^44}nn{"输入错误!请重试。":^41}nn{"":*^50}n')
油箱状态选择异常捕获
if k not in ('1', '2'): error()else: Fuel_tank_status = s[k := int(k) - 1][3:] break
(如果从语句注释不能清楚作用,请评论区留言指教和探讨。欄)
# coding: utf-8''' 敬请注意油耗计算表达式使用了海象运算符 := (3.9+ python版本特有运算符),如表达式代码不作修改请在 Python 3.9+ 环境运行。'''def error(): s = ''' 错误提示打印 ''' input(f'nn{s:=^44}nn{"输入错误!请重试。":^41}nn{"":*^50}n')tip = ''' 两次加油时油箱状态必须一致,才能 准确计算油耗。 上一次“油箱加满”(或者“油表亮灯”—— 加油提示指示灯亮) 时,记录下里程,待到再次“油箱加满” (或者“油表亮灯”)时,即可准确计算区间 油耗。 上次“油表亮灯”时的加油量,即 是上次“油表亮灯”到这次“油表亮灯” 所跑里程用油;这次“油箱加满”的加油 量,即是上次“加满”到这“加满”所跑 里程用油。 如果要长期观测油耗,请任选“油表亮灯” “油箱加满”一种,坚持记录,可以即时发现 油耗异常,对爱车进行检修。'''print(f'nnn{" 油耗计算 ":_^46}')s = '1、油箱加满', '2、油表亮灯'while True: print(f'n{"":.^50}nn{" ".join(s):^42} n{".":.>50}') k = input(f'{"请选择油箱状态:":>16}') if k not in ('1', '2'): error() else: Fuel_tank_status = s[k := int(k) - 1][3:] break print(f'nnn{"油耗里程区间录入":^42}n{"":-^50}')while True: #录入里程 try: milage_last, milage_local = map(float, (input(f'{s:>14}:') for s in (f'上次“{Fuel_tank_status}”里程', f'本次“{Fuel_tank_status}”里程'))) break except Exception as error_s: print(f'nnn错误类型:n{error_s}n{"":->50}n') error()if k == 0: print(f'nnn{f"本次“{Fuel_tank_status}”加油":^42}n{"":-^50}')elif k == 1: print(f'nnn{f"上次“{Fuel_tank_status}”加油":^42}n{"":-^50}')while True: #录入油价和加油金额 try: oil_price, sum_of_money = map(float, (input(f'{s:>14}:') for s in ("油站油价", '加油金额'))) break except Exception as error_s: print(f'nnn错误类型:n{error_s}n{"":->42}n') error()#计算油耗(运用了 python 3.9+ 才支持的海象运算符)oil_wear = ((sum_oil := sum_of_money / oil_price) / (sum_milage := milage_local - milage_last)) * 100print(f'nnn{"油耗计算准确的条件":.^41}nn{tip}nn{"油耗计算准确的条件":.^41}')print(f'nnn{"油耗计算器":_^45}nnn{"上次里程:":>19}{milage_last:.1f} kmn{"当前里程:":>19}{milage_local:.1f} kmn{"加油状态:":>19}{Fuel_tank_status}n{"油耗里程:":>19}{sum_milage:.1f} kmnn{"Cut-off Rule":.^50}nn{"当前油价:":>19}¥{oil_price:.2f} 元/升n{"加油金额:":>19}¥{sum_of_money:.2f} 元n{"加 油 量:":>20}{sum_oil:.2f} 升nn{"Cut-off Rule":.^50}nnn{"当前油耗:":>19}{oil_wear:.2f} 升/100kmnn{"":>23}¥ {oil_price * oil_wear / 100:.2f} 元/kmnnn{"The End":_^50}n')
要是能把代码弄成 app 就好了,不在 python 环境也可以计算油耗。学会了 “app” ,一定撸一个“真正”的油耗计算器。邏邏
我的HOT博:
“快乐数”判断(当前阅读1171)罗马数字转换器(用罗马数字构造元素的值取模实现)(当前阅读1436)罗马数字转换器|罗马数字生成器(当前阅读1913)Hot:让QQ群昵称色变的神奇代码(当前阅读3980)斐波那契数列(递归实现和for实现)(当前阅读2072)排序数组中查找元素的重复起止位置(当前阅读1205)柱状图中最大矩形(当前阅读1608)电话拨号键盘的字母组合(当前阅读1227)密码强度检测器(当前阅读1671)求列表平衡点(当前阅读1705) 字符串统计(当前阅读2179)尼姆游戏(代码优化版)(当前阅读826)尼姆游戏(聪明版首发)(当前阅读3248)
参考文章:
上一篇:
下一篇:
好文力荐:靠谱程序员的好习惯
OPP三大特性:封装中的property通过内置对象理解python'正则表达式python中“*”的作用Python 完全自学手册海象运算符Python中的 `!=`与`is not`不同学习编程的正确方法
来源:老齐教室
CSDN实用技巧博文:
8个好用到爆的Python实用技巧python忽略警告