我正在使用cs50中使用python3的类的公制系统转换器,但我遇到了一些麻烦。基本上,我希望用户输入一个数字(值),然后他选择测量前缀(例如:千,毫,微等),当人这样做时,它将值乘以或除以a将其转换为要求的测量单位的数字。例如,如果他们想要将厘米转换为千米,我希望用户输入例如200厘米,然后用于将其除以1000以获得0.002km并将其打印给用户的功能。但我不知道该如何解决这个问题。任何帮助将不胜感激。
答案 0 :(得分:0)
我没有尝试做你的作业,但这应该给你第一个想法:
factor = {'km': 3,
'm': 0,
'dm': -1,
'cm': -2,
'mm': -3} # dictionary with powers, e.g. 1 km = 10**3 m
# For your example of 200 cm = 0.002 km, you type...
number = float(input('numerical value: ')) # 200
unit = input('unit: ') # cm
target_unit = input('target unit: ') # km
print(number * 10**factor[unit] / 10**factor[target_unit], target_unit)
答案 1 :(得分:0)
QuantiPhy软件包将为您完成此任务。
>>> from quantiphy import Quantity
>>> for v in '1MHz 10ug 1ps'.split():
... q = Quantity(v)
... print(v, q, 1/q, sep=', ')
1MHz, 1 MHz, 1e-06
10ug, 10 ug, 99999.99999999999
1ps, 1 ps, 1000000000000.0
在此示例中,对于每种情况,原始字符串都与数量值及其倒数一起打印。这样做是为了证明数量可以使用SI比例因子和单位自然呈现,并且可以在可以使用浮点数的任何地方使用它们。