之前遇到过一次字符串格式化并填充的功能,后续了解到python中字符串的格式化方式中,最常用的一般有三种;
- %格式化
- str.format()格式化
- f-string格式化,是python3.6+版本可以使用;
1、%格式化:
占位符使用%,只支持固定形式的格式化,给的顺序和参数的顺序需要一致;
使用的格式为;
'format' % 'values'
%d 数字
%s 字符串
%f 小数,默认保留小数点后6位,%.2f保留两位小数
values可以是数字,字符串或对象等;
代码示例:
f = 'hello %s ' % 'zhangsan'
#print(f)
f = 'hello %s , my age is %d' %('zhangsan',18)
#print(f)
f = 'hello %(name)s , my age is %(age)d' % {'name':'zhangsan','age':18}
#print(f)
2、format格式化
使用{}作为占位符,搭配format函数使用;不仅支持固定形式的格式化字符,还支持位置的格式化填充。而且还支持了变量方式的填充;
代码示例:
'{},{},{}'.format(1,2,3,'4','5')
f = 'hello {} ,my age is {}'.format('wangwu',18)
#print(f)
f = 'hello {1} ,my age is {0}'.format(19,'wangwu')
#print(f)
f = 'hello {name} ,my age is {age}'.format(age = 20,name='wangwu')
#print(f)
3、f-string格式化:
使用{}作为占位符,同时搭配《f》符号使用,格式化时,只需要在{}中输入变量即可;
代码示例:
name = 'wangwu'
age = '18'
f = f'hello {name},my age is {age} '
#print(f)
字符串填充:
填充是用指定的字符对字符串进行填满指定的长度;就是补差价;
填充建议使用format格式化,代码示例如下:
#字符串填充
s = 'python'
f = "{0:10}".format(s)
print(f)
f = "{0:*>10}".format(s)
print(f)
f = "{0:*^10}".format(s)
print(f)
f = "{0:*<10}".format(s)
print(f)
f = "{0:*>3}".format(s)
print(f)
f = "{0:0>10}".format(1231231)
print(f)
f = "{0:0>10,}".format(1231231)
print(f)
f = "{0:.2f}".format(1231231)
print(f)
输出结果如下:
字符串填充还有一种方式很方便,
string.zfill()函数
代码示例:
print('1'.zfill(3))
输出:001