三行代码  ›  专栏  ›  技术社区  ›  DrEsperanto

为什么我的代码输出错误,将英寸转换为厘米,反之亦然

  •  0
  • DrEsperanto  · 技术社区  · 1 月前

    我的代码给出了不正确的输出,而一切似乎都正常。

    例如,输入 cm 然后 6

    inch: 6, centimeter: 15.24
    
    But it should be:
    

    英寸:2.362厘米:6

    
     
    Code:
    ```py
    def intocm():
        ms = input('What is it? (inch-in or centimeter-cm): ')
        am = int(input('How many of it: '))
        intocm = 2.54
        global inch
        global cm
    
        if ms == 'inch' or 'in':
            cm = am * intocm
            inch = am
    
        elif ms == 'centimeter' or ms == 'cm':
            cm = am
            inch = cm / intocm
    
        print(f'inch: {inch}, centimeter: {cm}')
    
    
    intocm()
    
    4 回复  |  直到 1 月前
        1
  •  1
  •   Elliott Frisch    1 月前

    你错过了一次平等测试 if float int ).比如,

    def intocm():
        ms=input("What is it? (inch-in or centimeter-cm): ")
        am=float(input("How many of it: "))
        intocm=2.54
        global inch
        global cm
        if ms=="inch" or ms=="in":
            cm=am*intocm
            inch=am
        elif ms=="centimeter" or ms=="cm":
            cm=am
            inch=cm/intocm
        print(f'inch: {inch}, centimeter: {cm}')
    

    What is it? (inch-in or centimeter-cm): cm
    How many of it: 2.54
    inch: 1.0, centimeter: 2.54
    

    What is it? (inch-in or centimeter-cm): in
    How many of it: 1
    inch: 1.0, centimeter: 2.54
    

    这似乎是正确的。

        2
  •  1
  •   eshirvana    1 月前

    if ms=="inch" or "in":

    你可以用它写得更好 in

    def intocm():
        ms=input("What is it? (inch-in or centimeter-cm): ")
        am=int(input("How many of it: "))
        intocm=2.54
        if ms in ["inch" , "in"]:
            cm=am*intocm
            inch=am
        elif ms in ["centimeter" , "cm"]:
            cm=am
            inch=cm/intocm
        print(f'inch: {inch}, centimeter: {cm}')
    intocm()
    
        3
  •  0
  •   Yunus Ot    1 月前

    由于第一个if条件,代码失败。它应该与您的elif状态相似。

    在你的代码中是这样的

    但应该是这样 如果ms==“英寸”或ms==“英寸”:

        4
  •  0
  •   undetected Selenium Rasel    1 月前

    如果ms==“英寸”或“英寸”错误。如果ms==“英寸”或ms==“英寸”,则应为。否则,它将被视为((ms==“inch”)或(“in”))