使用Python进行单元转换

使用Python进行单元转换,python,Python,“我正在经历艰苦的学习Python的过程,在Ex-5学习训练中,”它说 尝试编写一些将英寸和磅转换为厘米和千克的变量。不要只是输入测量值。用Python计算数学 到目前为止,我已经做到了: inches = 1 centimeters = 1 convert = centimeters * 2.54 print inches print centimeters print "1 inch is %s centimeters." % convert 现在,它将显示1英寸的转换,我将如何更改它,

“我正在经历艰苦的学习Python的过程,在Ex-5学习训练中,”它说

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

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

inches = 1
centimeters = 1
convert = centimeters * 2.54
print inches
print centimeters 
print "1 inch is %s centimeters." % convert
现在,它将显示1英寸的转换,我将如何更改它,以便用户输入以英寸或厘米为单位的量,并正确显示转换

我是否正确地认为,为了成功地转换值,我必须手动输入值,或者是否有一种方法可以在Python中实现这一点?

您可以使用
input()
方法(包装在
float()
方法中)将数据转换为整数

m_inch = float(input("Enter the amount in inches: ")) # will collection user data in inches

m_cm = m_inch*2.54 # converts from inches to cm

# rest of your code

注意:我使用了
float
类型进行输入,但您也可以使用
int()
进行包装……这有帮助吗?

您可以使用字典查找指定的单位:

amount, unit = input('Enter amount with units: ').split()[:2]
converted_data = int(amount) * {'in': 2.54, 'cm': 0.39}[unit] 

有用于处理单元的库。有一个用于Python:

导入品脱
ureg=pint.UnitRegistry()
我的尺寸=1.74*ureg.meter
打印(我的尺码)#1.74米
打印(我的尺寸到(ureg.英寸))#68.503937007874英寸
优点是变量本身具有关于使用哪个单位的信息。即使除以:

导入品脱
ureg=pint.UnitRegistry()
距离=40123*ureg.m
时间=1.2*ureg.hour
速度=距离/时间
打印(速度)#33435.833336米/小时
打印(速度至(ureg.inch/ureg.hour))1316371.3910761154英寸/小时
这要求用户以厘米为单位输入高度,记住1米等于100厘米。 所以,我们用180除以100得到米,例如,如果用户输入180厘米
将打印1.8米。

确保在“除尝试”块中包含“输入”。例如,如果输入了字符串(例如“asd”)然后会抛出ValueError异常。你能为我自己简单地解释一下吗?我刚刚拿起这本书来学习编程,对编程一无所知。基本上是一本字典将键映射到值。我将单位映射到乘法因子以得到另一个单位。输入只需在空白处拆分,以得到e字符串中的前两个单词,一个表示数量,一个表示单位。这并不能真正回答用户提出的问题:“我认为要成功转换值,我必须手动输入值,还是有办法用Python实现?”没有更多信息的代码答案不如问题的答案有用。你能补充一些关于你在代码中做了什么以及为什么做的注释吗?
name = "Bob Jones"
age = 39
height = 74 # in inches
height_in_cm = height * 2.54
weight = 220 # in pounds
weight_in_kg = weight * 0.453592
eyes = "blue"
teeth ="white"
hair = "light brown"

print(f"Let's talk about {name}.")
print(f"He's {height} inches tall which is roughly {round(height_in_cm)} centimeters.")
print(f"He weighs {weight} pounds which is about {round(weight_in_kg)} kilograms.")
print(f"Actually, that's his target weight after six months of intermittent fasting.")
print(f"He's got {eyes} eyes and {hair} hair.")
print(f"His teeth are usually {teeth} depending on how much coffee he drinks.")
centimeters = int(input("Enter your height in CM "))
meters = centimeters / 100
print ("You are %r meters long" % (meters))