python--字符串格式化

Posted june-l

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)或浮点数 (根据显示长度)
    %% 表示一个字符"%"

注意:python中百分号格式化是不存在自动将整数转换成二制表示的方式

常用格式化示例:

技术图片
 1 str1 = "I am learning %s" % "python"
 2 
 3 str2 = "my name is %s , age %d" %("yusheng_liang", 20)
 4 
 5 str3 = "my name is %(name)s , age %(age)d" %"name": "yusheng_liang", "age": 20
 6 
 7 str4 = "precent %.2f" % 99.97654
 8 
 9 str5 = "I am %(qq).2f" %"qq": 123.45678
10 
11 str6 = "I am %(qq).2f %%" %"qq": 123.45678
12 
13 
14 print("str1:", str1)
15 print("str2:", str2)
16 print("str3:", str3)
17 print("str4:", str4)
18 print("str5:", str5)
19 print("str6:", str6)
View Code

示例结果:

技术图片 

 

2)format方式

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

  fill:--可选,空白处填充的字符
  align:--可选,对齐方式(需配合width使用)
    <内容左对齐
    >:内容右对齐(默认)
    =:内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。即:符号+填充物+数字
    ^:内容居中
  sign:--可选,有无符号数字
    +:正号加正,负号加负
    -:正号不变,负号加负
  空格:正号空格,负号加负
  #:--可选,对于二进制、八进制、十六进制,如果加上#,会显示0b/0o/0x,否则不显示
  ,:--可选,为数字洄分隔符,如:1,000,000
  width:--可选,格式化位所占宽度
  .precision:--可选,小数位保留精度
  type:--可选,格式化类型
  对于整数类型,输出格式包括6 种:
    b: 输出整数的二进制方式;
    c: 输出整数对应的 Unicode 字符;
    d: 输出整数的十进制方式;
    o: 输出整数的八进制方式;
    x: 输出整数的小写十六进制方式;
    X: 输出整数的大写十六进制方式;

  对于浮点数类型,输出格式包括4 种:
    e: 输出浮点数对应的小写字母 e 的指数形式;
    E: 输出浮点数对应的大写字母 E 的指数形式;

    f: 输出浮点数的标准浮点形式;

    %: 输出浮点数的百分形式。

常用格式化示例:

技术图片
 1 str1 = "I am , age ".format("yusheng_liang", 20)
 2 str2 = "I am , age ".format(*["yusheng_liang", 20])
 3 str3 = "I am 0, age 1".format("yusheng_liang", 20)
 4 str4 = "I am name, age age".format(name = "yusheng_liang", age = 20)
 5 str5 = "I am name, age age".format(**"name": "yusheng_liang", "age": 20)  #以字典的方式提供数据
 6 str6 = "I am 0[0], age 0[1], set 1[2]".format([1, 2, 3], [11, 22, 33])
 7 str7 = "I am :s, age :d, money :f".format("yusheng_liang", 20, 5000.23)
 8 str8 = "I am :s, age :d".format("yusheng_liang", 20)
 9 str9 = "I am name:s, age age:d".format(name = "yusheng_liang", age = 20)
10 str10 = "I am name:s, age age:d".format(**"name": "yusheng_liang", "age": 20)
11 str11 = "number: :b, :o, :d, :x, :X, :%".format(15, 15, 15, 15, 15, 15, 15.456, 2)
12 
13 
14 print("str1:", str1)
15 print("str2:", str2)
16 print("str3:", str3)
17 print("str4:", str4)
18 print("str5:", str5)
19 print("str6:", str6)
20 print("str7:", str7)
21 print("str8:", str8)
22 print("str9:", str9)
23 print("str10:", str10)
24 print("str11:", str11)
View Code

示例结果:

技术图片

以上是关于python--字符串格式化的主要内容,如果未能解决你的问题,请参考以下文章

Python格式化字符串~转

4.python字符串格式化

python字符串格式化输入

Python学习:12.字符串格式化

Python3-字符串格式化

Python格式化字符串