python单位换算例子

本文介绍了作者在编程中如何通过学习数据结构和模块化思想,将之前基于条件判断的硬编码代码替换为使用数据结构进行单位转换,从而提高代码可读性和复用性。作者以长度和质量转换为例,展示了这种改进方法的实际应用。
摘要由CSDN通过智能技术生成

之前写的代码就是脑子想到啥就写啥,一堆if--slse 确实增加代码量,还能让领导觉得干得非常卖力。但是都是硬编码,代码简直无法直视,今天学了一个比较简单的方法,还把数据结构进行了简单的理解,照着写了下程序,确实是要比if-slse那种想到啥写啥的要好很多,记录一下

上代码

def converter(value,category='length',from_unit='cm',to_unit='in'):
    all_units={
       'length':[['m',1],['cm',0.01],['in',0.0254]],
        'mass':[['kg',1],['g',0.001],['lb',0.4535924]]
    }
    convert_value = None
    if category in all_units.keys():
        untits = all_units[category]
        if from_unit != untits[0][0]:#如果不是基准单位
            # print("从非基准单位过来的")
            for unit in untits[1:]: #把每个数组拿出来 
                if from_unit == unit[0]:
                    convert_value = value * unit[1]
                    print("基准单位是",untits[0][0],"换算后是",convert_value)
        else:
            convert_value = value #是基准单位
            
        if convert_value:
            # print("从基准单位到转换单位")
            if to_unit == untits[0][0]:#换算单位也是基准单位,直接返回
                return convert_value
            for unit in untits[1:]: #把每个数组拿出来 
                if to_unit == unit[0]:#得到的是单位
                    # print("转换的单位是",to_unit,unit)
                    convert_value = convert_value/unit[1]#这里的convert_value已经被换算成基准单位了
    return convert_value

print("=========我是有底线的===========")
a=converter(20,category='length',from_unit='cm',to_unit='in')
b=converter(20,category='mass',from_unit='lb',to_unit='g')
print(a,'======',b)
 

其实这些代码是可以抽出来的,做成数据文件存放在其他地方,是不是有所感觉,那些城市名称也可以使用这样的数据结构来存放呢。

    all_units={
       'length':[['m',1],['cm',0.01],['in',0.0254]],
        'mass':[['kg',1],['g',0.001],['lb',0.4535924]]
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值