当我使用raw_input时,提示仅在用户输入后显示。像这样:
number = raw_input("Enter a number:")
但是当我运行它时,什么也没发生,我输入一个数字,它显示提示:
123
Enter a number:
(123一直是空白,直到我键入数字并按Enter键为止)
我只希望在用户输入之前显示提示。如果有人知道如何解决此问题,请帮忙。
谢谢。
答案 0 :(得分:0)
您可能处于标准输出被缓冲且不会刷新直到出现换行符的环境中。
您可以利用标准错误没有缓冲的事实,而是将标准输出重定向到标准错误:
import sys
sys.stdout = sys.stderr
答案 1 :(得分:0)
感谢您的建议,我确实尝试过,但是很遗憾,它没有用,但是我确实找到了解决方法:
我必须添加
sys.stdout.flush()
每次我有
之前variable = raw_input("A prompt")
刷新缓冲区。
尽管是第一个
raw_input("A prompt")
除非您已经打印了某些内容,否则它将无法工作
variable = raw_input("A prompt")
sys.stdout.flush()
仍然会有相同的问题,而
print"Welcome,"
variable = raw_input("A prompt")
sys.stdout.flush()
会工作的。