python字符串格式化(%,format)常用方法看这就够了!

1,% 形式的格式化

a = '%6d' % 123  # %d 格式化整数 6表示字符传的总长度
# 结果(   123)  可见总长度为6格,但123只能占3格,所有前面空了3格

b = '%09.2f' % 3.1415  # %f 格式化浮点数 09表示总长为9格(小数点也算一格)不足用0填充 .2表示保留2位小数(四舍五入)
# 结果 (000003.14) 可见总长为9,保留了小数点后两位

c = '%c' % 97  # %c 格式化成ASCLL码  输出对应数字的ASCLL码值
# 结果 (a)    97在ASCLL码表中对应字母a

d = '%o' % 8  # %o 八进制输出 输出结果转换成八进制对应的数
# 结果 (10)  十进制的8 在八进制中对应的数是10

e = '%x' % 16  # %x 十六进制输出 输出结果转换成十六进制对应的数
# 结果 (10)  十进制的8 在十六进制中对应的数是10

f = '%e' % 1000  # 科学计数法输出 输出结果转换为科学计数法
# 结果  (1.000000e+03)

g = '%r' % '\n123'  # %r 对象原样输出 输入的是什么输出就是什么(非常重要)
# 结果 ('\n123')  本来\n为换行符,但%r使得输出不换行原样输出

2,format 格式化字符串
基本用法

h = '{} {}'.format("hello", "world")  # 不设置指定位置,按默认顺序
# 结果 ('hello world') 默认从左往右

i = '{0} {1}'.format("hello", "world")  # 设置指定位置
# 结果 ('hello world')

j = '{1} {0} {1}'.format("hello", "world")  # 设置指定位置
#结果  ('world hello world')

k = '{a:}{b:}{c:}'.format(a=1, b=2, c=3)   #指定变量的值输出
# 结果 (123)  给每一个变量赋值输出

dinner = '我们今天中午吃{}或者{}'.format('快餐', '火锅', '串串')  #{}可以少,但参数必须够
# 结果 (我们今天中午吃快餐或者火锅)
dinner = '我们今天中午吃{}或者{}{}{}'.format('快餐', '火锅', '串串') #{}多,参数少就会报错
# 结果 (IndexError: tuple index out of range)

基础形式的输出

l = '{a:.2f}'.format(a=123.456)  # 保留两位小数
# 结果 (123.46) 利用四舍五入的方法保留两位小数

m = '{:.2%}'.format(0.33333)  # 以百分号形输出并保留两位小数
# 结果 (33.33%) 利用四舍五入的方法保留两位小数

n = '{:b}'.format(10)  # 二进制输出 输出结果转换成二进制对应的数
# 结果 (1010)  十进制的10 在二进制中对应的数是1010

o = '{:o}'.format(10)  # 八进制输出 输出结果转换成八进制对应的数
# 结果 (12)  十进制的10 在八进制中对应的数是12

p = '{:x}'.format(10)  # 十六进制输出 输出结果转换成十六进制对应的数
# 结果 (a)  十进制的10 在十六进制中对应的数是a

左中右对齐输出,转义大括号输出

q = '{:0<10}'.format(12.34)  # 左对齐输出,输出长度10 不足用0补充
# 结果 (12.3400000)

r = '{:*^10}'.format(12.34)  # 居中对齐输出,输出长度10 不足用*补充
# 结果 (**12.34***)

s = '{:~>10}'.format(12.34)  # 右对齐输出,输出长度10 不足用~补充
print(s)
# 结果 (~~~~~12.34)

t = '{{hello {}}}'.format("python")  # 转义大括号输出
# 结果 ({hello python}) 当我们想输出{}时使用两层{}即可

当作函数使用

u = 'hello {}'.format
print(u('python'))
# 结果 (hello python) 当作函数调用方便快捷省去重复输入的字段

你可能感兴趣的:(Python学习之路)