4)使用“任意符号”完成填充功能
这个知识点必须在讲完填充和对齐后,才能为大家演示。其实没有为什么,就是语法是这样的,我们就必须这样做。
① %格式化
旧版语法的%格式化,使用"特定符号"填充,很麻烦,不直接,你也不用去管。这里主要看新版语法中format()格式化和f-string格式化,进行"特定符号"填充。
② format()格式化
# 左填充 a = '{:_>10}'.format('黄同学') print(a,len(a)) # 右填充 b = '{:_<10}'.format('黄同学') print(b,len(b)) # 居中填充 c = '{:_^10}'.format('黄同学') print(c,len(c))
结果如下:
③ f-string格式化
name = "黄同学" a = f"{name:_>10}" print(a,len(a)) b = f"{name:_<10}" print(b,len(b)) c = f"{name:_^10}" print(c,len(c))
结果如下:
5)与“数字”相关的格式化填充技巧
① 你有必要了解的知识
经过前面的学习和叙述,我们已经知道这3种方法,都是完成字符串格式化的操作的,但是为何它们又可以填充数字呢?
原因:Python自动帮我们做了一次隐式转换,但是这种隐式转换是需要付出代价的,它会消耗额外的性能,牺牲速度。因此我们有特定的语法去解决这个问题。
② %格式化
%s表示填充字符串;%d表示填充整数;%f表示填充小数;
完成整数的填充:
# 仅仅使用%s,既可以完成字符串的填充,又可以完成数字的填充 a = '%s' % (3000) print(a) a1 = '%s' % ("3000") print(a1) # 当使用了%d后,只可以填充数字,不能填充字符串,否则会报错 # 使用%d填充整数,是推荐写法 b = '%d' % (3000) print(b) b1 = '%d' % ("3000") print(b1)
结果如下:
完成浮点数的填充:
a = '%.2f' % (3.1415926) print(a) b = '%.3f' % (3.1415926) print(b)
结果如下:
③ format()格式化
完成整数的填充:
# 不指定d符号,既可以完成字符串的填充,又可以完成数字的填充 a = '{:$>5}'.format(3000) print(a) a1 = '{:$>5}'.format("3000") print(a1) # 当指定了d符号后,只可以填充数字,不能填充字符串,否则会报错 # 使用符号d填充整数,是推荐写法 b = '{:¥>5d}'.format(3000) print(b) b1 = '{:¥>5d}'.format("3000") print(b1)
结果如下:
完成浮点数的填充:
a = '{:.2f}'.format(3.14159268) print(a) b = '{:.3f}'.format(3.14159268) print(b)
结果如下:
④ f-string格式化
完成整数的填充:
num1 = 3000 num2 = "3000" # 不指定d符号,既可以完成字符串的填充,又可以完成数字的填充 a = f'{num1}' print(a) a1 = f'{num2}' print(a1) # 当指定了d符号后,只可以填充数字,不能填充字符串,否则会报错 # 使用符号d填充整数,是推荐写法 b = f'{num1:d}' print(b) b1 = f'{num2:d}' print(b1)
结果如下:
完成浮点数的填充:
num = 3.14159268 a = f'{num:.2f}' print(a) b = f'{num:.3f}' print(b)
结果如下: