因此,使用Python进行编程是全新的。这实际上是我上课的第3周。作业如下:
你必须做化学作业,但你讨厌在元素周期表中查找元素!编写一个程序,该程序从标准输入中获取元素名称(作为字符串,与case无关),并将表示其原子权重的double打印到标准输出。仅实施前三个元素的程序,氢化物,氦和锂,其原子量分别为1.008,4.0026和6.94。如果有任何其他内容作为输入,请打印声明"抱歉,我不认识那个元素!" <
好的,所以if / else检查。与本周的最后20个任务没有什么不同。
所以:
element = (input('Enter chemical name'))
name = element.lower()
if name == "hydrogen":
print('Atomic weight: 1.008')
elif name == "helium":
print('Atomic weight: 4.0026')
elif name == "lithium":
print('Atomic weight: 6.94')
else:
print('Sorry, I do not recognize that element!')
所以用户输入一个名称,该字符串通过lower函数传递给name,所以它都是小写的。然后它只是一个if / else循环。直接向前吧?
MyProgrammingLab正在抛出以下错误:
_stdout的值不正确。
所以......是的什么是_stdout?我发现它是Python的内置功能。但我不知道它的实际功能,或者为什么它在我的程序中被使用。我没有打电话。
答案 0 :(得分:2)
这是旧的,但我遇到了 _stdout
不匹配的问题,即使代码是正确的。我想出了解决办法。
myprogramminglab 正在将 _stdout
值与没有输入提示的预期结果进行比较。
例如,它期望在 _stdout
中只看到 1.008 表示氢,但看到的是“输入化学名称 1.008”(更不用说这里的原始示例中还包含其他额外的额外字符,它看到的是 '输入化学名称原子量:1.008',这是错误的)。
所以你必须欺骗它并使用一个空的输入提示。
使用 element = (input('Enter chemical name'))
代替 element = (input())
答案 1 :(得分:1)
print
缺少 elif
语句。
element = (raw_input('Enter chemical name'))
name = element.lower()
if name == "hydrogen":
print('Atomic weight: 1.008')
elif name == "helium":
print('Atomic weight: 4.0026')
elif name == "lithium":
print('Atomic weight: 4.0026')
else:
print('Sorry, I do not recognize that element!')