%c 格式化字符及其ASCII码
print('红红火火%c恍恍惚惚'%97)
结果应该为a 因为97的ASCII码为a
%s 格式化字串符
print('红红火火%s恍恍惚惚'%'字串符')
字串符就被打印在红红火火和恍恍惚惚中间了
%d 格式化整数或十进制
print('红红火火%d恍恍惚惚'%(18.5+1.3))
19就被打印在红红火火和恍恍惚惚中间了
%o 格式化无符号八进制;%#o格式化有符号八进制
print('红红火火%o恍恍惚惚'%30)
print('红红火火%#o恍恍惚惚'%30)
第一个结果为36 是八进制的36但没有明确的指出来;第二个结果为0o36明确的指出了为八进制
%x 格式化无符号八进制;%#x格式化有符号八进制
print('红红火火%x恍恍惚惚'%30)
print('红红火火%#x恍恍惚惚'%30)
结果为1e 原理跟八进制一样
%f 格式化定点数 默认精确到小数点后六位
print('红红火火%f恍恍惚惚'%27.658)
27.658000就被打印在红红火火和恍恍惚惚中间了
%e 用科学计数法格式化定点数
与%f原理一样只不过输出结果为科学计数法
%g 根据数字的大小会自动使用%f或%e
m.n可以插入到格式化字符符号%后面 m表示转义后的元素的最小总长度;n表示小数点后面的位数
print('红红火火%10.2f恍恍惚惚'%27.658)
%10.2f就变成了' 27.66'因为可以保留2位小数所以值为27.66,又因为转换的值长度最小为10 ,27.66已经占了5个字符所以左边用空格填充
格式化字符符号%后面如果加上负号 那么格式化后的元素向左靠齐
print('红红火火%-10.2f恍恍惚惚'%27.658)
%-10.2f就变成了'27.66 '空格被挤到右边去了