Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python _stdout的值不正确_Python_Stdout - Fatal编程技术网

Python _stdout的值不正确

Python _stdout的值不正确,python,stdout,Python,Stdout,因此,使用Python编程是全新的。这是我第三周的课。任务如下: 你必须做化学作业,但你讨厌在元素周期表上查找元素!编写一个程序,从标准输入中获取元素的名称(作为字符串,独立于大小写),并将表示其原子量的双精度打印到标准输出。仅对前三种元素实施该程序,即氢凝胶、氦和锂,其原子量分别为1.008、4.0026和6.94。如果输入了其他内容,请打印语句“对不起,我不认识该元素!”print语句缺少elif element = (raw_input('Enter chemical name')) na

因此,使用Python编程是全新的。这是我第三周的课。任务如下:


你必须做化学作业,但你讨厌在元素周期表上查找元素!编写一个程序,从标准输入中获取元素的名称(作为字符串,独立于大小写),并将表示其原子量的双精度打印到标准输出。仅对前三种元素实施该程序,即氢凝胶、氦和锂,其原子量分别为1.008、4.0026和6.94。如果输入了其他内容,请打印语句“对不起,我不认识该元素!”
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!')

这是旧的,但我有这个问题,与
\u stdout
不匹配,即使代码是正确的。我想出了解决办法

myprogramminglab正在将
\u stdout
值与预期结果进行比较,无需提示输入

例如,它希望在
\u stdout
中仅看到氢的1.008,但看到的是“输入化学名称1.008”(这里的原始示例中更不用说还有其他额外字符,它看到的是“输入化学名称原子量:1.008”是错误的)

因此,您必须欺骗它并使用一个空的输入提示


使用
element=(input('Enter chemical name'))
而不是当前的
element=(input())

,您的代码无法编译-您需要在
elif
之后添加一条语句。我猜MyProgrammingLab是一种答案检查服务。我怀疑错误消息仅仅意味着“此程序正在生成与我预期不匹配的输出”或“此程序正在崩溃”。我建议在本地环境中运行您的程序,这样可以提供更有用的错误消息。例如,在我的机器上,我得到了
IndentationError:第8行应该是一个缩进块
,这是一个比“那是不正确的”要好得多的诊断。当询问有关抛出错误/异常的代码的问题时,请发布完整的回溯。欢迎来到SO-请花点时间阅读和讨论。听起来MyProgrammingLab在提供反馈或处理坏代码方面很差劲。提交一个bug报告并指出这个问题,因为它会给你一些更有用的东西(例如,检查返回代码并向你展示stderr)。同时,在您自己的计算机上运行代码会提供更多信息。@kevin doh!我在发布代码时跳过了一行:“print('Atomic weight:6.94'),这句话应该跟在elif name==“lithium”后面:至于MyProgrammingLab,它是一种带有模拟检查系统的在线课堂系统。事实证明这会让他们更加沮丧,但是学校是有合同的,这就是我必须提交作业的方式。可能值得一提的是,为什么使用
raw\u input
而不是
input
raw\u input
在Python 3中不存在,因此会导致
NameError
。我同意原始代码中缺少的语句是一个问题,但从帖子的评论来看,这似乎是撰写问题时出现的转录错误,而不是OP实际运行的代码。@dharmesh我跳过了在我的原始帖子中添加一行。我已经在elif name==“limition”后面有一个print语句:更新原始帖子。
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!')