栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

油耗计算器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

油耗计算器


我的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)
) * 100

print(f'nnn{"油耗计算准确的条件":.^41}
nn{tip}
nn{"油耗计算准确的条件":.^41}')

print(f'nnn{"油耗计算器":_^45}
nnn{"上次里程:":>19}{milage_last:.1f} km
n{"当前里程:":>19}{milage_local:.1f} km
n{"加油状态:":>19}{Fuel_tank_status}
n{"油耗里程:":>19}{sum_milage:.1f} kmn
n{"Cut-off Rule":.^50}n
n{"当前油价:":>19}¥{oil_price:.2f} 元/升
n{"加油金额:":>19}¥{sum_of_money:.2f} 元
n{"加 油 量:":>20}{sum_oil:.2f} 升n
n{"Cut-off Rule":.^50}n
nn{"当前油耗:":>19}{oil_wear:.2f} 升/100km
nn{"":>23}¥ {oil_price * oil_wear / 100:.2f} 元/km
nnn{"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忽略警告


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739195.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号