为何两行Python程序在PyCharm中输出结果不稳定?
输出不一致的原因
- 你的代码里,
print("hello", flush=True)是往**标准输出(stdout)写内容,而garbage;是语法错误,Python会把错误信息写到标准错误(stderr)**里。 - 在Windows 7的PyCharm 2019.4.5环境中,stdout和stderr是完全独立的两个输出流,操作系统对这两个流的输出调度没有固定的先后顺序,完全是随机的。
- 这就导致了两种可能的输出情况:要么标准输出的"hello"先显示,再出现错误信息;要么错误信息先被终端打印出来,之后才显示"hello"。
- 加
-u参数只是强制stdout无缓冲输出,但解决不了两个独立流的调度竞争问题,所以输出顺序还是会随机变化。
内容的提问来源于stack exchange,提问作者ChrisJJ
相关产品推荐
相关产品推荐

