三、Python格式化输出

有些我们需要按照我们想要的格式进行输出,就会用到格式化输出,格式化输出的主要方法有两种:%的方法和format()方法。两者的区别在于对于简单的数据%的方式足够用了,format通过传入的参数进行格式化,对于复杂数据使用format功能更加强大。

一、%用法

1、整数的输出:

%o——oct 八进制

%d——dec 十进制

%x——hex 十六进制

>>print('%o' % 20)
24
>>print('%d' % 20)
20
>>print('%x' % 20)
14

2、浮点数输出:

%f——保留小数点后面六位有效数字

%.3f——保留小数点后面三位有效数字

%e——保留小数点后面六位有效数字,指数形式输出

%.3e——保留小数点后面三位有效数字,使用科学计数法

%g——在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法

%.3g——在保证三位有效数字的前提下,使用小数方式,否则使用科学计数法

>>print('%f' % 1.11) #默认保留小数点后六位有效数字
1.110000
>>print('%.3f' % 1.11) #指定保留小数后三位有效数字
1.110
>>print('%e' % 1.11) #默认保留小数点后六位有效数字,用科学计数法
1.110000e+00
>>print('%.3e' % 1.11) #指定保留小数点后三位有效数字,用科学计数法
1.110e+00
>>print('%g' % 1111.1111) #默认保留六位有效数字,注意不是小数点后
1111.11
>>print('%.7g' % 1111.1111) #指定保留七位有效数字
1111.111
>>print('%.2' % 1111.1111) #指定保留两位有效数字,自动转换科学计数法
1.1e+03

3、字符串输出

%s

%10s——右对齐,占位符10位

%-10s——左对齐,占位符10位

%.2s——截取两位字符串

%10.2s——右对齐,占位符10位,截取两位字符串

%-10.2s——左对齐,占位符10位,截取两位字符串

>>print('%s' % 'hello world') 
hello world
>>print('%20s' % 'hello world') #右对齐,取20位,不够补位
         hello world
>>print('%-20' % 'hello world') #左对齐,取20位,不够补位
hello world         
>>print('%.2s' % 'hello world') #截取两位
he
>>print('%10.2s' % 'hello world') #右对齐,截取两位,共取10位,不够补位
        he
>>print('%-10.2s' % 'hello world') #左对齐,截取两位,共取10位,不够补位
he        

4、其他

格式化代码
符号说明
%sstring字符串
%cchar字符
%d十进制
%i整数
%u无符号整数
%o八进制整数
%x十六进制整数
%X十六进制整数大写
%e浮点数科学计数法
%E浮点数科学计数法大写
%f浮点数小数点后6位
%g浮点数整体6位
%G浮点数整体6位大写
%%输出%
常见转义字符
转义字符描述
\(在行尾时)续行符
\\反斜杠 \ 符号
\'单引号 '
\"双引号 "
\a响铃(对没错电脑会响一声)
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车(本行开始,跟\n不同,最好自己试一下看效果)
\f换页
\oyy八进制yy代表的字符(个人认为没什么卵用)
\xyy十进制yy代表的字符(同上)
\other其他的字符输出

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

二、format用法

1、不指定位置以及通过位置匹配

#不设置指定位置,不带任何字段
>>print('{} {}'.format('hello','world'))
hello world
#通过位置匹配
#设置指定位置输出,{}内是几就输出第几个元素
>>print('{0} {1}'.format('hello','world'))
hello world
>>print('{2} {0} {1}'.format('hello','world','python'))#可打乱顺序
python hello world
>>print('{1} {0} {1}'.format('hello','world'))#可重复
world hello world

2、通过关键字匹配

#通过关键字匹配
>>print('网站名:{name}, 网址:{url}'.format(name = '坑你点',url = 'www.kengni.com'))
网站名:坑你点, 网址:www.kengni.com
>>print('网址:{url}, 网站名:{name}'.format(name = '坑你点',url = 'www.kengni.com'))
网址:www.kengni.com, 网站名:坑你点
#通过字典进行匹配
#通过字典进行匹配时,{}内的值对应的字典的key,输出的值为字典的value
>>my_dictionary = {'name':'坑你点', 'url':'www.kengni.com'}
>>print('网站名:{name}, 网址:{url}'.format(**my_dictionary))#字典匹配时在字典前加**
网站名:坑你点, 网址:www.kengni.com

3、通过下标、key匹配

#通过列表下标匹配
>>my_list = ['坑你点','www.kengni.com','二狗']
>>print('网站名:{0[0]},网址:{0[1]}, 站长:{0[2]}'.format(my_list))#注意{0[0]}元素前的0是必须的,固定格式
网站名:坑你点, 网址:www.kengni.com, 站长:二狗

#通过元组下标匹配
>>my_suple = ('坑你点','www.kengni.com','二狗')
>>print('网站名:{0[0]}, 网址:{0[1]}, 站长:{0[2]}'.format(my_suple))
网站名:坑你点, 网址:www.kengni.com, 站长:二狗

#通过集合下标匹配。。。通过毛集合下标!集合TMD没下标!

#通过字典key匹配
>>my_dictionary = {'name':'坑你点','url':'www.kengni.com','owner':'二狗'}
>>print('网站名:{0[name]}, 网址:{0[url]}, 站长:{0[owner]}'.format(my_dictionary))
网站名:坑你点, 网址:www.kengni.com, 站长:二狗

当然,format还有很多其他的用法,但是不太常用,这里就先不做介绍了,以后有空在补吧!

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值