zoukankan      html  css  js  c++  java
  • python format(格式化)

    自 python 2.6 开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。
    #语法
    它通过{}:来代替%

    位置

    '{0},{1}'.format('kzc',18) # kzc,18
    '{},{}'.format('kzc',18) # kzc,18
    '{1},{0},{1}'.format('kzc',18) # 18,kzc,18

    字符串的 format 函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。

    参数名

    '{name}, {age}'.format(age=18,name='kzc')  # '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) 
    str(Person('kzc',18)) # 'This guy is kzc,is 18 old'

    对象下标

    arg_arr = ["kevin", 26]
    msg = "name: {0[0]}, age: {0[1]}".format(arg_arr)  #name: kevin, age: 26

    有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的 python 知识告诉我们,list 和 tuple 可以通过“打散”成普通参数给函数,而 dict 可以打散成关键字参数给函数(通过和 * )。所以可以轻松的传个 list/tuple/dict 给 format 函数。非常灵活。

    格式限定符

    它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

    填充与对齐

    填充常跟对齐一起使用
    对齐
    < (默认)左对齐
    > 右对齐
    ^ 中间对齐
    = (只用于数字)在小数点后进行补齐
    填充
    : 后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

    '{:>8}'.format('189')  # '   189'
    '{:0>8}'.format('189') # 00000189
    '{:a>8}'.format('189') # aaaaa189

    精度与类型f

    精度常跟类型f一起使用

    '{:.2f}'.format(321.33345)  # 321.33

    其中 .2 表示长度为 2 的精度,f 表示 float 类型。

    进制

    bdox分别是二进制、十进制、八进制、十六进制。

    '{:b}'.format(17) # 10001
    '{:d}'.format(17) # 17
    '{:o}'.format(17) # 21
    '{:x}'.format(17) # 11

    ,号还能用来做金额的千位分隔符。

    '{:,}'.format(1234567890) # 1,234,567,890

    数据类型

    b:二进制。将数字以2为基数进行输出。
    c:字符。在打印之前将整数转换成对应的Unicode字符串。
    d:十进制整数。将数字以10为基数进行输出。
    o:八进制。将数字以8为基数进行输出。
    x:十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
    e:幂符号。用科学计数法打印数字。用’e’表示幂。
    g:一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
    n:数字。当值为整数时和’d’相同,值为浮点数时和’g’相同。不同的是它会根据区域设置插入数字分隔符。
    %:百分数。将数值乘以100然后以fixed-point(‘f’)格式打印,值后面会有一个百分号。

    转:https://blog.csdn.net/lpw_cn/article/details/84559705

  • 相关阅读:
    servlet上传图片 服务器路径(转)
    图片和提交servlet的相对和绝对路径
    Intel 的面试经历中国研究院
    CentOS-6.5-x86_64 最小化安装,已安装包的总数,这些包?
    西门子PLC学习笔记8-(计时器)
    这个周末我太累了
    windows7股票的,win8残疾人,安装Han澳大利亚sinoxn个时间,sinox它支持大多数windows软体
    net.sf.json 迄今 时刻 格式 办法
    ar命令提取.a时刻,一个错误 is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
    POJ 2187: Beauty Contest(旋转卡)
  • 原文地址:https://www.cnblogs.com/fclbky/p/10239518.html
Copyright © 2011-2022 走看看