If语句比较失败

时间:2015-09-18 02:13:22

标签: python if-statement lowercase

我有这个提示:

  

你必须做化学作业,但你讨厌抬头   元素周期表上的元素!编写一个名为的程序   标准输入和元素的元素(作为字符串,独立于大小写)   将表示其原子量的double打印到标准输出。   只实施前三个元素的程序,hydrogren,   氦和锂,其原子量分别为1.008,   4.0026和6.94。如果有任何其他内容作为输入,请打印声明"抱歉,我不认识那个元素!"

我写了一段代码,但结果却出错了。它输入的内容并不重要,它总是出错。标准输出保持声明"输入元素名称:"以及原子量数

这是我写的:

hydrogen = 1.008
helium = 4.0026
lithium = 6.94
atomic_weight = input("Enter element name:").lower()
if atomic_weight == hydrogen:
    print(hydrogen)
elif atomic_weight == helium:
    print(helium)
elif atomic_weight == lithium:
    print(lithium)
else:
    print("Sorry, I don't recognize that element!")

更新了代码

hydrogen = 1.008
helium = 4.0026
lithium = 6.94
element_name = input("Enter element name:").lower()
if element_name == hydrogen:
    print(hydrogen)
elif element_name == helium:
    print(helium)
elif element_name == lithium:
    print(lithium)
else:
    print("Sorry, I don't recognize that element!")

4 个答案:

答案 0 :(得分:4)

您将输入与原子量进行比较。您可能希望将其与字符串进行比较,例如"hydrogen""helium""lithium"

答案 1 :(得分:1)

我终于明白了,输入应该是空的

hy = 1.008
he = 4.0026
li = 6.94


element_name = input("").lower()

if element_name == "hydrogen":
    print(hy)
elif element_name == "helium":
    print(he)
elif element_name == "lithium":
    print(li)
else:
    print("Sorry, I don't recognize that element!")

答案 2 :(得分:0)

如果您尝试使用名称

尝试访问原子量,则可能需要字典
elements = {'hydrogen': 1.008,
            'helium': 4.0026,
            'lithium': 6.94}

name = input("Enter element name:").lower()
print(elements.get(name, 'element not found!'))

答案 3 :(得分:0)

感谢上面分享的所有人,写了我的版本并且它有效(我的第一个堆栈溢出帖子):

    hydrogen = 1.008
    helium = 4.0026
    lithium = 6.94
    element_name = input()
    name=element_name.lower()

    if name == "hydrogen":
        print(hydrogen)
    elif name == "helium":
        print(helium)
    elif name == "lithium":
        print(lithium)
    else:
        print("Sorry, I don't recognize that element!")