python的print()函数的详细语法结构如下:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
参数
value 该参数可以接受任意多个变量或值
sep 该参数用于控制多个value输出的分隔符,默认为’ ‘(空格)
end 该参数用于控制输出的末尾,默认为’\n’换行
file 该参数用于指定输出目标,默认参数为’sys.stdout’,代表系统标准输出,也就是屏幕
flush 该参数用于控制输出缓存,默认为’false’
实例
value参数
>>> print("hello","world")
hello world
sep参数(默认为’ ')
>>> print("hello","world",sep='|')
hello|world
end参数(默认为’\n’)
>>> print("hello","world",end='!')
hello world!
file参数(默认为’sys.stdout’)
>>> f=open("out.txt","w")
>>> print("hello","world",file=f) #"hello world"被写入out.txt文件
flush参数(默认为’false’)
该参数用于控制输出缓存的刷新,这里为了展示flush参数的作用,这里用两个例子
#例子1
f=open("out.txt","w")
print("hello world")
print()函数默认flush为’false’,执行此段代码后,检查输出文件并未第一时间写入,只有输出文件关闭后(f.close())才写入。原因:
默认情况下flush参数为’false’,print()函数写入文件 f中的内容先存在缓存区中,当文件对象关闭时才把内容输出到 out.txt 中,可将flush参数设置为’True’即可实现即使输出
#例子2
> 这个例子引用自csdn博客
#以下代码块期待效果:loading后的'.'延时依次打印,实现loading等待的动画效果
print("loading",end="")
for i in range(6):
print(".",end="")
time.sleep(0.2)
实际效果为"loading…"被一次性打印,原因:
flush默认为’false’(不刷新),打印内容被加载入缓存区,待缓存区填满或再无打印内容后,最后统一打印。固可将print()函数中flush参数值设置为’True’,此后每次打印后强行刷新缓冲区