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)