zoukankan      html  css  js  c++  java
  • 字符串格式化。

    字符串格式化

    Python的字符串格式化有两种方式: 百分号方式、format方式

    格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

    百分号方式:

    可以用如下的方式,对格式进行进一步的控制
     

    %[(name)][flags][width].[precision]typecode
    
    (name)为命名
    
    flags可以有+,-,' '或0。+表示右对齐。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。
    
    width表示显示宽度
    
    precision表示小数点后精度
    

    [  ]:表示可选

    fill:可选,空白处填充的字符

    align:可选,对其方式(需配合width使用)

    <,内容左对齐

    >,内容右对齐(默认)

    =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字

    ^,内容居中

    sign:可选,有无符号数字

    +,正号加正,负号加负;

     -,正号不变,负号加负;

    空格 ,正号空格,负号加负;

    #:可选,对于二进制、八进制、十六进制,如果加上#,会显示0b/0o/ox,否则不显示

    :可选,为数字添加分隔符,如:1,000,000

    width:可选,格式化位所占宽度

    .precision:可选,小数位保留精度

    type:可选,格式化类型

    传入” 字符串类型 “的参数

    • s,格式化字符串类型数据

    • 空白,未指定类型,则默认是None,同s
    • 传入“ 整数类型 ”的参数
      • b,将10进制整数自动转换成2进制表示然后格式化

        c,将10进制整数自动转换为其对应的unicode字符

        d,十进制整数

        o,将10进制整数自动转换成8进制表示然后格式化;

        x,将10进制整数自动转换成16进制表示然后格式化(小写x)

      • X,将10进制整数自动转换成16进制表示然后格式化(大写X)
    • 传入“ 浮点型或小数类型 ”的参数
      • e, 转换为科学计数法(小写e)表示,然后格式化;
      • E, 转换为科学计数法(大写E)表示,然后格式化;
      • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
      • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
      • g, 自动在e和f中切换
      • G, 自动在E和F中切换
      • %,显示百分比(默认显示小数点后6位)
      • s = 'i am %s,age %d' % ('kai',19)
        print(s)
        执行结果:i am kai,age 19
        s = 'i am %(n1)s,age %(n2)s' % {'n1':'kai','n2':'100'}
        print(s)
        执行结果:i am kai,age 100
        s = 'percent %.2f' % 1.2222
        print(s)
        执行结果:percent 1.22
        s = 'i am %(zz).2f'%{'zz':3.555555}
        print(s)
        执行结果:i am 3.56
        
        s = 'i am %(kai).2f %%' %{'kai':2.55555}
        print(s)
        执行结果:i am 2.56 %
        

     format:

    [[fill]align][sign][#][0][width][,][.precision][type]
    

    [  ]:表示可选

    fill:可选,空白处填充的字符

    align:可选,对其方式(需配合width使用)

    <,内容左对齐

    >,内容右对齐(默认)

    =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字

    ^,内容居中

    sign:可选,有无符号数字

    +,正号加正,负号加负;

     -,正号不变,负号加负;

    空格 ,正号空格,负号加负;

    #:可选,对于二进制、八进制、十六进制,如果加上#,会显示0b/0o/ox,否则不显示

    :可选,为数字添加分隔符,如:1,000,000

    width:可选,格式化位所占宽度

    .precision:可选,小数位保留精度

    type:可选,格式化类型

    传入” 字符串类型 “的参数

    • s,格式化字符串类型数据

      空白,未指定类型,则默认是None,同s

    传入“ 整数类型 ”的参数

      • b,将10进制整数自动转换成2进制表示然后格式化
      • c,将10进制整数自动转换为其对应的unicode字符
      • d,十进制整数
      • o,将10进制整数自动转换成8进制表示然后格式化;
      • x,将10进制整数自动转换成16进制表示然后格式化(小写x)
      • X,将10进制整数自动转换成16进制表示然后格式化(大写X)

    传入“ 浮点型或小数类型 ”的参数

      • e, 转换为科学计数法(小写e)表示,然后格式化;
      • E, 转换为科学计数法(大写E)表示,然后格式化;
      • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
      • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
      • g, 自动在e和f中切换
      • G, 自动在E和F中切换
      • %,显示百分比(默认显示小数点后6位)

    代码如下:

    zz = "i am {}, age {}, {}".format("seven",18,"alex")
    print(zz)
    执行结果:i am seven, age 18,alex
    
    zz = "i am {}, age {}, {}".format(*["seven",18,"alex"])
    print(zz)
    执行结果:i am seven, age 18,alex
    
    zz = "i am {0}, age {1}, really {0}".format("seven",18)
    print(zz)
    执行结果:i am seven, age 18, really seven
    
    zz = "i am {0}, age {1}, really {0}".format(*["seven",18])
    print(zz)
    执行结果:
    i am seven, age 18, really seven
    
    zz = "i am {name}, age{age}, really {name}".format(name = "seven",age = 18)
    print(zz)
    执行结果:
    i am seven, age18, really seven
    
    zz = "i am {name}, age{age}, really {name}".format(**{"name":"seven","age":18})
    print(zz)
    执行结果:
    i am seven, age18, really seven
    
    zz = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1,2,3],[11,22,33])
    print(zz)
    执行结果:
    i am 1, age 2, really 3
    
    zz = "i am {:s}, age{:d}, money{:f}".format("seven",18,3.1415926)
    print(zz)
    执行结果:
    i am seven, age18, money3.141593
    
    zz = "i am {:s}, age {:d}".format("seven",18)
    print(zz)
    执行结果:
    i am seven, age 18
    
    zz = "i am {name:s}, age {age:d}".format(name = "seven", age = 18)
    print(zz)
    执行结果:
    i am seven, age 18
    
    zz ="i am {name:s}, age {age:d}".format(**{"name":"seven","age":18})
    print(zz)
    执行结果:
    i am seven, age 18
    
    zz = "numbers: {:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15.87623,2)
    print(zz)
    执行结果:
    numbers: 1111,17,15,f,F,1587.623000%
    
    zz = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X},{0:%}".format(15)
    print(zz)
    执行结果:
    numbers: 1111,17,15,f,F,1500.000000%
    
    zz = "numbers:{num:b},{num:o},{num:d},{num:x},{num:X},{num:%}".format(num = 15)
    print(zz)
    执行结果:
    numbers:1111,17,15,f,F,1500.000000%
    
     
  • 相关阅读:
    【iOS】js调用oc的一个注意点
    【iOS】程序内跳转到支付宝转账(非SDK实现支付)及相关监听
    GCD定时器不走set_event_handler和variable is not assignable missing block
    苹果审核上传附件上传不上去
    上传本地代码到gitHub过程详解
    iOS---学习研究大牛Git高星项目YYCategories(四)
    iOS 关键字const/static/extern、UIKIT_EXTERN区别和用法
    iOS---学习研究大牛Git高星项目YYCategories(三)
    iOS---学习研究大牛Git高星项目YYCategories(二)
    iOS---学习研究大牛Git高星项目YYCategories(一)
  • 原文地址:https://www.cnblogs.com/guokaixin/p/5516697.html
Copyright © 2011-2022 走看看