如何使用Python print()将语句格式化为对齐的字符串与数字输出
实现方法
核心思路
- 拆分每条内容的文本部分与数字部分
- 统计所有文本部分的最大长度,作为左对齐的统一宽度
- 用Python格式化字符串的对齐语法实现排版
代码示例
情况1:原始数据为结构化的(文本, 数字)元组
# 你的原始数据 data = [ ("Test1", 234), ("This is okay", 1234), ("Bet", 23) ] # 计算文本部分的最大长度 max_text_width = max(len(text) for text, num in data) # 遍历输出 for text, num in data: # 文本左对齐占max_text_width宽度,数字右对齐占4宽度 print(f"{text:<{max_text_width}} {num:>4}")
情况2:原始数据是已经生成的纯文本行
如果是从已有输出中读取的字符串,需要先拆分文本和数字:
raw_lines = [ "Test1 234", "This is okay 1234", "Bet 23" ] data = [] for line in raw_lines: # 从右侧拆分1次,避免文本内部的空格影响拆分结果 text, num_str = line.rsplit(maxsplit=1) data.append((text, int(num_str))) # 后续输出逻辑和上面一致 max_text_width = max(len(text) for text, num in data) for text, num in data: print(f"{text:<{max_text_width}} {num:>4}")
格式化语法说明
f"{变量:<宽度}":指定变量左对齐,占固定宽度,不足补空格f"{变量:>宽度}":指定变量右对齐,占固定宽度,不足补空格- 宽度可以用
{变量}动态传入,适配不同长度的内容
内容的提问来源于stack exchange,提问作者varun kumar
相关产品推荐
相关产品推荐

