一、基本用法

   1.1 位置替换

# 按照先后顺序对format内容进行替换
'名字:{}, 性别:{}'.format('张三', '男')
# 输出: 
#   '名字:张三,性别:男'

  1.2 索引替换

# 按照索引对format内容进行替换
'名字:{0}, 性别:{1}, 名字:{0}'.format('张三', '男')
# 输出: 
#   '名字:张三,性别:男, 名字:张三'

  1.3 关键字匹配

# 按照索引对format内容进行替换
'名字:{name}, 性别:{gender}, 名字:{name}'.format(name='张三', gender='男')
# 输出: 
#   '名字:张三,性别:男, 名字:张三'

  1.4 对象替换

# =======对象为元组==========#
info1 = ("张三", "男")
info2 = ('李四', '女')
'名字:{0[0]}, 性别:{0[1]}; 名字:{1[0]}, 性别:{1[1]}'.format(info1, info2)
# 输出:
# '名字:张三, 性别:男; 名字:李四, 性别:女'

# =========== 字典 ==========#
info1 = {'姓名': '张三', '性别':'男'}
info2 = {'姓名': '李四', '性别':'女'}
'名字:{0[姓名]}, 性别:{0[性别]}; 名字:{1[姓名]}, 性别:{1[性别]}'.format(info1, info2)
# 输出:
# '名字:张三, 性别:男; 名字:李四, 性别:女'

  1.5 内嵌替换

print('hello {0:{1}>{2}} '.format('李四','*',10))
# 输出: hello ********李四

二、常用格式化输出方式

   常用格式化输出方式具体如下代码所示

2.1 左对齐及填充

#========== 左对齐 ==========#
'%-5s'%'张三'              # 常数5表示占5个字符,-:表示左对齐
# 输出:'张三    '
'{:<5}'.format('张三')
# 输出:'张三    '
'{:*<5}'.format('张三')    #  <表示左对齐, *表示用*号进行填充, 常数5表示占5个字符
# 输出:'张三***'

2.2 右对齐及填充

#========== 右对齐 ===========#
'%5s'%'张三'               # 常数5表示占5个字符,默认右对齐
#输出:'   张三'
'{:>5}'.format('张三')     # 常数5表示占5个字符, >表示右对齐
# 输出:'   张三'
'{:*>5}'.format('张三')    #  >表示右对齐, *表示用*号进行填充, 常数5表示占5个字符
# 输出:'***张三'

2.2 居中对齐及填充

#========== 居中对齐 ===========#
'{:^5}'.format('张三')
# 输出:' 张三  '
'{:*^5}'.format('张三')    #  >表示右对齐, *表示用*号进行填充, 常数5表示占5个字符
# 输出:'*张三**'

2.3 截取指定长度字符串

#===== 截取指定长度字符串 =====# 
'%.2s'%'张三李四'  # 表示从字符串中截取两个字符
# 输出:'张三'

2.4 百分号

#===== 百分号-% =====# 
'{:%}'.format(0.2)     # 默认输出保留6位小数
# 输出:'20.000000%' 
'{:.2f%}'.format(0.2)     # 默认输出保留6位小数
# 输出:'20.000000%' 
"{:.2%}".format(0.02)  # 百分比计算 常用
# 输出:'2.00%'

2.5 逗号分隔符

# ===== 逗号分隔符 =====%
'{:,}'.format(1232434234234)
# 输出:'1,232,434,234,234'

2.6 变形用法

# ============= 变形用法 ============#
keyWord = 'speech enhancemetn'
url = f'https://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText={keyWord}'

# 输出:'https://ieeexplore.ieee.org/search/searchresult.jsp?newsearch=true&queryText=speech enhancemetn'

2.7 时间格式化输出

# ======== 对时间格式化输出 ========= #
import datetime
d = datetime.datetime(2022, 4, 29, 9, 52, 20)
print('{:%Y-%m-%d %H:%M:%S}'.format(d))
# 输出: '2022-04-29 09:52:20'

2.8 特殊占位符(!)

# ========== 特殊占位符'!' ============= #
# !后面加s r a分别对应str(), repr(), ascii()函数,其目的是在填充前先用对应的函数来处理相应参数

# repr()函数的作用,如下所示
# 示例一
repr('李四')   # 返回字符串
# 输出:"'李四'"
# 示例二
dict = {'runoob': 'runoob.com', 'google': 'google.com'}
repr(dict)
# 输出: "{'runoob': 'runoob.com', 'google': 'google.com'}"
# 示例三
s="物品\t单价\t数量\n包子\t1\t2"
print(s)
print(repr(s))  # repr() 方法可以将读取到的格式字符,比如换行符、制表符,转化为其相应的转义字符。
# print(s)的输出:
# 物品	单价	数量
# 包子	1	2
# print(repr(s))的输出
# '物品\t单价\t数量\n包子\t1\t2'

三、参考链接

  1、python格式化输出
  2、用format格式化输出字符串
  3、python中format用法
  4、Python格式化输出之format用法详解

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐