print()函数详解

print()方法用于打印输出,是最常见的一个函数。
注意:print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。

语法
print(args)
参数
objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

sep – 用来间隔多个对象,默认值是一个空格。

end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。

file – 要写入的文件对象。

flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

实例

  1. 字符串、布尔型和数值类型可以直接输出

print(‘Python’)
Python
print(True)
True
print(False)
False
print(23)
23
print(-7.2)
-7.2
print(1.0e2)
100.0

  1. 输出变量值

2.1 字符串、布尔型、数值变量

对于字符串变量、布尔型变量和数值变量,print函数会直接打印它们的值。

string = ‘C++’
integer = 6
float_number = -7.1
omp = True
print(string)
C++
print(integer)
6
print(float_number)
-7.1
print(omp)
True
2.2 列表变量

对于列表变量,print函数会直接将列表全部元素打印出来,并用[]包裹全部元素,表示打印的是一个列表。

print(test_list)
[‘Nova’, ‘Cinder’, ‘Neutron’, ‘Keystone’, 23, 45.2]
2.3 元组变量

对于元组变量,print函数会直接将元组全部元素打印出来,并用()包裹全部元素,表示打印的是一个元组。

test_tuple = (‘C9’, ‘FNC’, ‘IG’, ‘G2’)
print(test_tuple)
(‘C9’, ‘FNC’, ‘IG’, ‘G2’)
2.4 字典变量

对于字典变量,print函数会直接将字典全部键值对打印出来,并用{}包裹全部键值对。字典中的每一个键值对中用:隔开键和值。

test_dict = {‘MacBook Pro’:’computer’, ‘IPhone X’:’mobile phone’, ‘FusionSphere’:’HuaweiCloud OS’}
print(test_dict)
{‘MacBook Pro’: ‘computer’, ‘IPhone X’: ‘mobile phone’, ‘FusionSphere’: ‘HuaweiCloud OS’}
2.5 集合变量

对于集合变量,print函数会直接将集合全部元素不规则的打印出来(没有顺序),并用{}包裹全部元素。

test_set = {2, 4, 6, 3.2}
print(test_set)
{2, 3.2, 4, 6}

  1. 格式化输出
    Python支持参数格式化。

3.1 格式化字符:%c

print(‘I love %c’ %’S’)
I love S
3.2 格式化字符串:%s

print(‘I want to learn %s. How about you?’ %’Python’)
I want to learn Python. How about you?
3.3 格式化整数:%d

print(‘I like number %d’ %23)
I like number 23
3.4 格式化无符号整型:%u

print(’10 – 23 is %d, not %u’ %(-13, 13) )
10 – 23 is -13, not 13
3.5 格式化无符号八进制数:%o

print函数将无符号十进制数转换为八进制数。

print(‘return: %o’ %56)
return: 70
3.6 格式化无符号十六进制数:%x

print函数将无符号十进制数转换为十六进制数。

print(‘Return: %x %x’ %(123, 257))
Return: 7b 101
3.7 格式化无符号十六进制数(大写):%X

print(‘Return: %X %X’ %(123, 257))
Return: 7B 101
3.8 格式化浮点数:%f

print(‘PI= %f’ %(3.1415926))
PI= 3.141593
还可以指定浮点数的精度。

print(‘PI= %f, about %.2f’ %(3.1415926, 3.1415926))
PI= 3.141593, about 3.14
3.9 用科学计数法格式化浮点数:%e

print(‘%e’ %(1.0e3))
1.000000e+03
3.10 格式化浮点数(简写):%g
print(‘%g %g’ %(1.0e3, 1.23))
1000 1.23

  1. 格式化操作符
    4.1 定义宽度或小数点精度:*

amount = 123
print(‘%d’ %(5,amount)) 123 不过,使用下面的方式也可以替代,定义宽度:

amount = 123
print(‘%5d’ %amount)
123
4.2 左对齐:-

print(‘%5d’ %amount) #不采用左对齐输出
123
print(‘%-5d’ %amount) #左对齐输出
123
4.3 在正数前面显示‘+’号:+

print(‘%-+5d’ %amount)
+123
5.自动换行
默认情况下,print函数输出后自动换行:

for i in range(3):
… print(i)

0
1
2
如果不想让print函数执行完换行,可以使用end参数:

for i in range(3):
… print(i, end=”)

012>>>

  1. 指定输出分隔符
    默认情况下,print输出是有分隔符的:

address = ‘Huawei – Building a Fully Connected, Intelligent World’
print(“email: xxx.@”, address)
email: xxx.@ Huawei – Building a Fully Connected, Intelligent World
要想消去分隔符,可以使用sep参数:

print(“email: xxx.@”, address)
email: xxx.@ Huawei – Building a Fully Connected, Intelligent World
print(“email: xxx.@”, address, sep=”)
email: xxx.@Huawei.com
sep参数还可以指定其他字符作为分隔符:

p1 = ‘Asian’
p2 = ‘China’
p3 = ‘Shannxi’
p4 = “Xi’an”
p5 = ‘Yanta’
print(p1, p2, p3, p4, p5, sep=’>>> ‘)
Asian>>> China>>> Shannxi>>> Xi’an>>> Yanta
注意事项

  1. 输出单/双引号字符串

在输出单/双引号字符串时,print函数可以做到与交互式解释器一样,正确的打印。

?使用两种引号的字符串好处:可以创建本身就包含引号的字符串,而不使用转义符。可以在双引号包裹的字符串中使用单引号,或者在单引号包裹的字符串中使用双引号。

print(“I’m a boy.”)
I’m a boy.

  1. 与交互式解释器响应输出的区别

print函数的输出与交互式解释器的自动响应输出存在一些差异。print( )会把包裹字符串的引号截去,仅输出其实际内容,易于阅读。它还会自动地在各个输出部分之间添加空格,并在所有输出的最后添加换行符。

  1. 当字符串数据与其他数据类型拼接输出时,会报错

print(‘number ‘ + 1)
Traceback (most recent call last):
File “”, line 1, in
TypeError: must be str, not int
正确的做法是将非字符串转换为字符串输出,或用%格式化输出。

补充
print()函数调用底层的sys.stdout.write()方法,即往控制台打印字符串。