gpt4 book ai didi

python - sys.stdout.writelines ("hello")和 sys.stdout.write ("hello")

转载 作者:行者123 更新时间:2023-12-03 08:58:30 26 4
gpt4 key购买 nike

下面两个命令有什么区别?

In [57]: sys.stdout.writelines("hello")                                                                           
hello
In [58]: sys.stdout.write("hello")
Out[58]: hello5

最佳答案

sys.stdout.writelines接受可迭代的字符串并将它们一次一个字符串写入 stdout 。由于它不附加换行符,因此如果可迭代的元素尚未包含换行符,则它们看起来将被连接起来。返回值为None

sys.stdout.write接受单个字符串,并将其写入stdout。它返回写入的字符数。

第一个示例 (writelines) 有效,因为字符串是字符串的可迭代对象。输入中的每个字符都是单独写入的。请注意,没有 Out[57],因为返回值为 None,但字符全部打印出来。它们是单独编写的,但您无法分辨,因为它们之间没有换行符。

第二个示例 (write) 一次打印整个字符串。由于 write 也不附加换行符,因此会立即打印返回值 (5)。打印 Out[58] 是因为在本例中存在非 None 返回值。

一般来说,writelines 旨在模仿/反转 readlines ,所以通常您可以更好地看到差异。您通常会使用列表或类似的迭代来调用 writelines,但 write 只接受单个字符串(并返回一个值):

>>> sys.stdout.writelines(['hello\n', 'world\n'])
hello
world

>>> sys.stdout.write('hello\nworld\n')
hello
world
10

除了返回值之外,对于单个字符串,writelineswrite 的结果是无法区分的。但 writelines 的效率要低得多,因为它有效地将 write 单独应用于每个字符。

关于python - sys.stdout.writelines ("hello")和 sys.stdout.write ("hello"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53127461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com