【问题标题】:How to multiply input given by user for metric system calculator [closed]如何乘以用户为公制计算器提供的输入[关闭]
【发布时间】:2017-04-11 16:55:39
【问题描述】:

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

【问题讨论】:

    标签: python-3.x system physics cs50 metric


    【解决方案1】:

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

    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)
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2020-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-22
        • 1970-01-01
        • 1970-01-01
        • 2021-09-14
        相关资源
        最近更新 更多