为什么 for 循环在 Python 中打印时会创建一个新行?

Why does a for-loop create a new line while printing in Python?

我构建了一个基本脚本,通过 for 循环 显示一串随机二进制值(0 和 1)i 次。

我不介意,但在每个循环中,它会自动创建一个新行,然后打印二进制值

输出示例:

1
0
1
1
0
...

这是为什么?以及如何在“无换行”字符串(也没有空格)中显示值?

以001010001011010111010为例。

代码如下:


i = 20 #number of random binary to be shown

for x in range(i):
    bin = randint(0, 1)
    print(bin)
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

它默认以换行符结尾。如果你想要别的东西,你可以做 print('hi', end=something) ,其中 something 是你想要的字符串。
在你的情况下 something = ""

在python中,每次调用print默认都会加一个换行符。如果您想打印其他内容,您可以通过更改 end 来自定义此行为,例如print(str, end=" ") 可能适合你。

您需要指定 end 参数——在本例中,它是空字符串:

from random import randint

i = 20 #number of random binary to be shown
for x in range(i):
    val = randint(0, 1)
    print(val, end='', flush=True)

还有两点值得注意:

  1. 不要使用 bin 作为变量名——它隐藏了 built-in.
  2. 标准输出是缓冲的,这意味着在写入换行符或显式刷新缓冲区之前,您写入控制台的内容不会出现。在这种情况下,我们传递 flush=True 以便我们的输出立即出现在控制台上。