Python format 的用法

0、今日笔记

在Python27中以及之后版本,新增了一种格式化字符串的函数,通过使用大括号 {} 和冒号 : 来实现以前的百分号 % 的写法。

1、默认按顺序填充,每个 {} 填充一个变量

hello = 'hello'
world = 'world'
hello_world = '{} {}'.format(hello, world)  # 默认按顺序填充,每个 {} 填充一个变量
print(hello_world)  # hello world

 2、指定填充顺序, 0 表示第一个变量, 1 表示第二个变量, 以此类推

hello = 'hello'
world = 'world'
# 指定填充顺序, 0 表示第一个变量, 1 表示第二个变量, 以此类推
hello_world = '{0} {1}'.format(hello, world)
print(hello_world)

# 支持多个顺序写法
hello_world_hello = '{0} {1} {0}'.format(hello, world)
print(hello_world_hello)

3、指定 key 的填充方式

hello = 'hello'
world = 'world'

# 指定 key 的填充方式
hello_world = '{hello} {world}'.format(hello=hello, world=world)
print(hello_world)

# 指定 key 的填充方式, key 是随意的
hello_world = '{hello_string} {world_string}'.format(hello_string=hello, world_string=world)
print(hello_world)

4、保留N位小数

number = 10.123
# 保留两位小数
number_string = '{:.2f}'.format(number)
print(number_string)
# 保留三位小数
number_string = '{:.3f}'.format(number)
print(number_string)
# 保留四位小数
number_string = '{:.4f}'.format(number)
print(number_string)

number = -10.123
# 保留两位小数
number_string = '{:.2f}'.format(number)
print(number_string)
# 保留三位小数
number_string = '{:.3f}'.format(number)
print(number_string)
# 保留四位小数
number_string = '{:.4f}'.format(number)
print(number_string)

 5、居中对齐,凑足N位,不足用指定字符填充

hello = 'hello'
# 居中对齐,凑足8位,不足用空格填充
hello = '{:^8}'.format(hello)
print(hello)

hello = 'hello'
# 居中对齐,凑足8位,不足用字母x填充
hello = '{:x^8}'.format(hello)
print(hello)

hello = 'hello'
# 居中对齐,凑足9位,不足用数字0填充
hello = '{:0^9}'.format(hello)
print(hello)

 6、左对齐,凑足N位,不足用指定字符填充

hello = 'hello'
# 左对齐,凑足8位,不足用空格填充
hello = '{:<8}'.format(hello)
print(hello)

hello = 'hello'
# 左对齐,凑足8位,不足用字母x填充
hello = '{:x<8}'.format(hello)
print(hello)

hello = 'hello'
# 左对齐,凑足8位,不足用数字0填充
hello = '{:0<8}'.format(hello)
print(hello)

 7、右对齐,凑足N位,不足用指定字符填充

hello = 'hello'
# 右对齐,凑足8位,不足用空格填充
hello = '{:>8}'.format(hello)
print(hello)

hello = 'hello'
# 右对齐,凑足8位,不足用字母x填充
hello = '{:x>8}'.format(hello)
print(hello)

hello = 'hello'
# 右对齐,凑足8位,不足用数字0填充
hello = '{:0>8}'.format(hello)
print(hello)

 8、百分比显示,保留N位小数

number = 0.291
# 百分比显示, 默认保存6位小数
number = '{:%}'.format(number)
print(number)

number = 0.291
# 百分比显示, 保存2位小数
number = '{:.2%}'.format(number)
print(number)

number = 0.291
# 百分比显示, 保存3位小数
number = '{:.3%}'.format(number)
print(number)

 9、指数显示,保留N位小数

number = 100000
# 指数形式显示, 默认保存6位小数
number = '{:e}'.format(number)
print(number)

number = 100000
# 指数形式显示, 保存2位小数
number = '{:.2e}'.format(number)
print(number)

number = 100000
# 指数形式显示, 保存3位小数
number = '{:.3e}'.format(number)
print(number)

 10、进制显示

number = 10
# 二进制显示
number_string = '{:b}'.format(number)
print(number_string)
# 十进制显示
number_string = '{:d}'.format(number)
print(number_string)
# 八进制显示
number_string = '{:o}'.format(number)
print(number_string)
# 十六进制小字母显示
number_string = '{:x}'.format(number)
print(number_string)
# 十六进制大字母显示
number_string = '{:X}'.format(number)
print(number_string)

 11、大括号转义大括号,原样显示大括号

hello = 'hello'
# 用大括号可以转义大括号
hello = '{},{{我只是个单纯的大括号}}'.format(hello)
print(hello)

 12、字符串前面加入字母 f 也能进行格式化字符串

hello = 'hello'
world = 'world'
# 字符串前面加入字母 f 也能进行格式化字符串
hello_world = f'{hello} {world}'
print(hello_world)

 

posted @ 2021-06-02 11:07  南风丶轻语  阅读(1706)  评论(0编辑  收藏  举报