Python字符串格式化:占位符、精度与对齐方法详解
本文详细介绍Python中三种字符串格式化方式:%占位符、format()方法与f-string。涵盖宽度与精度控制,以及center、ljust、rjust和zfill等字符串对齐函数的具体用法与参数说明,帮助开发者掌握高效的字符串处理技巧。
在Python开发中,字符串格式化是常见需求。目前主要存在三种常用的格式化字符串方式,分别适用于不同的场景。
第一种方式是利用百分号(%)作为占位符。
name = '张三'
age = 10
print('姓名%s,今年%d' % (name, age))
# 运行结果:姓名张三,今年10在使用%占位符时,s和d分别代表字符串和整数的数据类型。需要注意的是,占位符的顺序必须与%符号后括号内数据变量的顺序保持一致,否则会导致错误。

第二种方式是使用内置的format()方法。
name = '张三'
age = 10
print('姓名{0},今年{1}岁'.format(name, age))
# 运行结果:姓名张三,今年10岁在format()方法中,花括号{}作为占位符,其中的数字索引表示对应format参数中数据变量的位置。例如,0代表第一个变量,1代表第二个,依此类推。

第三种方式是使用f-string(格式化字符串字面量)。
name = '张三'
age = 10
print(f'姓名{name},今年{age}岁')
# 运行结果:姓名张三,今年10岁使用f-string时,必须在字符串前添加字母f。字符串内部的花括号{数据变量名}会被自动替换为变量的值,这种方式语法简洁且可读性高。
除了基本的格式化,Python还支持对字符串的宽度和精度进行精细控制。
首先介绍使用%符号表示宽度和精度的写法。
# 宽度为10 运行结果: 80
print('%10d' % 80)
# 保留三位小数运行结果:3.142
print('%.3f' % 3.14159)
# 保留三位小数,宽度为10 运行结果: 3.142
print('%10.3f' % 3.1415926)在%格式中,数字10表示输出宽度为10个字符;.3f表示保留三位小数;d表示转换前的元素数据类型。这种写法常用于数值类型的格式化输出。
需要特别注意:如果%后包含多个数据元素,上述宽度与精度设置仅对第一个数据元素生效,后续元素需单独指定格式。
接下来介绍format()方法中关于宽度和精度的表示法。
# .3表示一共三个数 运行结果:3.14
print('{0:.3}'.format(3.14159))
# .3f表示三位小数 运行结果:3.142
print('{0:.3f}'.format(3.14159))
# 宽度为10 保留三位小数 运行结果: 3.142
print('{0:10.3f}'.format(3.14159))
# 0是占位符的顺序, 可以省略 默认为0具体示例如下所示,展示了不同格式控制符的效果。
# 运行结果: 256.354
print('{1:10.3f}'.format(3.14159, 256.354))
# 1表示占位符 即format()中参数的顺序,从0开始 1就是第二个数据元素 -> 256.354
# 10表示格式化后数据元素的宽度
# .3f表示精度保留三位小数除了格式化内容,字符串的对齐方式也是重要操作。Python提供了多种内置方法来实现对齐。
center()方法用于居中对齐。它接收两个参数:第一个参数指定总宽度,第二个参数(可选)指定填充字符,默认为空格。如果指定的宽度小于字符串实际长度,则直接返回原字符串。
s = 'hello,python'
print(s.center(20, '*'))
# 运行结果:****hello,python****ljust()方法用于左对齐。其参数设置与center()相同:第一个参数指定宽度,第二个参数(可选)指定填充符,默认为空格。若指定宽度小于实际宽度,返回原字符串。
s = 'hello,python'
print(s.ljust(20))
# 运行结果:hello,python
print(s.ljust(20, '*'))
# 运行结果:hello,python********
print(s.ljust(10))
# 运行结果:hello,pythonrjust()方法用于右对齐。同样接收两个参数,第一个指定宽度,第二个(可选)指定填充符,默认为空格。当指定宽度小于字符串长度时,返回原字符串。
s = 'hello,python'
print(s.rjust(20))
# 运行结果: hello, python
print(s.rjust(20, '*'))
# 运行结果:********hello,python
print(s.rjust(10))
# 运行结果:hello,pythonzfill()方法用于右对齐,并在左侧用0填充。该方法仅接收一个参数,即指定字符串的总宽度。如果指定的宽度小于或等于字符串当前长度,则直接返回原字符串。
s = 'hello,python'
print(s.zfill(20))
# 运行结果:00000000hello,python
print(s.zfill(10))
# 运行结果:hello,python以上就是Python中关于字符串格式化、宽度精度控制及对齐方法的详细介绍。更多相关技术内容可参考本站其他文章或持续关注后续更新,感谢支持。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









