在不同测量单位之间转换
firkin的Python项目详细描述
菲尔金是什么?
firkin是一个python模块,用于在不同的度量之间进行转换 单位。
用法
首先,我们创建一个unitmanager的实例
>>> um=UnitManager()
接下来我们创建两个单元族。第一个是liter和 使用SIFamily自动创建带有si前缀的单位:
>>> um.add(SIFamily(base='l', name='liter'))
现在我们的UnitManager知道了fl,pl,nl,…,ml,gl,tl。
10000毫升是多少升?:
>>> um.convert_to_unit(1e4, 'ml', 'l') (Decimal("10.0000"), 'l')
接下来,我们手工创建一个家庭:
>>> f=Family(name='f', base='gallon') >>> f.add('barrel', 36, 'gallon') >>> f.add('kilderkin', 0.5, 'barrel') >>> f.add('firkin', 0.5, 'kilderkin')
现在我们有一个叫做f的家庭,他们以加仑为基础,知道 木桶,基尔德金和菲尔金也是。
一个半加仑是多少加仑?:
>>> f.convert(1, 'firkin', 'gallon') (Decimal("9.00"), 'gallon')
什么是表达3基尔德金最好的方式?:
>>> f.autoconvert(3, 'kilderkin') (Decimal("1.50"), 'barrel')
要在族f和族liter之间进行转换,需要将f添加到 我们的UnitManager和告诉多少升(家庭的基本单位liter)a 加仑(家庭基本单位f)是:
>>> um.add(f, other='liter', factor=4.54609)
当然,UnitManger也可以将燃油转换成加仑:
>>> um.convert_to_unit(1, 'firkin', 'gallon') (Decimal("9.00"), 'gallon')
但它也能把弗金转换成升:
>>> um.convert_to_unit(1, 'firkin', 'l') (Decimal("40.9148100"), 'l')
或者找到一种最好的方法用一个单位表示一公升 家庭f:
>>> um.convert_to_family(1, 'l', 'f') (Decimal("0.219969248299"), 'gallon')
也适用于桶:
>>> um.convert_to_family(1, 'barrel', 'f') (Decimal("1.00"), 'barrel')