在 Python 的编程实践中,print() 函数的使用频率非常高,特别是程序运行到某个时刻,要检测产生的结果时,
通常都使用它来打印输出。
关于 print() 函数,前面很多地方已经提及过,可用于写入标准输出,现在来详细介绍一下。
1
版本差异
在 Python 2.x 中,print 是一个语句;但是在 3.x 中,它是一个函数。
如果这两个版本都使用过,你就会发现差异有多么大。
进入 3.x 的交互式 shell,尝试使用“print 语句”:
>>> print 'Hello'
...
SyntaxError: Missing parentheses in call to 'print'. Did you mean print('Hello')?
你会发现有语法错误,正如上面所述,print 是 3.x 中的一个函数,与其他函数一样,参数应该被圆括号括起来:
>>> print('Hello')
Hello
2
print() 函数
要了解 print() 函数的用途,可以使用 help() 来寻求帮助:
>>> 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.
将值输出到一个流或者 sys.stdout,
各个值之间由 sep 分割,然后以 end 结束。如果 file、sep、end 和 flush 出现,则必须以关键字参数的形式指定。
3
详细使用
打印多个值
使用 print() 函数,可以打印任意多个值
(value1, value2, …):
>>> print('age', 18)
age 18
可以看到,输出之后它们之间会有一个空格,这是默认的分隔符,取决于 sep。
分隔符
如果要重新定义分隔符,可以通过 sep 来指定:
>>> print('age', 18, sep = '') # 去掉空格
age18
>>>
>>> print('age', 18, sep = '=') # 以 = 分割
age=18
结束符
在打印的值后面,默认会跟一个 \n(换行),前面的示例体现的不明显,换一种方式就能看出来了:
>>> for letter in 'Hello':
... print(letter)
...
H
e
l
l
o
每打印一个字符,就进行一次换行,然后再打印下一个,这就是 \n 所起的作用。
要改变这种行为,可以给 end 分配一个任意的字符串:
>>> for letter in 'Hello':
... print(letter, end = '-')
...
H-e-l-l-o->>>
输出重定向
默认情况下,print() 的输出被发送到标准输出流(sys.stdout)。通过重新定义 file,
可以将输出发送到不同的流(例如:文件)中:
>>> f = open('data.txt', 'w')
>>> print('I am Waleon', file = f)
>>> f.close()
可以看到,在屏幕上没有得到任何输出,输出被重定向至文件 data.txt 中了:
$ cat data.txt
I am Waleon
注意:输出是否缓冲通常由文件决定,但是如果 flush 是 true,则流将被强制刷新。
·END·
高效程序员
谈天 · 说地 · 侃代码 · 开车
长按识别二维码,解锁更多精彩内容