_stdout的值不正确

时间:2017-09-18 16:31:09

标签: python stdout

因此,使用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的内置功能。但我不知道它的实际功能,或者为什么它在我的程序中被使用。我没有打电话。

2 个答案:

答案 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!')