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

python format()

[复制链接]
  • TA的每日心情
    奋斗
    5 小时前
  • 签到天数: 533 天

    [LV.9]以坛为家II

    148

    主题

    420

    回帖

    1216

    积分

    版主

    积分
    1216

    油中2周年生态建设者

    发表于 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'
    ~~~

    I don't hate programming but the fucking world.

    发表回复

    本版积分规则

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