【发布时间】:2015-09-18 02:13:22
【问题描述】:
我有这个提示:
你必须做化学作业,但你讨厌抬头 元素周期表上的元素!编写一个程序,取名为 来自标准输入的元素(作为字符串,独立于大小写)和 将表示其原子量的 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!")
【问题讨论】:
-
atomatic_weight是一个字符串;这就是您将从input得到的结果(否则.lower()将不起作用。要将字符串与浮点数进行比较(因为您的元素是浮点数),您必须将字符串转换为浮点数。附加注意:浮点比较不精确。 -
这对我们很有帮助,但对您解释您得到的“错误结果”更有帮助。如果您输入“无论我输入什么名字,我都会收到‘对不起……’”,您可能已经看到了问题所在。正确命名变量也可以为您省去麻烦;您不是在要求
atomic_weight,我们知道它是一个数字。您要求element_name为输入字符串提供更好的名称。 -
感谢您的命名建议!
标签: python if-statement lowercase