#Python3中字符串格式化详解

Python3中字符串格式符详解

1.% 操作符,格式如下:

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

(name) 为命名;
( flags) 可以有 +,-,’ ‘或 0。+ 表示右对齐。- 表示左对齐。’ ’ 为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0 表示使用 0 填充;
(width)表示显示宽度;
(precision) 表示小数点后精度;
其中类型码如下:

符号 功能
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符
%d 十进制整数
%i 十进制整数
%o 八进制整数
%x 十六进制整数
%e 指数 (基底写为e)
%E 指数 (基底写为E)
%F 浮点数,与上相同%g 指数(e)或浮点数 (根据显示长度)
%G 指数或浮点数 (根据显示长度)
%% 字符"%"
%f 浮点数
%f 浮点数

下面进入举例环节:

print("%10.4f" % 4.3)
#(输出)    4.3000

# 第一个 % 后面的内容为格式说明,10 为显示宽度(    4.3000)不够的空格填充,
# 4为小数点位数,f为浮点数类型
# 第二个 % 后面为显示的内容来源。
print("%-10.4f" % 4.3)
#(输出)4.3000    

# 第一个 % 后面的内容为格式说明:- 代表向左对齐,
#10 为显示宽度(4.3000    )不够的空格填充,
# 4为小数点位数,f为浮点数类型
# 第二个 % 后面为显示的内容来源。
print("%010.4f" % 4.3)
#(输出)00004.3000  

# 第一个 % 后面的内容为格式说明:- 代表向左对齐,
#10 为显示宽度(00004.3000)不够的0填充,
# 4为小数点位数,f为浮点数类型
# 第二个 % 后面为显示的内容来源。

八进制、十进制、十六进制 之间

print("%+11x"% -12)
#(输出)         -c  

# 第一个 % 后面的内容为格式说明:+ 代表向右对齐,
#10 为显示宽度(         -c)不够的空格填充,
# x为十六进制,
# 第二个 % 后面为显示的内容来源。
print("%15o"% 10)
#(输出)             12  

# 第一个 % 后面的内容为格式说明:+ 代表向右对齐,
#10 为显示宽度(             12)不够的空格填充,
# o为八进制,
# 第二个 % 后面为显示的内容来源。

width, precision 为两个整数。我们可以利用" * " 带入

print("%10.*f" % (4, 4.3))
#(输出)    4.3000

# 第一个 % 后面的内容为格式说明:默认向右对齐,
#10 为显示宽度(    4.3000)不够的空格填充,
# * 为小数精度 4 小数点后四位
# 第二个 % 后面为(* 代表的precision 数值)和(显示的内容来源)。

常常出现场合:
%s 他的含义是“这里将被替换成一个新的字符串”,用作替换的内容放在字符串后面的%后面。
%d 含义是“这里将被替换成一个十进制的数”
%f 含义是“这里将被替换成一个浮点数”

num = 123
st = "who"
print("my name is %r ,编号 %d"%(st,num))
#(输出)my name is 'who' ,编号 123

num = 123
str = "who"
print("my name is %s ,编号 %d"%(str,num))
#(输出)my name is who ,编号 123

num = 123
str = "who"
float1 = 2.2
print("my name is %s ,编号 %d ,%.2f"%(str,num,float1))
#(输出)my name is who ,编号 123 ,2.20

2.format 格式化函数

基本语法是通过 {} 和 : 来代替以前的 %,增强了字符串格式化的功能。
format 函数可以接受不限个参数,位置可以不按顺序,但是只能少不能多(比参数的数量少,不能比参数的数量多)。所以更加的方便。

num = 123
str = "who"
float1 = 2.2
print("my name is {
      } ,编号 {
      } ,{
      }".format(str,num,float1))
#(输出)my name is who ,编号 123 ,2.2

下面介绍一下str.format() 格式化数字的多种方法:

举例 格式 #(输出) 功能
print("{:.2f}".format(1.23456)) { :.2f } 1.23 保留小数点后两位
print("{:+.2f}".format(1.23456)) {:+.2f} +1.23 保留符号保留小数点后两位
print("{:+.2f}".format(-1.23456)) { :.2f } -1.23 保留符号保留小数点后两位
print("{:0>10}".format(-1.23456)) {:0>10} 00-1.23456 数字零填充不足的位置 (向左边填充, 宽度为10)
print("{:.0f}".format(-1.23456)) {:.0f} -1 只保留整数部分
print("{:0<10}".format(-1.23456)) {:0<10} -1.2345600 数字零填充不足的位置 (向右边填充, 宽度为10)
print("{:,}".format(123456)) {:,} 123,456 以逗号分隔的数字格式
print("{:.2%}".format(1.23456)) {:.2%} 123.46% 百分比格式,会进行四舍五入
print("{:.2e}".format(1.23456)) {:.2e} 1.23e+00 指数记法
print("{:<10}".format(1.23456)) {:<10} 1.23456 空格填充不足的位置 (向左边填充, 宽度为10)
print("{:^10}".format(1.23456)) {:^10} 1.23456 中间对齐,空格填充不足的位置 (宽度为10)
print("{:b}".format(11)) {:b} 1011 二进制输出
print("{: o}".format(11)) {: o} 13 八进制输出
print("{:x}".format(11)) {:x} b 十六进制输出
print("{:d}".format(11)) {:d} 11 十进制输出

你可能感兴趣的:(Python,%,format,format,格式化函数)