Python 打印变量时sys.stdout.write和print之间的差异
我想了解Python 打印变量时sys.stdout.write和print之间的差异,python,python-3.x,Python,Python 3.x,我想了解sys.stdout.write和print方法(或函数?我应该称它们为函数还是方法?) 例如,下面的代码将打印11 a = str(1) sys.stdout.write (a) 但这将打印1 a = str(1) print (a) 为什么会有这样的差异?有没有办法让sys.stdout.write()打印1而不是11 谢谢 我想下一次执行时,写入和打印的结果应该相同 由于它不是第一次打印并且位于标准输出中,因此它会同时打印所有标准输出,即1个来自上一次执行,1个来自当前执行 请
sys.stdout.write
和print
方法(或函数?我应该称它们为函数还是方法?)
例如,下面的代码将打印11
a = str(1)
sys.stdout.write (a)
但这将打印1
a = str(1)
print (a)
为什么会有这样的差异?有没有办法让sys.stdout.write()打印1而不是11
谢谢 我想下一次执行时,写入和打印的结果应该相同 由于它不是第一次打印并且位于标准输出中,因此它会同时打印所有标准输出,即1个来自上一次执行,1个来自当前执行
请尝试并让我知道:)它看起来像是
sys.stdout.write
返回它写入的值。因此它不打印11
,而是打印1
,并返回1
。但是,如果在交互式解释器中执行此操作,解释器将打印表达式的返回值,该值也是1
如果您不在交互式解释器中执行此操作(即,您将代码放入文件并运行它),它将不会打印第二个1
。在交互式解释器中,可以通过指定结果来抑制它:
x = sys.stdout.write(a)
sys.stdout.write()
的返回值返回写入的字节数。在本例中,1
,对于输入的任何表达式,它也会打印在交互式解释提示符上
例如:
>>> import sys
>>> sys.stdout.write("foo")
foo3
如果要隐藏此内容,可以执行以下操作:
>>> nbytes = sys.stdout.write("foo\n")
foo
要解释两者的区别,您必须了解打印功能-
print(*objects, sep=' ', end='\n', file=sys.stdout)
Print接受输入对象
并将其写入文件
参数,默认情况下该参数为sys.stdout
,不返回任何内容。
它使用file arguement
对象的write
功能,并将end
arguement打印为最后一个字符,这意味着它使用
sys.stdout.write默认情况下将语句打印到屏幕上Sys.stdout.write
返回字节数作为返回值。
Print
是sys.stdout.write
上面的包装器,我做错什么了吗?