日期: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