关于python:如何在Pycharm中使用输入流?

How can I work with input flow in Pycharm?

我是Python的新手,并使用Pycharm处理代码。

我正在编写一个简单的程序,先读取字符串,然后将其转换为int。

1
2
3
4
5
6
7
8
9
10
import sys

    print ("Hello word")
    data = sys.stdin.read()
    tokens = data.split()

    for i in range(len(tokens)):
        tokens[i] = int(tokens[i])

    print (tokens[1])

enter image description here

我运行程序,输入了三个数字,仅此而已
为什么在运行程序时看不到打印结果?


这是因为程序仍在从stdin读取。 要仅从stdin读取一行,必须使用stdin.readline()。 如果您在行sys.stdin.read()之后的断点运行调试过程,您将看到程序永远无法到达它。 例如,在Ideone中运行程序,通过它可以在运行应用程序之前指定stdin,stdin.read()可以正常工作。 通常读取直到EOF(文件结束)。 因此,请使用sys.stdin.readline()(内置input()会执行此操作),或者如果您想读取多行,请使用文件输入。 如果您确实想使用sys.stdin.read(),也可以参考这篇文章以获取更多信息。


您已经使用.read()有效地阻止了该程序; 使用input()更为简单,如下所示:

1
2
3
4
print('Hello World')
data = input()
tokens = map(int, data.split()) # this converts to int
print(tokens[1])