Python print() 函数


在 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·
 

高效程序员

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一去丶二三里

有收获,再打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值