Jogofus Asked: 2020-01-14 13:33:03 +0800 CST 2020-01-14 13:33:03 +0800 CST 2020-01-14 13:33:03 +0800 CST input 和 sys.stdin 的区别 772 在保存一条数据时,无论其类型如何,输入与 sys.stdin 相比有什么优势和/或反之亦然?据我了解,结果是一样的。 python 1 Answers Voted Best Answer ChemaCortes 2020-01-16T10:57:33+08:002020-01-16T10:57:33+08:00 标准流是stdin、stdout和stderr,它们表示连接到进程的默认输入、输出和错误输出的文件。我们的应用程序不能假设关于它们的任何事情,既不是输入是通过键盘完成的,也不是输出到终端,......没有,只是它们的行为类似于逐行读取和/或写入的文本文件。线。 该函数input有两个任务: 显示消息(在 中stdout) 读取一行文本(来自stdin) 这种行为可以模拟如下: import sys sys.stdout.write("Dame un número:") sys.stdout.flush() n = sys.stdin.readline() 这相当于 n = input("Dame un número:") input显然,它比标准流使用起来更舒服(使用print而不是 也是如此stdout)。那么使用流有什么意义呢? 正如我之前所说,流可以被视为文件,并且可以在必要时与它们交换。这是一个从代码片段创建测试套件的简单系统。它还用于处理子进程的输出或输入(离题)。 一个不平凡的例子: import sys from io import StringIO class WrapInput: def __init__(self, entrada): self.entrada = entrada def wrapper(self, f, *args, **kw): (sys.stdin, old_stdin) = (StringIO(self.entrada), sys.stdin) res = f(*args,**kw) sys.stdin = old_stdin return res n = WrapInput("2").wrapper(input, "Dame un número: ") print("El número es {}".format(n)) 它不会等你在键盘上输入数字,它会读取"2"存储在StringIO. 使用input或stdin等效。input它几乎在任何情况下使用都更舒适,但stdin你可以用它做更多的魔法。
标准流是
stdin
、stdout
和stderr
,它们表示连接到进程的默认输入、输出和错误输出的文件。我们的应用程序不能假设关于它们的任何事情,既不是输入是通过键盘完成的,也不是输出到终端,......没有,只是它们的行为类似于逐行读取和/或写入的文本文件。线。该函数
input
有两个任务:stdout
)stdin
)这种行为可以模拟如下:
这相当于
input
显然,它比标准流使用起来更舒服(使用print
而不是 也是如此stdout
)。那么使用流有什么意义呢?正如我之前所说,流可以被视为文件,并且可以在必要时与它们交换。这是一个从代码片段创建测试套件的简单系统。它还用于处理子进程的输出或输入(离题)。
一个不平凡的例子:
它不会等你在键盘上输入数字,它会读取
"2"
存储在StringIO
.使用
input
或stdin
等效。input
它几乎在任何情况下使用都更舒适,但stdin
你可以用它做更多的魔法。