如何乘以用户给公制计算器的输入

How to multiply input given by user for metric system calculator

我正在使用 cs50 中的 python3 为 class 开发公制转换器,但我遇到了一些麻烦。基本上,我希望用户输入一个数字(值),然后他会选择测量的前缀(例如:千、毫、微等),当用户这样做时,它会将值乘以或除以一个数字将其转换为要求的计量单位。例如,如果他们想将厘米转换为公里,我希望用户输入 200 厘米,然后使用一个函数将其除以 1000 得到 0.002 公里并将其打印给用户。但我不知道该怎么做。任何帮助将不胜感激。

我不是要帮你做功课,但这应该会给你一个初步的想法:

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)

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 比例因子和单位自然呈现的,并且您可以在任何可以使用浮点数的地方使用它们。