美文网首页
字符串格式化_百分号方式_format方式

字符串格式化_百分号方式_format方式

作者: Lijy_李俊阳 | 来源:发表于2019-04-07 16:16 被阅读0次

    百分号方式

    模板

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

    • (name) 可选,用于选择指定的key
    • flags 可选,可供选择的值有:
      (加号)+ 右对齐;正数前加正好,负数前加负号;
      (减号) — 左对齐;正数前无符号,负数前加负号;
      空格 右对齐;正数前加空格,负数前加负号;
      0 右对齐;正数前无符号,负数前加负号;用0填充空白处
    • width 可选,占有宽度
    • .precision 可选,小数点后保留的位数
    • typecode 必选
      s,获取传入对象的str方法的返回值,并将其格式化到指定位置
      r,获取传入对象的repr方法的返回值,并将其格式化到指定位置
      c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
      o,将整数转换成 八 进制表示,并将其格式化到指定位置
      x,将整数转换成十六进制表示,并将其格式化到指定位置
      d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
      e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
      E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
      f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
      F,同上
      g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
      G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
      %,当字符串中存在格式化标志时,需要用 %%表示一个百分号
    常用格式化
    # %s可以接收字符串、数字等
    te1 = 'i am %s hobby is alex ' % 'Tom'
    print(te1)
    te2 = 'i am %s hobby is %s' % ('Tom', 'alex')
    print(te2)
    # %d可接收的是int类型
    te3 = 'i am Tom hobby is alex,age %d' % 16
    print(te3)
    # %f接收浮点数用,默认保留六位
    te4 = '圆周率=%f' % 3.141592645
    print(te4)
    # 指定小数点后保留位数,用%.7f
    te5 = '圆周率=%.7f' % 3.141592655
    print(te5)
    # 打印百分比
    te6 = '及格率=%.2f %%' % 67.987
    print(te6)
    # 键值对形式传递
    te7 = 'Im %(name)s age%(age)d' % {'name': 'TOM', 'age': 18}
    print(te7)
    te8='圆周率=%(pp)f' % {'pp':3.141592645}
    print(te8)
    te9='圆周率=%(pp).6f %%'%{'pp':3.141592645}
    print(te9)
    
    

    Format 方式

    tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')
      
    #必须一一对应,否则会报错
    tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
      
    
    tpl = "i am {0}, age {1}, really {0}".format("seven", 18)
      
    
    tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])
      
    
    tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
      
    
    tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
    #                                                      ** 代表传字典
    
    tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
      #按照下标去取值,{0[0]}表示取第一个列表的第一个值
    
    tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
    #              s 代表字符串 d 代表整数
    
    tpl = "i am {:s}, age {:d}".format(*["seven", 18])
     #                                   * 代表列表
    
    tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)
      
    
    tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
     
    
    tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
    #                2进制 8进制 10进制  x与X: 16进制 %:百分比
    
    tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
     
    
    tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
     
    
    tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)``
    
    

    相关文章

      网友评论

          本文标题:字符串格式化_百分号方式_format方式

          本文链接:https://www.haomeiwen.com/subject/mpdsiqtx.html