格式化输出:
#按默认位置传入 s = 'name = {},age = {},hight = {},form = {}'.format('aike','18','183','江西吉安') print(s)
#format的表现形式为元组,可以以索引进行传参 name = input('请输入你的姓名:').strip() age = input('请输入你的年龄:').strip() hight = input('请输入你的身高:').strip() form = input('请输入你的籍贯:').strip() print('姓名{0},年龄{1},身高{2},籍贯{3},再说一遍,我叫{0}'.format(name,age,hight,form))
#表现形式既然为元组,那么就能以元素进行传参,即关键字传参 print('姓名{name},年龄{age},身高{hight},籍贯{form},再说一遍,我叫{name}'.format(name = 'aike',age = '18',hight = '183',form = '江西吉安'))
如果参数format_spec未提供,则和调用str(value)效果相同,转换成字符串格式化:
l = format(123) print(l,type(l)) #123 <class 'str'> print(str(123),type(str(123)))#123 <class 'str'>
对于不同的类型,参数format_spec可提供的值都不一样
#字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐 print(format('test', '<20')) print(format('test', '>20')) print(format('test', '^20'))
#整形数值可以提供的参数有 'b' 'c' 'd' 'o' 'x' 'X' 'n' None >>> format(3,'b') #转换成二进制 '11' >>> format(97,'c') #转换unicode成字符 'a' >>> format(11,'d') #转换成10进制 '11' >>> format(11,'o') #转换成8进制 '13' >>> format(11,'x') #转换成16进制 小写字母表示 'b' >>> format(11,'X') #转换成16进制 大写字母表示 'B' >>> format(11,'n') #和d一样 '11' >>> format(11) #默认和d一样 '11'
#浮点数可以提供的参数有 'e' 'E' 'f' 'F' 'g' 'G' 'n' '%' None >>> format(314159267,'e') #科学计数法,默认保留6位小数 '3.141593e+08' >>> format(314159267,'0.2e') #科学计数法,指定保留2位小数 '3.14e+08' >>> format(314159267,'0.2E') #科学计数法,指定保留2位小数,采用大写E表示 '3.14E+08' format(314159267,'f') #小数点计数法,默认保留6位小数 '314159267.000000' format(3.14159267000,'f') #小数点计数法,默认保留6位小数 '3.141593' format(3.14159267000,'0.8f') #小数点计数法,指定保留8位小数 '3.14159267' format(3.14159267000,'0.10f') #小数点计数法,指定保留10位小数 '3.1415926700' format(3.14e+1000000,'F') #小数点计数法,无穷大转换成大小字母 'INF'
#g的格式化比较特殊,假设p为格式中指定的保留小数位数,先尝试采用科学计数法格式化,得到幂指数exp,如果-4<=exp<p,则采用小数计数法,并保留p-1-exp位小数,否则按小数计数法计数,并按p-1保留小数位数 format(0.00003141566,'.1g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点 '3e-05' format(0.00003141566,'.2g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留1位小数点 '3.1e-05' format(0.00003141566,'.3g') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留2位小数点 '3.14e-05' format(0.00003141566,'.3G') #p=1,exp=-5 ==》 -4<=exp<p不成立,按科学计数法计数,保留0位小数点,E使用大写 '3.14E-05' format(3.1415926777,'.1g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留0位小数点 '3' format(3.1415926777,'.2g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留1位小数点 '3.1' format(3.1415926777,'.3g') #p=1,exp=0 ==》 -4<=exp<p成立,按小数计数法计数,保留2位小数点 '3.14' format(0.00003141566,'.1n') #和g相同 '3e-05' format(0.00003141566,'.3n') #和g相同 '3.14e-05' format(0.00003141566) #和g相同 '3.141566e-05'