一、print函数的基本概述:
- 这个函数的作用就是用作打印输出
- 其语法结构为 print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- objects参数是对象,多个对象时记得要用 ' ,'
- sep参数设置分隔符,默认为空格
- end参数设置以什么结尾,默认为' \n ' 换行
- file参数设置写入的文件对象是谁
- flush参数,file决定是否缓存输出,如果flush=ture,则将会立即刷新
二、对print函数的演示:
#示例1
print('My','name','is liming','I','come','from','China') #未设置分隔符,默认空格
print('My','name','is liming','I','come','from','China',sep='.') #设置了分隔符为'.'
print('My','name','is liming','I','come','from','China',sep='---')#设置了分隔符为'---'
结果:
My name is liming I come from China
My.name.is liming.I.come.from.China
My---name---is liming---I---come---from---China
#示例2
print('I am a good boy',end='-——-打印结束\n') #设置打印结尾'-——-打印结束',然后再换行
print('I am a good boy',end='123\n') #设置打印结尾带上'123',然后再换行
number = 0,1,2,3,4,5,6,7,8,9 #这里利用for循环遍历number,每次打印一个数字
for i in number: #打印的时候设置结尾'--'
print(i,end='--')
结果:
I am a good boy-——-打印结束
I am a good boy123
0--1--2--3--4--5--6--7--8--9--
#示例3
with open(r'C:\Users\autumn\pypypy\123.txt', 'w') as pypypy:
print('I am a good boy',file=pypypy)
三、print函数的参数格式化——利用%
符号 | 具体描述 |
---|---|
%c | 格式化字符及其ACILL码(输出单个字符) |
%s | 格式化字符串(输出字符串) |
%d | 格式化整数(以十进制输出带符号的整数) |
%u | 格式化无符号整型(以十进制输出不带符号的整数) |
%o | 格式化无符号八进制数(以八进制输出不带符号的整数) |
%x | 格式化无符号十六进制数(以十六进制输出不带符号的整数) |
%X | 格式化无符号十六进制数(以十六进制输出不带符号的整数)(大写) |
%f | 格式化浮点数字,可指定小数点后的精度(输出浮点数,可设置小数位) |
%e | 用科学计数法格式化浮点数(利用科学计数法输出浮点数) |
%E | 作用跟%e一样,只是e变成了E |
%g | %f和%e的简写(根据值的大小采用%e或%f来输出) |
%G | %f 和 %E 的简写(根据值的大小采用%E或%f来输出) |
%p | 用十六进制数格式化变量的地址(用十六进制输出对象的内存地址) |
#示例1
a=97
b=65
print('a=%c'%(a)) #将ACILL码转为单个字符输出
print('b=%c'%(b)) #将ACILL码转为单个字符输出
结果:
a=a
b=A
#示例2
a='“你真的好好看啊!”'
print('有一句话,我想同你讲好久了:%s'%(a)) #输出字符串
结果:
有一句话,我想同你讲好久了:“你真的好好看啊!”
#示例3
a=123.456
b=-123.456
print('第一个输出%d,第二个输出%d'%(a,b)) #输出两个十进制带符号的整数
结果:
第一个输出123,第二个输出-123
#示例4
a=+123.456
b=-123.45654
print('第一个输出%u,第二个输出%u'%(a,b)) #输出两个十进制不带符号的整数
结果:
第一个输出123,第二个输出-123 #这里的%u与%d的作用一样,目前看来是因为python自身的原因
#示例5
a=+123
b=5-54
print('第一个输出%o,第二个输出%o'%(a,b)) #输出两个八进制不带符号的整数
结果:
第一个输出173,第二个输出-61 #这里同样会发现还是带符号,这个问题仍然待解决
#示例6
a=+123
b=-123
print('第一个输出%x,第二个输出%x'%(a,b)) #输出两个十六进制不带符号的整数
结果:
第一个输出7b,第二个输出-7b #这里同样会发现还是带符号,这个问题仍然待解决
#示例7
a=+123
b=-123
print('第一个输出%X,第二个输出%X'%(a,b)) #输出两个十六进制不带符号的整数(大写)
结果:
第一个输出7B,第二个输出-7B #这里同样会发现还是带符号,这个问题仍然待解决
#示例8
a=123.456000
b=123.456000
print('第一个直接输出:%f,第二个输出并保留三位小数:%.3f'%(a,b)) #输出两个浮点数
结果:
第一个直接输出:123.456000,第二个输出并保留三位小数:123.456
#示例9
a=123.456
b=123456.0
print('第一个直接输出:%e,第二个输出并设置宽度为10:%10e'%(a,b)) #科学计数法输出
结果:第一个直接输出:1.234560e+02,第二个输出并设置宽度为10:1.234560e+05
#示例10
a=123.456
b=123456.0
print('第一个直接输出:%E,第二个输出并设置宽度为10:%10E'%(a,b))
#示例11
关于%p输出以十六进制输出对象地址的问题还未解决
四、print函数的参数格式化——利用%的辅助指令
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用于左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 (目前,这个实现仍有问题) |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | %% 输出一个单一的'%' |
(var) | 映射变量(字典参数)(目前,这个实现仍有问题) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') (这个方法目前仍未实现成功,待解决) |
#示例1
a=+123.456
b=-123.45654
print('第一个输出%*d,第二个输出%d'%(10,a,b)) #这里设置了10个宽度
结果:
第一个输出 123,第二个输出-123
#示例2
a=123.45654
b=123.45654
print('第一个输出%.*f,第二个输出%f'%(2,a,b)) #这里设置了第一个输出精度为两位小数
#示例3
a=123.456
b=123.45654
print('第一个输出%+d,第二个输出%d'%(a,b)) #这里设置了第一个整数前带'+'号
#示例4
a= 123.45654
b= 123.45654
print('第一个输出%010.3f,第二个输出%f'%(a,b))#这里设置了第一个输出宽度为10,其中的空格用0填充
结果:
第一个输出000123.457,第二个输出123.456540
#示例5
x=10
y=10
print('%d %% %d'%(x,y)) #%%的结果是输出一个 %
结果:
10 % 10
#示例6
a=123.456789
print('输出结果%20.3f'%(a)) #这里设置最小总宽度为20,保留3位小数
print('输出结果%020.3f'%(a)) #这里设置最小总宽度为20,空格用0替代,保留三位小数
结果:
输出结果 123.457
输出结果0000000000000123.457
#未完待续