#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十进制输出
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值