Python:利用format方法解决print文本输出无法对齐的问题

本文详细介绍了Python中如何使用format方法进行文本对齐和格式化,包括居左、居右、居中对齐,控制精度和宽度,以及解决中文文本对齐问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来个实例看一下

··常见文本输出代码:
在这里插入图片描述

··通过控制台输入信息,显示文本信息后发现输入的文本长度不一致导致无法对齐:
在这里插入图片描述

解决方法:

··文本输出代码:
在这里插入图片描述

··通过控制台输入信息后,显示内容:
在这里插入图片描述

解析:

这里使用.format去解决文本对齐的问题
format方法常用与字符串的格式化输出
简单示例:

print("{0}+{1} = {2}".format(1, 2, 3)
print("{1}+{0} = {2}".format(1, 2, 3)
out:
1+2=3
2+1=3

大括号里面的数字分别对应format后面元组的下标

··用format处理文本位置

print("{0:^5}\t\t{1:^15}\t\t{2:^3}\t\t{3:^10}".format("姓名", "QQ", "性别", "工作"))

’ < '对应的是居左

’ > '对应的是居右

’ ^ '对应的是居中

分析图中实例:
在这里插入图片描述

··控制精度居左:

print('{0:<7.3}..'.format(1/3))  
out:
0.333  ..

注:.3是控制精度在小数点后3个小数,控制在七格内居左。

··控制宽度

print('{0:7}{1:7}..'.format('use','python'))
out:
use    python ..

注:控制每个元素占七格不够的空格补上

··当输出中文使用空格补全时,系统会自动调用英文空格,可能会造成文本不对齐

解决方法:chr(12288)

注:chr(12288)为UTF-8中的中文空格

以上面的代码示例,在format后面元组的最后加上chr(12288)即可

print("{0:^5}\t\t{1:^15}\t\t{2:^3}\t\t{3:^10}".format("姓名", "QQ", "性别", "工作", chr(12288)))
### Python `format` 方法实现字符串右对齐 在 Python 中,可以使用内置的 `str.format()` 或者 f-string 来实现字符串的右对齐功能。通过指定宽度并结合 `<`, `>`, 或 `^` 符号来控制对齐方式。 对于右对齐操作,可以在 `{}` 占位符内部定义冒号后的宽度,并加上大于号 (`>`)[^1]。这表示将字符串放置在其字段宽度内的右侧位置。 以下是具体用法及示例: #### 使用 `str.format()` 实现右对齐 可以通过设置占位符中的格式说明符完成此操作。例如,在下面的例子中,指定了总宽度为 10 并应用了右对齐: ```python formatted_string = "{:>10}".format("hello") print(repr(formatted_string)) # 输出: &#39; hello&#39; ``` 上述代码片段展示了如何利用 `str.format()` 将单词 `"hello"` 放置在一个长度为 10 的空间内,并使其靠右显示[^2]。 #### 使用 f-string (Python 3.6+) 实现右对齐 f-string 提供了一种更简洁的方式来执行相同的格式化任务。语法几乎相同于 `str.format()`,只是写法更为直观: ```python word = "world" formatted_fstring = f"{word:>10}" print(repr(formatted_fstring)) # 输出: &#39; world&#39; ``` 这里同样设置了固定的字符宽度为 10,并让文本向右边靠近[^1]。 #### 填充字符自定义 如果希望除了默认空白外还能够选择其他填充字符,则可在 `>` 前面加入所期望使用的单个字符作为填充物。比如以星号(`*`)为例: ```python custom_filled = "{:*>15}".format("example") print(custom_filled) # 输出: ***********example ``` 以上实例表明当采用非空格填充值时,需紧接在方向标志之前声明该特殊符号。 ### 总结 无论是传统的 `str.format()` 还是现代化的 f-string 都支持灵活调整输出样式的能力,其中就包含了非常实用的文字排列选项——即左对齐、居中以及本节重点讨论过的 **右对齐** 功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此时一位小白路过

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值