我希望了解sys.stdout.write
和print
方法(或函数)之间的区别。例如,下面的代码将打印11。
a = str(1)
sys.stdout.write (a)
但是这将打印出1。
a = str(1)
print (a)
为什么会有这样的差异?有没有办法让sys.stdout.write()输出1而不是11?谢谢!
我希望了解sys.stdout.write
和print
方法(或函数)之间的区别。例如,下面的代码将打印11。
a = str(1)
sys.stdout.write (a)
a = str(1)
print (a)
sys.stdout.write()
的返回值是写入的字节数。在这种情况下,返回值为1
,并且会在交互式解释器提示符上打印出任何输入表达式的结果。>>> import sys
>>> sys.stdout.write("foo")
foo3
>>> nbytes = sys.stdout.write("foo\n")
foo
sys.stdout.write
返回它所写的值。因此它不会打印11
,而是打印1
并返回1
。但是,如果你在交互式解释器中执行此操作,则解释器会打印表达式的返回值,这又是1
。1
。在交互式解释器中,可以通过赋值结果来抑制它:x = sys.stdout.write(a)
print(*objects, sep=' ', end='\n', file=sys.stdout)
Print函数接受输入的对象
,并将其写入文件
参数中,默认情况下为sys.stdout
,并返回Nothing。它使用文件参数
对象的write
函数,并将end
参数作为最后一个字符打印。这意味着它默认使用sys.stdout.write
将语句打印到屏幕上。Sys.stdout.write
返回字节数作为返回值。Print
是在sys.stdout.write
之上的一些包装。