Python3之字符串格式化浅谈

日期:2019年11月11日
作者:Commas
注释:学习就是为了忘记,那就总结一下字符串格式化吧…

如果您想了解更多有关Python的知识,那么请点【我】
《我的Python浅谈系列目录》



一、字符串格式化

定义:将字符串特定的地方,替换自己想要的字符串;
例如:将字符串“我爱?”中的“?”替换成“CSDN”,即得到新字符串“我爱CSDN”,这个过程就是字符串格式化。

序号 “方法” 代表 备注
1 格式化操作符 %
2 格式化函数 str.format() 推荐使用

二、格式化操作符%

序号 格式化字符串 全称 含义
1 %s string 字符串
2 %d decimal 十进位的整数
3 %f float 浮点数
4 %% % 输出%

1、%s的示例

#(1)一个格式化字符串
str_ini = "%s,I'm Commas"
str_formart = str_ini % ("Hello",)
# str_formart = str_ini % "Hello"
print(str_formart)
#控制台输出:Hello,I'm Commas
#-----------------------------------------------
#(2)两个或两个以上格式化字符串
str_ini = "SELECT * FROM %s WHERE name = %s"
str_formart = str_ini % ("Student", "Commas")
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas

2、%d的示例

#(1)%d:表示一个十进制的整数
str_ini = "你%d块都不给我!"
str_formart = str_ini % (100.01,)
print(str_formart)
#控制台输出:你100块都不给我!
#-----------------------------------------------
#(2)%06d:表示一个“6位数字”,不足的地方用0补齐
str_ini = "我的学号是%06d"
str_formart = str_ini % (1,)
print(str_formart)
#控制台输出:我的学号是000001

3、%f的示例

#(1)%f:显示完整的浮点数
str_ini = "PI的值是约等于%f"
str_formart = str_ini % (3.1415962,)
print(str_formart)
#控制台输出:PI的值是约等于3.141596
#-----------------------------------------------
#(2)%.2f:显示小数位数为2的浮点数
str_ini = "PI的值是约等于%.2f"
str_formart = str_ini % (3.1415962,)
print(str_formart)
#控制台输出:PI的值是约等于3.14

4、%%的示例

str_ini = "BUG的发生率竟然是 %.2f %%,一个BUG改一天"
str_formart = str_ini % (100,)
print(str_formart)
#控制台输出:BUG的发生率竟然是 100.00 %,一个BUG改一天

三、格式化函数str.format()

1、按默认顺序格式化

# (1){}表示数据不做任何处理
str_ini = "SELECT * FROM {} WHERE name = {}"
str_formart = str_ini.format("Student", "Commas")
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas
#-------------------------------------------
# (2){:.2f}表示保留两位小数
str_ini = "PI的值是约等于{:.2f}"
str_formart = str_ini.format(3.1415926)
print(str_formart)
#控制台输出:PI的值是约等于3.14

2、按指定位置格式化

扫描二维码关注公众号,回复: 8799061 查看本文章
str_ini = "SELECT * FROM {1} WHERE name = {0}"
str_formart = str_ini.format("Commas", "Student")
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas

3、使用字典(Dictionary)格式化

dic_info = {"table": "Student", "name": "Commas"}
str_ini = "SELECT * FROM {table} WHERE name = {name}"
str_formart = str_ini.format(**dic_info)
print(str_formart)
#控制台输出:SELECT * FROM Student WHERE name = Commas

4、使用列表(List)格式化

list_info = [99.99, 2]
str_ini = "白菜特价:{0[0]}元{0[1]}斤"
str_formart = str_ini.format(list_info)
print(str_formart)
#控制台输出:白菜特价:99.99元2斤

5、使用元组(Tuple)格式化

Tuple_info = (99.99, 2)
str_ini = "白菜特价:{0[0]}元{0[1]}斤"
str_formart = str_ini.format(Tuple_info)
print(str_formart)
#控制台输出:白菜特价:99.99元2斤

格式化函数str.format()中的格式速查表:

格式 输入 输出 描述
{:.2f} 3.1415 3.14 保留两位小数
{:+.2f} +3.1415 +3.14 带符号保留两位小数
{:+.2f} -3.1415 -3.14 带符号保留两位小数
{:.0f} 3.1415 3 不带小数
{:0>3d} 1 XX1 宽度为3,不足从左边开始填充X,其中X表示0~9任意数
{:0<4d} 10 10XX 宽度为4,不足从右边开始填充X,其中X表示0~9任意数
{:>10d} 13 13 右对齐(宽度为10,不足从左边开始填充空格)
{:<10d} 13 13 左对齐(宽度为10,不足从右边边开始填充空格)
{:^10d} 13 13 中间对齐(宽度为10,不足从左右两边填充空格)
{:,} 1000 1,000 以逗号分隔的数字格式
{:.2%} 0.99 99% 百分比格式,保留2位小数
{:.2e} 1000 1.00e+03 指数记法,保留2位小数
{:.1e} 0.012 1.2e-02 指数记法,保留1位小数
{:b} 11 1011 二进制:binary
{:d} 11 11 十进制:decimal
{:o} 11 13 八进制:octonary
{:x} 11 b 十六进制:hexadecimal(sexadecimal)
{:#x} 11 0xb 十六进制:hexadecimal(sexadecimal)
{:#X} 11 0XB 十六进制:hexadecimal(sexadecimal)

本文参考:
1、https://www.runoob.com/python/att-string-format.html


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/103008000

发布了26 篇原创文章 · 获赞 18 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_35844043/article/details/103008000