Python学习--字符串对齐方法详解

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. 注意事项

  1. width 小于或等于原字符串长度时,返回原字符串:
1
print("Python".ljust(4))  # 输出: 'Python'
  1. 填充字符必须是单个字符:
1
# 错误示例# print("Hi".center(10, '**'))  # 报错
  1. 这些方法不会修改原字符串,而是返回新字符串(字符串是不可变对象)
  2. 对于更复杂的格式化需求,可以使用 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