Python print() 函数_分隔符

在 Python 的编程实践中,print() 函数的使用频率非常高,​​特别是程序运行到某个时刻,要检测产生的结果时,​​通常都使用它来打印输出。

Python print() 函数_python_02

关于 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·
 

高效程序员

谈天 · 说地 · 侃代码 · 开车

Python print() 函数_标准输出流_03

长按识别二维码,解锁更多精彩内容