最简洁的python格式化

f-string

只适用于python3.6及以后的版本

并不止用于输出,也可以用来赋值,返回值是字符串

格式说明符

指定数字的精度、对齐方式和填充字符等

x = 123.456

# 控制小数部分的位数
print(f"x = {x:.2f}")  # x = 123.46

# 左对齐并且宽度为10
print(f"x = {x:<10}")  # x = 123.456   

# 右对齐并且宽度为10,使用0填充
print(f"x = {x:>010.2f}")  # x = 0000123.46

# 居中对齐并且宽度为10,使用*填充
print(f"x = {x:*^10.2f}")  # x = **123.46**

当使用0作为填充字符时,通常将其用于输出具有固定位数的数字,如日期和时间。下面是一个例子,演示如何使用0填充来输出4位数字:

# 使用0填充,宽度为4
n = 123
print(f"{n:0>4}")  # 0123

m = 10
print(f"{m:0>4}")  # 0010

在这个例子中,我们使用了0>选项来指定将数字右对齐,并使用0填充,以便输出的数字宽度为4位。

当使用其他字符作为填充字符时,通常用于美观的输出。下面是一个例子,演示如何使用星号(*)作为填充字符来对齐数字:

# 使用星号填充,宽度为6,左对齐
n = 123
print(f"{n:*<6}")  # 123***

m = 10
print(f"{m:*<6}")  # 10****

在这个例子中,我们使用了*<选项来指定将数字左对齐,并使用星号(*)填充,以便输出的数字宽度为6位。

除了精度、对齐方式和填充字符外,格式说明符还有其他选项,可以进一步控制输出的数字格式。下面是一个例子,演示如何使用多个选项来格式化数字:

# 控制精度和宽度,右对齐,使用0填充
x = 123.456
print(f"x = {x:0>10.2f}")  # x = 0000123.46

# 控制对齐方式和宽度,使用空格填充
y = -12.345
print(f"y = {y:^10.2f}")  # y =  -12.35  

# 控制宽度和使用科学计数法输出
z = 0.0000123456
print(f"z = {z:.2e}")  # z = 1.23e-05

在这个例子中,我们使用了多个选项来控制输出的数字格式。例如,我们使用了0>选项来将数字右对齐,并使用0填充。我们还使用了^选项来将数字居中对齐,并使用空格填充。我们还使用了.2e选项来使用科学计数法输出数字,并将其精度设置为2位。

使用说明

  1. <^>: 分别是左中右对齐(默认左对齐)
  2. f,e等必须加上精度.x,其中x是你指定的精度
  3. 整型d等没有小数部分,不需要指定精度,也不支持指定精度

使用顺序

在使用填充字符时,将填充字符的符号(经测试好像就0是无所谓的)放在对齐方式符的前面或后面,实际上没有区别。例如,0>>0是等效的,都表示将填充字符0用于右对齐填充。

另一方面,在使用精度控制时,将精度符号放在对齐方式符的前面或后面,则会产生不同的效果。例如,:.2f>:>0.2f是不同的,前者会将数字格式化为保留2位小数的浮点数,并使用填充字符进行右对齐,而后者会将数字格式化为保留2位小数的浮点数,并使用填充字符进行左对齐。

因此,在使用f字符串进行格式化时,必须仔细检查精度和对齐方式符的顺序,以确保得到正确的输出。

# 综上,最合适的格式化顺序是
print(f"{变量名:填充字符对齐方式符精度类型}")  # 一定注意,冒号后面不能有空格,不然可能报错
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈子昂-北工大

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

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

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

打赏作者

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

抵扣说明:

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

余额充值