为什么 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)
还有两点值得注意:
- 不要使用
bin
作为变量名——它隐藏了 built-in.
- 标准输出是缓冲的,这意味着在写入换行符或显式刷新缓冲区之前,您写入控制台的内容不会出现。在这种情况下,我们传递
flush=True
以便我们的输出立即出现在控制台上。
我构建了一个基本脚本,通过 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)
还有两点值得注意:
- 不要使用
bin
作为变量名——它隐藏了 built-in. - 标准输出是缓冲的,这意味着在写入换行符或显式刷新缓冲区之前,您写入控制台的内容不会出现。在这种情况下,我们传递
flush=True
以便我们的输出立即出现在控制台上。