Python格式化输出字符串方法小结【%与format】
python格式化字符串有%和{}两种字符串格式控制符.
字符串输入数据格式类型(%格式操作符号)
字符串格式控制%[(name)][flag][width][.][precision]type
name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名
flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b
width:宽度(最短长度,包含小数点,小于width时会填充)
precision:小数点后的位数,与C相同
type:输入格式类型,请看上面
还有一种format_spec格式{[name][:][[fill]align][sign][#][0][width][,][.precision][type]}
用{}包裹name命名传递给format以命名=值写法,非字典映射,其他和上面相同
fill=
align= "<"|">"|"="|"^"#align是对齐方式,<是左对齐,>是右对齐,^是居中对齐。
sign = "+"|"-"|""#sign是符号,+表示正号,-表示负号
width= integer#width是数字宽度,表示总共输出多少位数字
precision= integer#precision是小数保留位数
type= "b"|"c"|"d"|"e"|"E"|"f"|"F"|"g"|"G"|"n"|"o"|"s"|"x"|"X"|"%"#type是输出数字值是的表示方式,比如b是二进制表示;比如E是指数表示;比如X是十六进制表示
例子(本机测试运行环境:Python3.6)
>>>print("{:,}".format(123456))#输出1234,56 123,456 >>>print("{a:w^8}".format(a="8"))#输出www8wwww,填充w www8wwww >>>print("%.5f"%5)#输出5.000000 5.00000 >>>print("%-7s3"%("python"))#输出python3 python3 >>>print("%.3e"%2016)#输出2.016e+03,也可以写大E 2.016e+03 >>>print("%d%s"%(123456,"jb51"))#输出123456jb51 123456jb51 >>>print("%(what)sis%(year)d"%{"what":"thisyear","year":2016})#输出thisyearis2016 thisyearis2016 >>>print("{0}{1}".format("hello","fun"))#输出hellofun,这与CSharp的格式化字符(占位符)相似 hellofun >>>print("{}{}{}".format("jb51",".","net"))#输出jb51.net jb51.net >>>print("{a[0]}{a[1]}{a[2]}".format(a=["jb51",".","net"]))#输出jb51.net jb51.net >>>print("{dict[host]}{dict[dot]}{dict[domain]}".format(dict={"host":"www","domain":"jb51.net","dot":"."}))#输出www.nhooo.com www.nhooo.com >>>print("{a}{b}".format(a="python",b="3"))#输出python3 python3 >>>print("{who}{doing}{0}".format("python",doing="like",who="I"))#输出Ilikepython Ilikepython >>>
另:关于Pythonformat函数格式化输出操作可参考前面一篇Python字符串基本操作