设为首页 收藏本站
查看: 1199|回复: 0

[经验分享] python函数format字符串格式化

[复制链接]

尚未签到

发表于 2015-12-15 09:14:02 | 显示全部楼层 |阅读模式
格式化字符串函数format格式:
string.format()

几个用法:

1.通过位置




  • 代码:

  • >>> '{0},{1}'.format('I','love','you')
  • 'I,love'
  • >>> '{0},love,{1}'.format('I','you')
  • 'I,love,you'
  • >>> '{0} love {1}'.format('I','you')
  • 'I love you'
  • >>> '{0},love,{1} {1}'.format('I','you')
  • 'I,love,you you'



  • >>> '{1} love {0}'.format('I','you')

  • 'you love I'




  • >>> '{} love {}'.format('I','you')

  • 'I love you'

字符串的format函数可以接受不限个参数,位置顺序可以不固定,也可以不用参数或者多次使用,但是2.6版本不能用{},2.7版本可以用

2.通过关键字参数




  • >>> '{a} love {b}'.format(a='I',b='you')

  • 'I love you'
  • >>> '{name} is {age}'.format(name='lw',age=22)
  • 'lw is 22'
3.通过对象属性(还木有看到对象,先留着以后回来再看)




1
2
3
4
5


?[table=560]
1
2

In [2]: str(Person('kzc',18))
Out[2]: 'This guy is kzc,is 18 old'4.通过下标




  • >>> p=['I','You']

  • >>> '{0[0]} love {0[1]}'.format(p)
  • 'I love You'


补充:
list和tuple可以通过“打散”成普通参数给format函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。


格式限定符
它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
1.填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充




  • >>> '{:^6}'.format('123')

  • ' 123  '
  • >>> '{:*>6}'.format('123')
  • '***123'
  • >>> '{:*<6}'.format('123')
  • '123***'
  • >>> '{:>6}'.format('123')
  • '   123'
2.精度与类型f(二者常一起使用)
注意,这时候不再是字符串类型
其中  .3表示长度为3的精度,f表示float类型



  • >>> '{:.3f}'.format('123.456789')


  • Traceback (most recent call last):
  •   File "<pyshell#36>", line 1, in <module>
  •     '{:.3f}'.format('123.456789')
  • ValueError: Unknown format code 'f' for object of type 'str'
  • >>> '{:.3f}'.format(123.456789)
  • '123.457'
3.进制类型
其中,b、d、o、x分别是二进制、十进制、八进制、十六进制,这时候因为是进制类型,所以参数还是不能有  ‘  ’ 号




  • >>> '{:b}'.format(33)

  • '100001'
  • >>> '{:d}'.format(33)
  • '33'
  • >>> '{:o}'.format(33)
  • '41'
  • >>> '{:x}'.format(33)
  • '21'
  • >>>
  • KeyboardInterrupt
  • >>> '{:b}'.format('33')

  • Traceback (most recent call last):
  •   File "<pyshell#45>", line 1, in <module>
  •     '{:b}'.format('33')
  • ValueError: Unknown format code 'b' for object of type 'str'
另外还可以用  ,号还能用来做比如金额的千位分隔符




  • >>> '{:,}'.format(123456789)

  • '123,456,789'

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-151366-1-1.html 上篇帖子: python插入记录后取得主键id的方法(cursor.lastrowid和conn.insert_id()) 下篇帖子: python用pymssql连接ms sql server
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表