Python F-Strings:格式化字符串的艺术|常用技巧总结

Python 3.6 引入了格式化字符串字面量,通常被称为 f-strings。它们使字符串内嵌变量和表达式的插入变得更加简单和直观。在这里我们展示f-string常用的六种格式化技巧以及应用示例。

1. 精确到小数点后几位

使用 :.nf 格式化浮点数,其中 n 是小数点后的位数。

pi = 3.14159

# 保留两位小数
print(f"{pi:.2f}")  # 结果: 3.14

# 保留三位小数
print(f"{pi:.3f}")  # 结果: 3.142

# 保留四位小数
print(f"{pi:.4f}")  # 结果: 3.1416

# 不保留小数位数
print(f"{pi:.0f}")  # 结果: 3

2. 百分比格式

将浮点数格式化为百分比表示,使用 :.n%

percent = 0.1234

# 无小数点
print(f"{percent:.0%}")  # 结果: 12%

# 保留一位小数
print(f"{percent:.1%}")  # 结果: 12.3%

# 保留两位小数
print(f"{percent:.2%}")  # 结果: 12.34%

# 保留三位小数
print(f"{percent:.3%}")  # 结果: 12.340%

3. 定宽格式化

为了输出固定宽度的字符串,使用 :n:<n:^n 分别进行右对齐、左对齐、居中。还可以用特定字符进行填充,如 :*^n

text = "Hello"

# 左对齐,总宽度10
print(f"{text:<10}")  # 结果: 'Hello     '

# 右对齐,总宽度10
print(f"{text:>10}")  # 结果: '     Hello'

# 居中对齐,总宽度10
print(f"{text:^10}")  # 结果: '  Hello   '

number = 123

# 数字右对齐,总宽度10
print(f"{number:>10}")  # 结果: '       123'

# 数字左对齐,总宽度10
print(f"{number:<10}")  # 结果: '123       '

# 数字居中对齐,总宽度10
print(f"{number:^10}")  # 结果: '   123    '

text = "Python"

# 使用星号(*)填充,左对齐
print(f"{text:*<10}")  # 结果: 'Python****'

# 使用星号(*)填充,右对齐
print(f"{text:*>10}")  # 结果: '****Python'

# 使用星号(*)填充,居中对齐
print(f"{text:*^10}")  # 结果: '**Python**'

text = "unique"

# 使用井号 (#) 填充,居中对齐
print(f"{text:#^10}")  # 结果: '##unique##'


4. 带千位分隔符的数字

使用 :, 在数字中添加千位分隔符。

# 中等大小的数字
medium_number = 12345
print(f"{medium_number:,}")  # 结果: 12,345

# 较大的数字
large_number = 987654321
print(f"{large_number:,}")  # 结果: 987,654,321

# 很小的数字(不足千位)
small_number = 123
print(f"{small_number:,}")  # 结果: 123(没有分隔符)

# 浮点数的千位分隔符
float_number = 123456.789
print(f"{float_number:,.2f}")  # 结果: 123,456.79
# 在这个例子中,:, 添加了千位分隔符,.2f 指定了保留两位小数。
# 负数
negative_number = -1234567
print(f"{negative_number:,}")  # 结果: -1,234,567


5. 指数记法

将数字格式化为指数(科学计数法)表示,使用 :e

# 小数点以下没有显著数字
small_number = 0.00000123
print(f"{small_number:e}")  # 结果: 1.230000e-06

# 负数
negative_number = -123456.789
print(f"{negative_number:.2e}")  # 结果: -1.23e+05

# 非常大的数
large_number = 123456789012345
print(f"{large_number:e}")  # 结果: 1.234568e+14

# 非常小的数
tiny_number = 0.00000000012345
print(f"{tiny_number:e}")  # 结果: 1.234500e-10

6. 数字的不同进制表示

将数字格式化为十六进制、八进制、二进制表示,分别使用 :x:o:b

number = 255
print(f"{number:x}")  # 十六进制,结果: ff
print(f"{number:o}")  # 八进制,结果: 377
print(f"{number:b}")  # 二进制,结果: 11111111

实在是太有用辣

以上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值