print() 函数算作标准输出,input() 算作标准输入吗?

Does the print() Function Count as a Standard Output and does input() Count as a Standard Input?

上周,我报名参加了逆向工程编码竞赛。规则规定 “程序的所有输入和输出都必须通过标准流(分别为 stdin 和 stdout”)。 阅读后,我查阅了他们的官方 实践 测试并开始编写我的代码。我遇到了很多障碍,因为我不熟悉 sys.stdin.read 和 sys.stdout.write 功能。然后昨晚我正在研究如何使我的代码更好, 我偶然发现了一个编码博客,它指出 input() 函数实际上是标准输入的一种形式。我在互联网上看了更多,发现另一家公司的独立博客说了相对相同的事情。所以......是这是真的吗?input() 和 print() 是我可以用于比赛的标准输入和标准输出的一种形式吗?

是的,实际上 print function uses sys.stdout 作为它的 write() 方法。

在python文档中,您可以找到打印函数的定义:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

哪个文件参数必须是具有 write(string) 方法的对象。如果不存在或 None,将使用 sys.stdout。所以默认情况下打印使用 [​​=23=].

还有输入函数,在文档中可以找到这句话:

stdin 用于所有交互式输入(包括对 input() 的调用)。