浅谈Python的格式化输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈Python的格式化输出
python的输出
python输出中的print()函数,直接引⽤即可,它的完整格式为:
#最后⾯还有⽂件操作的,我们主要学习输出相关,所以暂不加⼊
print(object, sep=' ', end='\n')
object——是我们要输出的东西,可以是变量也可以是具体的数据,可以是单个也可以是多个,如果是多个中间⽤' , '分隔即可sep——当我们要输出多个东西时才会⽤到,它表⽰我们输出的多个数据之间输出时⽤什么来进⾏分隔,如果输出时不设置,那就默认以⼀个空格来分隔
end——⽤来设置输出完我们要输出的数据之后,⽤什么来结尾。
当你不特意进⾏设置时它默认为end='\n' ,所以print()函数默认输出结束后⾃动换⾏
print(1,2,3,end='')
print(1,2,3,sep='!')
print(1,2,3,)
#它们的输出如下:
1 2 31!2!3
1 2 3
#请仔细思考为什么这样,理清楚头绪
我们在C语⾔中学的scanf()函数是格式化输出的,可以设置要输出的数据的格式与数据形式,那我们在python如何来实现呢?
int a=10;
float b=6.6;
scanf("%d%f\n",a,b);
上⾯C语⾔代码⽤python实现为:
a=10
b=6.6
print("%d%f"%(a,b))
#print(a,b,sep='')
如果对输出数据格式有要求我们选⽤上⾯的⽅式,可以和c语⾔⼀样对于输出的格式进⾏修改设定
如果对输出格式没有要求我们选⽤第⼆种⽅法,⽐较⽅便,与字符串⼀起输出时可以⽤+进⾏连接,但前提是输出类型也是字符串类型的,如果不是字符串类型,那我们可以⽤str()函数进⾏强制转换在进⾏连接输出,如下:
a=18
print("Her age is "+a+" !")
上⾯这样写时错误的,因为a为赋值为18,所以a的数据类型为整型,整型不可以直接与字符串⽤+进⾏连接,所以正确的写法应该是:
a=18
print("Her age is "+str(a)+" !")
#输出为:Her age is 18 !
接下来具体讲⼀下格式化输出数据,%的格式化输出与C语⾔的⼤同⼩异:
%d——⼗进制整数
%o —— ⼋进制整数
%x —— ⼗六进制整数
%f——浮点数,⼩数点后⾯六位有效数字
%e ——指数形式输出,⼩数点后⾯六位有效数字
%g ——六位有效数字的前提下,使⽤⼩数⽅式,否则使⽤科学计数法
a=5
print(10)
print("%d"%a)
print("%2d"%a)#输出时按照2个空间⼤⼩输出,默认为右对齐
print("%-2d"%a)#2个空间⼤⼩,因为d前⾯是-号,所以左对齐
print("%02d"%a)#2个空间⼤⼩输出,不够的⽤0补齐
print("%-02d"%a)#2个空间⼤⼩输出,不够的⽤0补齐,左对齐
#以上代码的输出为:
10
5
5
5
05
5
总结⼀下上⾯代码,%与d之间可以加⼀些数字或者符号来控制输出数据的格式,具体为:
%(控制左右对齐)(⽤什么补齐)(按照⼏位空间输出)d分别为:
默认为右对齐,负号为左对齐
默认空格补齐,可以设置其他补齐
数字本⾝超过要求的空间时,⽆影响,数据本⾝不够时,根据左右对齐,在根据补齐。
说⽩了就是占位置
其他的数据类型也都是类似的,⽆论是浮点数还是字符串,如%5.2f代表,占五个位置,并且保留两位⼩数,要特别注意的是浮点数的⼩数点也是占⼀个位置的,接下来看⼏个实例,好好体会⼀下
b=5.21
print(b)
print("%f"%b)
print("%2.1f"%b)
print("%2.2f"%b)
print("%5.2f"%b)
print("%5.5f"%b)
print("%.5f"%b)
#上⾯的输出依次为:
5.21
5.210000
5.2
5.21
5.21
5.21000
5.21000
#⼤家注意对⽐研究
有些东西必须要⾃⼰体会出来才能记下来,希望⼤家能够勤奋思考,不要偷懒!
接下来介绍⼀个函数——str.format()
相对基本格式化输出采⽤‘%'的⽅法,format()功能更强⼤,该函数把字符串当成⼀个模板,通过传⼊的参数进⾏格式化,并且使⽤⼤括号‘{}'作为特殊字符代替‘%'
废话不多说上代码
#通过位置匹配,类似于数组
print('{} {}'.format('hello','baibai'))#hello baibai
print('{1} {0}'.format('hello','baibai'))#baibai hello
print('{1} {1}'.format('hello','baibai'))#baibai baibai
print('{0} {0}{0}'.format('hello','baibai'))#hello hellohello
#通过对应值名字进⾏匹配,类似于字典
#(这⾥也可以传⼊⼀个字典类型进⾏key与value对应取)
print('{a},{b}'.format(a='1',b='8'))#1,8
除了这些,我们还可以输出更加复杂的数据类型
#还是⽤⼀下我之前定义的⼀个数据
goods=[(1,"百事可乐",10,3),(2,"康师傅⽅便⾯",15,2),(3,"马克杯",5,30)]
list=[1,2,3]
print('{0[1]}'.format(goods))#(2, '康师傅⽅便⾯', 15, 2)
print('{0[1]},{1[2]}'.format(goods,list))#(2, '康师傅⽅便⾯', 15, 2),3
print('{0[1][1]}'.format(goods,list))#康师傅⽅便⾯
总结
本篇⽂章就到这⾥了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!。