gpt4 book ai didi

python - 解释 sys.stdin 的 python3 与 python 行为

转载 作者:太空宇宙 更新时间:2023-11-04 10:31:08 24 4
gpt4 key购买 nike

我必须编写以某种方式适用于两个 python 版本的代码,但我无法理解代码的行为:

from __future__ import print_function
import sys
sys.stdout.flush()
print("input: ", end="")
f = sys.stdin.readline()
print(f)

当我使用 python2 运行代码时,它的行为与我预期的一样:

$ python2 test_input.py 
input: foo bar
foo bar

当我用 python3 运行代码时,它表现得很奇怪。它首先读取输入然后打印提示:

$ python3 test_input.py 
foo bar
input: foo bar

你能解释一下并提出修复建议吗?

最佳答案

您的 flush()print() 倒退了。这是正确的顺序:

# First, write to stdout
print("input: ", end="")
# Then, flush all data in the stdout buffer
sys.stdout.flush()

关于python - 解释 sys.stdin 的 python3 与 python 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26449378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com