Python字符串对齐原理、自定义填充字符及F-string实现咨询
字符串格式化问题解析
1. str.format() 代码工作原理
你给出的这段代码:
print('{0:<{1}}'.format('vamsi',10))
是Python的str.format()格式化语法,各部分作用如下:
{0}:第一个占位符,对应format()方法里的第一个参数'vamsi';:<{1}:格式化规则,其中<表示左对齐,{1}对应format()里的第二个参数10,即最终字符串的总宽度;- 执行后,
'vamsi'会被左对齐,剩余位置用空格填充,最终输出为vamsi(后面带5个空格)。
2. 用自定义字符替代空格填充
要使用*或其他字符替代空格,只需把填充字符放在对齐符号(</>/^)的前面即可,示例如下:
- 左对齐+
*填充:print('{0:*<{1}}'.format('vamsi',10)) # 输出:vamsi***** - 右对齐+
#填充:print('{0:#>{1}}'.format('vamsi',10)) # 输出:#####vamsi - 居中对齐+
=填充:print('{0:=^10}'.format('vamsi')) # 输出:==vamsi===
3. F-string 代码的问题与正确写法
你写的F-string代码存在语法错误,导致无法实现预期功能:
name = 'vamsi' print(f'{name}:<{10}',end='|')
这段代码里,:<{10}没有被解析成格式化规则,而是被当成了普通字符串的一部分,最终输出是vamsi:<10|,自然无法实现对齐填充。
正确的F-string写法
F-string的格式化语法是{变量名:格式规则},针对你的需求:
- 固定宽度10、左对齐、空格填充:
name = 'vamsi' print(f'{name:<10}|') # 输出:vamsi | - 动态传递宽度(比如用变量存储宽度):
name = 'vamsi' width = 10 print(f'{name:<{width}}|') # 输出:vamsi | - 自定义填充字符(比如
*):name = 'vamsi' print(f'{name:*<10}|') # 输出:vamsi*****|
内容的提问来源于stack exchange,提问作者Devarapalli Vamsi
相关产品推荐
相关产品推荐

