Windows CMD在带有sys.stdout的python的打印行末添加一个随机数

Zei*_*zar 3 python cmd stdout python-3.7

sys.stdout.write在Windows 10 64位操作系统的控制台中写了一个简单的语句。

Microsoft Windows [Version 10.0.17134.590]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\user>python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.stdout.write('x')
x1
>>> sys.stdout.write('try')
try3
>>> sys.stdout.write('fooo')
fooo4
Run Code Online (Sandbox Code Playgroud)

安装的Python版本是3.7.2

iz_*_*iz_ 7

这个数字不是随机的。这是所写字符的数量。因为您处于Python交互式环境中,所以语句的返回值也将被打印出来。sys.stdout.write(或通常写入文件)返回写入的字符数。

因此,当您执行类似的操作时sys.stdout.write('fooo'),它先打印fooo,然后再打印返回值(4)。

sys.stdout.write 可以这样嘲笑:

def mywrite(s):
    print(s, end='')
    return len(s)
Run Code Online (Sandbox Code Playgroud)

在交互式中:

>>> def mywrite(s):
...     print(s, end='')
...     return len(s)
...
>>> mywrite('x')
x1
>>> mywrite('try')
try3
>>> mywrite('fooo')
fooo4
Run Code Online (Sandbox Code Playgroud)

  • @Jean-FrançoisFabre不确定是什么意思,但是我还是为了安全起见更改了它。 (3认同)