Python 多次读取 stdin 导致它阻塞

Python multiple read on stdin cause it to block

我是一名编程学校的学生,需要完成一个使用金融股票数据的项目。

我选择了 Python 因为这是我玩了几天的唯一一种语言,我的学校没有教过它,我必须能够在标准输入上阅读并且我能够阅读一次但不是第二次,程序无限期地等待,我必须使用 ctrl+c 引发 KeyboardInterrupt

来停止它

这是我得到的代码:

#!/usr/bin/python                                                                                                                                                 
from __future__ import print_function
import sys

if __name__ == "__main__":
    capital = int(sys.stdin.readline())
    days = int(sys.stdin.readline())
    initial = int(sys.stdin.readline())
    for day in range(days - 1):
    print("wait")
    try:
            value = int(sys.stdin.readline())
    except ValueError:
            break

这里有一些关于我得到的输入格式的提示。

首先,我一次在三行不同的行中得到三个数字。 然后我得到与第一个输入的第二个数字一样多的输入,所以我在它上面循环。

我一到达

sys.stdin.readline()

在 try/catch 程序块中,我实际上不知道为什么会这样。

而不是

sys.stdin.readline()

在 Python 2 中使用(我想你正在使用未来导入)

raw_input()

或者,在 Python 3 中,

input()

根据您对问题的描述,我相信您可能 运行 遇到缓冲问题,并且 raw_inputinput 内置函数采取了避免缓冲所需的所有措施问题,所以您不必在低层次上深入挖掘自己解决问题。