文章目录
- 一、print()函数
- 二、区隔符—sep
- 三、结束符号—end
- 四、内容写入文件—file
- 五、缓冲输出设置—flush
一、print()函数
- 功能
print()函数就是把一个或多个对象转换为其文本表达式形式,然后发送给标准输出流或者类似的文件流。
- 语法
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
- 参数解析
value:要打印的值。可以一次输出多个对象,输出多个对象时,需要用 , 分隔。
sep:用来间隔多个对象,默认值是一个空格。
end:用来设定以什么结尾,默认值是一个目换行符 \n,可以换成其他字符串。
file:要写入的文件对象。
flush:是否立即刷新缓冲区。
- print()打印输出文本
举例1:
# 单引号,单引号里可以用双引号,并可以将单引号打印出来。
print('"hey hey 学着聪明一点~"')# 双引号,双引号可以用单引号,并可以将单引号打印出来
print("we're trying we're laughing")# 三引号,引用多行文本
print("""《庄子.齐物论》
昔者庄周梦为胡蝶 栩栩然胡蝶也
自喻适志与 不知周也
俄然觉 则蘧蘧然周也
不知周之梦为胡蝶与
胡蝶之梦为周也
""")
举例2:
# 相邻两项或多行打印用空格间隔
print("我期待梦醒的时候 要做一只顺应快乐的蝴蝶")
print("我期待梦醒的时候","要做一只顺应快乐的蝴蝶")#多行打印用逗号结尾
print("我期待梦醒的时候",)
print("要做一只顺应快乐的蝴蝶")# 相邻两项或多行打印没有用间隔
print("我期待梦醒的时候""要做一只顺应快乐的蝴蝶")
print("我期待梦醒的时候"+"要做一只顺应快乐的蝴蝶")
二、区隔符—sep
- 用sep参数来约束print括号里多项内容之间的区隔符。
举例:
print("我说我说","像手牵手","距离的噪音化为乌有",sep="&")
print("你说你说","我听个够","烦恼像跳蚤","指甲一掐","成末",se=".")
三、结束符号—end
- print()函数中end参数指定了print()函数在打印完内容之后,用什么符号来表示结尾,默认值是"\n",表示换行,即print()函数打印完内容后,就会自动换行。
举例:自动换行。
for i in range(0,6):print(i)
- 打印后不换行,可以用end参数来设置你想要的结束符号。
举例1:
print("行板如歌",end=" ")
print("歌里在等")
print("等你来和",end=" ")
print("和一篇雨季解渴")
从上面的例子,可以看到,如果我们设置end参数为空格,那么两个print()函数之间会用空格来连接;如果我们没有设置end参数,那么两个print()函数之间就会默认分行。
举例2:
print("我说我说",end="|")
print("像手牵手",end="|")
print("距离的噪音化为乌有",end="|")
举例3:
n=90
print(n,'=',end=' ')
i=2
while n != 1:if n % i ==0:n //=iif n ==1:print('{:d}'.format(i))else:print('{:d} *'.format(i),end =' ')else:i +=1
四、内容写入文件—file
- "file 参数"必须是一个具有 write(string) 方法的对象;默认值sys.stdout,sys.stdout也就是我们python中标准输出流,这个标准输出流默认是映射到打开脚本的窗口的。
举例:
print("123")
等价于
import sys
sys.stdout.write(str(123)+'\n')
- 修改file参数默认值,可以把我们打印操作重定向到其它地方,比如写入指定文件。
举例1:
print("一如当年 欲望无邪 生死相约 这相思漫漫无边界像迷失的蝴蝶",file=open("file.txt","w"))
运行后,在默认文件所在的目录中,出现了一个file.txt文件,打开file.txt文件,会发现里面的内容是:
一如当年 欲望无邪 生死相约 这相思漫漫无边界像迷失的蝴蝶
with open("file.txt","r") as f:a = f.read()
print(a)
运行后,读取file.txt文件,里面的内容如上 ,说明print()函数写入成功。
举例2:
for i in range(1,11):print(i,'\t',i*2,'\t',i*3,'\t',i*4,end='\n',file=open("file.txt","a",encoding="utf-8"),flush=False)
运行后,读取file.txt文件,里面的内容如下 ,说明print()函数写入成功。
with open("file.txt","r") as f:a = f.read()
print(a)
五、缓冲输出设置—flush
- 默认情况下的缓冲输出,flush=False。
举例1
import timeprint("正在打印第一行...")
time.sleep(1) #模拟耗时操作
print("正在打印第二行...")
执行上面的代码,可以看到,两行输出的贼窝并没有立即刷新到控制台,而是等到程序结束或缓冲区满时才输出。这是因为默认情况下,flush参数的值为False,表示不立刻刷新缓冲区。
- 立即刷新缓冲区,flush=True。
举例1:
import time print("正在打印第一行...",flush=True)
time.sleep(1)
print("正在打印第二行...",flush=True)
将flush参数的值设为True,表示立即刷新缓冲区,执行上面的代码,可以看到,会立即将已经缓冲的内容输出到控制台。这样我们就可以实时看到输出结果。
举例2:
import timefor i in range(10):print(i,end=" ",flush=True)time.sleep(1)
我们使用了一个循环来输出0到9的数字,每次输出后都立即刷新缓冲区。
这样即使在每次循环中有耗时操作,也不会影响后续输出的效率。通过设置flush参数为True,我们可以在不影响性能的情况下实时看到输出结果。
参考文章:
print()函数的用法(全)
print语句和flush()方法
python的print与sys.stdout