在 Python3 中,print 是一个函数,通过 help(print) 可以看到 print 函数的参数:
(myvenv) [root@hostname 13:15:47 ~]$ python
Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
- sep 参数:当 print 一次输出多个参数时,参数之间的分割符,默认是使用空格作为分割符。
>>> a = 1
>>> b = 'i'
>>> print(a,b) # 默认的 sep 是一个空格
1 i
>>> print(a,b,sep='-') # 指定 sep 为一个减号 -
1-i
>>> print(a,b,sep='+') # 指定 sep 为一个加号 +
1+i
- end 参数:print 函数输出完了变量之后,结尾的时候输出的什么内容。默认是在结尾输出一个换行符。
>>> a = 1
>>> b = 'i'
>>> print(a,b) # 默认结尾输出一个换行符,所以 1 和 i 输出后,才会换行
1 i
>>> print(a,b, end='\n\n') # 指定结尾的时候输出两个换行符,结果就就多了一个空行
1 i
>>> print(a,b, end='+\t-\n') # 把 end 指定为 +\t-\n,就是一个加号,一个制表符(就是键盘的tab键),一个减号,一个换行符,结果如下
1 i+ -
>>>
- file参数:这个就是一个文件描述符,默认是标准输出,也就是sys.stdout。如果改了这个,那么调用 print 函数的时候,不再输出到标准输出,也就是不再输出到屏幕了,而是输出到你指定的文件里面。
>>> a = 1
>>> b = 'i'
>>> f = open('print.log', 'w')
>>> print(a,b,file=f)
>>>
(myvenv) [root@hostname 13:36:10 ~]$ cat print.log # 查看文件 print.log 的内容
1 i
(myvenv) [root@hostname 13:36:15 ~]$
- flush参数:这个参数指定 print 函数输出的内容是否立刻就刷新到目标文件。因为在操作系统里面,输入输出到设备的信息,会在系统的缓存里面呆一会儿,如果使用 flush=True,那么就不进行缓存,就立刻写入文件。