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

    一.简介 

    Python的字符串格式化有两种方式: 

    • 百分号方式
    • format方式

    百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存

    1.百分号方式

      格式:

        %[(name)][flags][width].[precision]typecode

    • [name]  --可选,用于选择指定的key
    • [flags]   --可选,可供选择的值有
      • +       右对齐;正数前加正好,负数前加负号;
      • -        左对齐;正数前无符号,负数前加负号;
      • 空格    右对齐;正数前加空格,负数前加负号;
      • 0        右对齐;正数前无符号,负数前加负号;用0填充空白处
    • width       --可选,占有宽度
    • .precision  --可选,小数点后保留的位数
    • typecode    必选,传入对象类型 

    %s    字符串 (采用str()的显示)

    %r    字符串 (采用repr()的显示)

    %c    单个字符

    %b    二进制整数

    %d    十进制整数

    %i    十进制整数

    %o    八进制整数

    %x    十六进制整数

    %e    指数 (基底写为e)

    %E    指数 (基底写为E)

    %f    浮点数

    %F    浮点数,与上相同

    %g    指数(e)或浮点数 (根据显示长度)

    %G    指数(E)或浮点数 (根据显示长度)

     %%    字符"%"

      例如:

    #字符串格式
    str = "I'm %s" % "test"
    #传入字符串和数字类型数据
    str = "i am %s age %d" % ("userA", 18)
    #传入字典格式的值
    str = "i am %(name)s age %(age)d" % {"name": "userA", "age": 18}
    #取两位数的浮点数
    str = "percent %.2f" % 99.97623
    #当字符串中存在格式化标志时,需要用 %%表示一个百分号
    str = "i am %(pp).2f %%" % {"pp":3.1415926}

    2.format格式化

      格式:

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

      • fill           【可选】空白处填充的字符
      • align        【可选】对齐方式(需配合width使用)
        • <,内容左对齐
        • >,内容右对齐(默认)
        • =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
        • ^,内容居中
      • sign         【可选】有无符号数字
        • +,正号加正,负号加负;
        •  -,正号不变,负号加负;
        • 空格 ,正号空格,负号加负
      • #            【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
      • ,            【可选】为数字添加分隔符,如:1,000,000
      • width       【可选】格式化位所占宽度
      • .precision 【可选】小数位保留精度
      • type         【可选】格式化类型
        • 传入” 字符串类型 “的参数
          • s,格式化字符串类型数据
          • 空白,未指定类型,则默认是None,同s
        • 传入“ 整数类型 ”的参数
          • b,将10进制整数自动转换成2进制表示然后格式化
          • c,将10进制整数自动转换为其对应的unicode字符
          • d,十进制整数
          • o,将10进制整数自动转换成8进制表示然后格式w化;
          • x,将10进制整数自动转换成16进制表示然后格式化(小写x)
          • X,将10进制整数自动转换成16进制表示然后格式化(大写X)
        • 传入“ 浮点型或小数类型 ”的参数
          • e, 转换为科学计数法(小写e)表示,然后格式化;
          • E, 转换为科学计数法(大写E)表示,然后格式化;
          • f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
          • F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
          • g, 自动在e和f中切换
          • G, 自动在E和F中切换
          • %,显示百分比(默认显示小数点后6位)

    举例:

    #{}为占位符,0,1,2传参位置
    st = "{0}, {1}, {2}".format('a', 'b', 'c')
    #传入列表数据类型
    tpl = "i am {}, age {}".format(*["seven", 18])
    #指定传入参数位置
    tpl = "i am {0}, age {1}, really {0}".format("seven", 18)
    #按照名字传参
    st = 'Coordinates: {latitude}, {longitude}'.format(latitude='37.24N', longitude='-115.81W')
    #传键值
    coord = (3, 5)
    string = 'X: {0[0]};  Y: {0[1]}'.format(coord)
    #调整文本宽度
    stfor = '{:*^30}'.format('centered')
    #使用逗号做分隔针对数字类型
    intfor = '{:,}'.format(12343434)
    #百分比
    percent = 'Correct answers: {:.2%}'.format(22/77)
    #限定格式
    forma = '{:%Y-%m-%d %H:%M:%S}'.format(datetime.datetime.today())
    #传入数据类型转为二进制,进制,十六八进制,十进制,百分比
    tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)

     

  • 相关阅读:
    bzoj1015星球大战(并查集+离线)
    bzoj1085骑士精神(搜索)
    bzoj1051受欢迎的牛(Tarjan)
    左偏树学习
    hdu1512 Monkey King(并查集,左偏堆)
    左偏树(模板)
    PAT (Basic Level) Practice (中文) 1079 延迟的回文数 (20分) (大数加法)
    PAT (Basic Level) Practice (中文) 1078 字符串压缩与解压 (20分) (字符转数字——栈存放)
    PAT (Basic Level) Practice (中文) 1077 互评成绩计算 (20分) (四舍五入保留整数)
    PAT (Basic Level) Practice (中文) 1076 Wifi密码 (15分)
  • 原文地址:https://www.cnblogs.com/jl-bai/p/5518420.html
Copyright © 2011-2022 走看看