占位符,顾名思义就是插在输出里站位的符号。我们可以把它理解成我们预定饭店。当我们告诉饭店的时候,饭店的系统里会有我们的预定位置。虽然我们现在没有去但是后来的顾客就排在我们后面。
s : 获取传入对象的__str__方法的返回值,并将其格式化到指定位置 r : 获取传入对象的__repr__方法的返回值,并将其格式化到指定位置 c : 整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置 o : 将整数转换成 八 进制表示,并将其格式化到指定位置 x : 将整数转换成十六进制表示,并将其格式化到指定位置 d : 将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置 e : 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e) E : 将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E) f : 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
二、常用占位符应用举例
1、格式化字符串
print ("This website name is %s" % ("test.com"))
>This website name is test.com
2、格式化整数
print ("The rank score is %d" % (100.0))
>The rank score is 100
3、格式化浮点数
print ("tom's height is %f m"%(2.29)) tom's height is 2.290000 m
4、格式化浮点数(指定保留小数点位数)
print ("tom's height is %.1f m"%(2.29)) tom's height is 2.3 m
5、指定占位符宽度
print ("Name : %10s, Age : %9d, Height: %8.2f"%("tom", 37, 2.29)) Name : tom, Age : 37, Height : 2.29
6、指定占位符宽度 - 左对齐
print ("Name : %-10s, Age : %-9d, Height : %-8.2f"%("tom", 37, 2.29)) Name : tom , Age : 37 , Height : 2.29 备注:格式化可选标志符, 可选参数 + 右对齐;正数前加正好,负数前加负号; - 左对齐;正数前无符号,负数前加负号; 空格 右对齐;正数前加空格,负数前加负号; 0 右对齐;正数前无符号,负数前加负号;用0填充空白处 如: -10s, 表示10个字符串位置, 左对齐,后面用空格填充
7、指定占位符 - 用0当占位符
print ("Name : %-10s, Age : %09d, Height : %08.2f"%("tom", 37, 2.29)) Name : tom , Age : 000000037, Height : 00002.29
的妙用:进度条显示
import time for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个'*' per_str = ' [%s%% : %s] ' % (i, '#' * char_num) if i == 100 else ' [%s%% : %-50s]'%(i,'#'*char_num,) print(per_str,end='', flush=True)
[100% : ##################################################]