使用Python进行单位转换

Ric*_*cky 4 python

我在Ex-5学习练习中艰难地学习Python,它指出

尝试编写一些将英寸和磅转换为厘米和公斤的变量。不要只输入测量值。用Python计算数学。

到目前为止,我已经做到了:

inches = 1
centimeters = 1
convert = centimeters * 2.54
print inches
print centimeters 
print "1 inch is %s centimeters." % convert
Run Code Online (Sandbox Code Playgroud)

现在将显示1英寸的转换,如何更改它以便用户输入以英寸或厘米为单位的金额,并正确显示转换?

我是否正确地认为,要成功地转换值,我将不得不手动输入值,或者是否有办法在Python中完成此操作?

Mar*_*oma 5

正确的方法是对单元使用品脱或类似的库:

import pint
ureg = pint.UnitRegistry()
my_size = 1.74*ureg.meter
print(my_size)  # 1.74 meter
print(my_size.to(ureg.inch))  # 68.503937007874 inch
Run Code Online (Sandbox Code Playgroud)

优点是变量本身具有有关使用哪个单位的信息。即使您除法,此操作仍将继续:

import pint
ureg = pint.UnitRegistry()
distance = 40123*ureg.meter
time = 1.2*ureg.hour
speed = distance/time
print(speed)  # 33435.833333333336 meter / hour
print(speed.to(ureg.inch/ureg.hour))  # 1316371.3910761154 inch / hour
Run Code Online (Sandbox Code Playgroud)