Python学习–字符串对齐方法详解
Python 提供了三种方便的字符串对齐方法:ljust()、rjust() 和 center(),用于控制字符串在指定宽度内的对齐方式。
1. 方法概述
| 方法 |
描述 |
语法格式 |
ljust() |
左对齐,右侧填充指定字符 |
str.ljust(width[, fillchar]) |
rjust() |
右对齐,左侧填充指定字符 |
str.rjust(width[, fillchar]) |
center() |
居中对齐,两侧填充指定字符 |
str.center(width[, fillchar]) |
2. 基本用法
2.1 ljust() - 左对齐
1 2 3 4 5 6
| text = "Python" print(text.ljust(10)) # 默认用空格填充 # 输出: 'Python '
print(text.ljust(10, '-')) # 指定填充字符 # 输出: 'Python----'
|
2.2 rjust() - 右对齐
1 2 3 4 5 6
| text = "Python" print(text.rjust(10)) # 默认用空格填充 # 输出: ' Python'
print(text.rjust(10, '*')) # 指定填充字符 # 输出: '****Python'
|
2.3 center() - 居中对齐
1 2 3 4 5 6
| text = "Python" print(text.center(10)) # 默认用空格填充 # 输出: ' Python '
print(text.center(11, '=')) # 指定填充字符 # 输出: '===Python=='
|
3. 参数说明
width:必需参数,指定结果字符串的总宽度
fillchar:可选参数,指定填充字符(默认为空格)
- 必须是单个字符,否则会报错
TypeError: The fill character must be exactly one character long
4. 实际应用示例
4.1 制作表格对齐
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| data = [ ("Python", "3.10"), ("Java", "17"), ("C++", "20"), ("JavaScript", "ES2022") ]
for lang, version in data: print(f"{lang.ljust(10)} : {version.rjust(8)}")
# 输出: # Python : 3.10 # Java : 17 # C++ : 20 # JavaScript : ES2022
|
4.2 生成带边框的标题
1 2 3 4 5 6 7 8 9 10 11 12
| title = "系统菜单" width = 30 border = '=' * width
print(border) print(title.center(width)) print(border)
# 输出: # ============================== # 系统菜单 # ==============================
|
4.3 格式化数字显示
1 2 3 4
| numbers = [123, 45, 6789, 3] for num in numbers: print(f"ID-{str(num).rjust(5, '0')}") # 输出:# ID-00123# ID-00045# ID-06789# ID-00003
|
5. 注意事项
- 当
width 小于或等于原字符串长度时,返回原字符串:
1
| print("Python".ljust(4)) # 输出: 'Python'
|
- 填充字符必须是单个字符:
1
| # 错误示例# print("Hi".center(10, '**')) # 报错
|
- 这些方法不会修改原字符串,而是返回新字符串(字符串是不可变对象)
- 对于更复杂的格式化需求,可以使用 f-string 或
format() 方法:
1 2 3 4 5
| # 使用f-string实现类似效果 text = "Python"print(f"{text:<10}") # 左对齐,等价于ljust(10)print(f"{text:>10}") # 右对齐,等价于rjust(10)print(f"{text:^10}") # 居中对齐,等价于center(10)
|
https://mp.weixin.qq.com/s/R6nJBcDPZ1MfP8h9ZNwPsQ?scene=1