- %格式化:占位符%,搭配%符号一起使用;
常见的占位符:
类型 | 说明 |
---|---|
s | 字符串(使用str()方法转换任何Python对象) |
d | 有符号十进制整数 |
f | 浮点十进制格式, 自动保留六位小数,第6位会根据第7位四舍五入 |
r | 字符串(使用 repr() 转换任何 Python 对象) |
a | 字符串(使用 ascii() 转换任何 Python 对象) |
o | 有符号八进制数 |
x | 有符号十六进制数(小写) |
X | 有符号十六进制数(大写) |
基本用法:
print('%d-%s-%f' % (100000000, 'test', 1.234445145645))
###输出:
100000000-test-1.234445
左右对齐:
print('---右对齐---')
print('%10f' % (0.12346712))
print(len('%10f' % (0.12346712)))
print('---指定左对齐---')
print('%-10f' % (0.12346712))
print(len('%-10f' % (0.12346712)))
print('---默认左对齐---') ##默认,不指定位数
print('%f' % (0.12346712))
print(len('%f' % (0.12346712)))
###输出:
---右对齐---
0.123467
10
---指定左对齐---
0.123467
10
---默认左对齐---
0.123467
8
- format()格式化:占位符{},搭配format()函数一起使用;
基本用法:
print('{}--{}--{}'.format('test', 1203, 1.23456))
###运行结果:
'test'--1203--1.23456
通过索引值指定参数位置:
print('{2}={1}={0}={3}'.format('v1', 'v2', 'v3', 'v4'))
###运行结果:
v3=v2=v1=v4
通过键值指定参数位置:
print('{key1}^{key2}^{key3}^{key4}'.format(key1='v1', key2='v2', key3='v3', key4=123))
###运行结果:
v1^v2^v3^123
对齐以及补齐:
# 左右对齐
print('---默认左对齐---')
print('{}'.format('name'))
print(len('{}'.format('name')))
print('----指定位数左对齐----') ##默认
print('{:<10}'.format('name'))
print(len('{:<10}'.format('name')))
print('----右对齐----')
print('{:>10}'.format('name'))
print(len('{:>10}'.format('name')))
print('----居中对齐----')
print('{:^10}'.format('name'))
print(len('{:^10}'.format('name')))
# 使用其他字符来补齐
print('----使用其他字符补齐----')
print('{:_<10}'.format('右补齐'))
print('{:_>10}'.format('左补齐'))
print('{:_^10}'.format('居中补齐'))
###输出:
---默认左对齐---
name
4
----指定位数左对齐----
name
10
----右对齐----
name
10
----居中对齐----
name
10
----其他字符补齐----
右补齐_______
_______左补齐
___居中补齐___
- f-string格式化:占位符{},搭配f符号一起使用
基本用法:
name = 'lee'
print(f'{name}')
对齐以及补齐:
# 左右对齐
val = 'test123'
print('---默认左对齐---')
print(f'{val}')
print(len(f'{val}'))
print('----左对齐----')
print(f'{val:<10}')
print(len(f'{val:<10}'))
print('----右对齐----')
print(f'{val:>10}')
print(len(f'{val:>10}'))
print('----居中对齐----')
print(f'{val:^10}')
print(len(f'{val:^10}'))
#通过其他字符补齐
print('----其他字符补齐----')
print(f'{val:$<10}')
print(f'{val:¥>10}')
print(f'{val:@^10}')
###输出:
---默认左对齐---
test123
7
----左对齐----
test123
10
----右对齐----
test123
10
----居中对齐----
test123
10
----其他字符补齐----
test123$$$
¥¥¥test123
@test123@@
在使用f-string和format()如果相对原参数保留格式输出可以添加!r来实现,类似于内置函数repr()
样例:
name = 12.35412
a = f'{name!r}'
b = repr(name)
print(type(a))
print(type(b))
###输出:
---保留参数原始格式---
12.35412
<class 'str'>
<class 'str'>
a = '{!r}'.format('test')
print(type(a))
b = '{!r}'.format(1203)
print(type(b))
c = '{!r}'.format(1.23456)
print(type(c))
###输出:
<class 'str'>
<class 'str'>
<class 'str'>