如何乘以用户给公制计算器的输入
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 比例因子和单位自然呈现的,并且您可以在任何可以使用浮点数的地方使用它们。
我正在使用 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 比例因子和单位自然呈现的,并且您可以在任何可以使用浮点数的地方使用它们。