上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

python format()

[复制链接]
  • TA的每日心情
    慵懒
    昨天 08:20
  • 签到天数: 83 天

    [LV.6]常住居民II

    142

    主题

    520

    帖子

    835

    积分

    版主

    Rank: 8Rank: 8

    积分
    835

    猫咪币纪念章三好学生活跃会员热心会员突出贡献中秋纪念章国庆纪念章宣传达人推广达人

    发表于 2020-12-1 07:26:09 | 显示全部楼层 | 阅读模式
    str.format() 这个特性从python2.6而来 其实实现的效果和%有些类似 不过有些地方更方便

    通过位置映射:

    ~~~
    In [1]: '{0},{1}'.format('kzc',18)
    Out[1]: 'kzc,18'
    In [2]: '{},{}'.format('kzc',18)  # 注意python2.6并不支持写为空
    Out[2]: 'kzc,18'
    In [3]: '{1},{0},{1}'.format('kzc',18)
    Out[3]: '18,kzc,18'
    ~~~

    通过关键字参数:

    ~~~
    In [5]: '{name},{age}'.format(age=18,name='kzc')
    Out[5]: 'kzc,18'
    ~~~

    通过对象属性:

    ~~~
    class Person:
      def __init__(self,name,age):
        self.name,self.age = name,age
        def __str__(self):
          return 'This guy is {self.name},is {self.age} old'.format(self=self)


    In [2]: str(Person('kzc',18))
    Out[2]: 'This guy is kzc,is 18 old'
    ~~~

    通过下标:

    ~~~
    In [7]: p=['kzc',18]
    In [8]: '{0[0]},{0[1]}'.format(p)
    Out[8]: 'kzc,18'
    ~~~

    除此之外,她还有非常丰富的格式限定功能。关键字是{}中带:符号

    **填充与对齐:  
    **填充常跟对齐一起使用  
    ^、分别是居中、左对齐、右对齐,后面带宽度  
    :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

    举个例子

    ~~~
    In [15]: '{:>8}'.format('189')
    Out[15]: '   189'
    In [16]: '{:0>8}'.format('189')
    Out[16]: '00000189'
    In [17]: '{:a>8}'.format('189')
    Out[17]: 'aaaaa189'
    ~~~

    精度与类型:

    ~~~
    In [44]: '{:.2f}'.format(321.33345)
    Out[44]: '321.33'
    ~~~

    其他类型比如格式化多少进制输出:

    ~~~
    In [54]: '{:b}'.format(17)
    Out[54]: '10001'
    In [55]: '{:d}'.format(17)
    Out[55]: '17'
    In [56]: '{:o}'.format(17)
    Out[56]: '21'
    In [57]: '{:x}'.format(17)
    Out[57]: '11'
    ~~~

    bilibili:陈公子的话   公众号:陈公子的话

    发表回复

    本版积分规则

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