Python format()内置函数 --数字格式化

format() 是一个格式化函数,不仅可以格式化字符串,数字也可以格式化

指定正负号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 只显示减号 - ,和 '{:-f}  {:-f}' 一致
print('{:f} {:f}'.format(3.1415926, -3.1415926))
# 表示标志应仅用于负数(这是默认行为)
print('{:-f} {:-f}'.format(3.1415926, -3.1415926))
# 表示标志应该用于正数和负数
print('{:+f} {:+f}'.format(3.1415926, -3.1415926))

# 保留小数点后两位
print('{:.2f} {:.2f}'.format(3.1415926, -3.1415926))
# 带符号保留小数点后两位
print('{:+.2f} {:+.2f}'.format(3.1415926, -3.1415926))


'''输出
3.141593 -3.141593
3.141593 -3.141593
+3.141593 -3.141593
3.14 -3.14
+3.14 -3.14
'''

千位分隔符

1
2
3
4
# 使用英文逗号作为分隔符
print('{:,}'.format(31415926))

# 31,415,926

百分数

1
2
3
4
5
6
7
8
9
# 保留小数点后两位
print('{:.2%}'.format(19/22))
# 带符号保留小数点后两位
print('{:+.2%}'.format(19/22))

'''输出
86.36%
+86.36%
'''

转换为不同进位制的值

将一个十进制整数转换为其它进位制的值

十进制

1
2
3
4
5
6
7
8
9
print('{0:d}'.format(255))
print(f'{255:d}')
print(format(255, 'd'))

'''输出
255
255
255
'''

二进制

1
2
3
4
5
6
7
8
9
10
# 转换为二进制字符串,并可选择有无 0b 前缀
print('{0:#b} {0:b}'.format(255))
print(f'{255:#b}', f'{255:b}')
print(format(255, '#b'), format(255, 'b'))

'''输出
0b11111111 11111111
0b11111111 11111111
0b11111111 11111111
'''

内置函数 bin() 也可以将整数转换为二进制

八进制

1
2
3
4
5
6
7
8
9
10
11
12
# 转换为八进制字符串,并可选择有无 0o 前缀
print('%#o' % 255, '%o' % 255)
print('{0:#o} {0:o}'.format(255))
print(f'{255:#o}', f'{255:o}')
print(format(255, '#o'), format(255, 'o'))

'''输出
0o377 377
0o377 377
0o377 377
0o377 377
'''

内置函数 oct() 也可以将整数转换为八进制

十六进制

1
2
3
4
5
6
7
8
9
10
11
12
# 转换为小写或大写的十六进制字符串,并可选择有无 0x 0X 前缀
print('%#x' % 255, '%x' % 255, '%#X' % 255, '%X' % 255)
print('{0:#x} {0:x} {0:#X} {0:X}'.format(255))
print(f'{255:#x}', f'{255:x}', f'{255:#X}', f'{255:X}')
print(format(255, '#x'), format(255, 'x'), format(255, '#X'), format(255, 'X'))

'''输出
0xff ff 0XFF FF
0xff ff 0XFF FF
0xff ff 0XFF FF
0xff ff 0XFF FF
'''

内置函数 hex() 也可以将整数转换为十六进制