python格式化字符串有%和{}两种 字符串格式控制符.
字符串输入数据格式类型(%格式操作符号) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 %% 百分号标记 %c 字符及其ASCII码 %s 字符串 %d 有符号整数(十进制) %u 无符号整数(十进制) %o 无符号整数(八进制) %x 无符号整数(十六进制) %X 无符号整数(十六进制大写字符) %e 浮点数字(科学计数法) %E 浮点数字(科学计数法,用E代替e) %f 浮点数字(用小数点符号) %g 浮点数字(根据值的大小采用%e或%f) %G 浮点数字(类似于%g) %p 指针(用十六进制打印值的内存地址) %n 存储输出字符的数量放进参数列表的下一个变量中
字符串格式控制%[(name)][flag][width][.][precision]type name:可为空,数字(占位),命名(传递参数名,不能以数字开头)以字典格式映射格式化,其为键名 flag:标记格式限定符号,包含+-#和0,+表示右对齐(会显示正负号),-左对齐,前面默认为填充空格(即默认右对齐),0表示填充0,#表示八进制时前面补充0,16进制数填充0x,二进制填充0b width:宽度(最短长度,包含小数点,小于width时会填充) precision:小数点后的位数,与C相同 type:输入格式类型,请看上面 1 2 3 4 5 6 7 8 9 10 {[name][:][[fill]align][sign][#][0][width][,][.precision][type]} 用{}包裹name命名传递给format以命名=值 写法,非字典映射,其他和上面相同 fill = <any character> #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是十六进制表示例子
###例子1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 print("{:,}" .format(123456 )) print("{a:w^8}" .format(a="8" )) print("%.5f" %5 ) print("%-7s3" %("python" )) print("%.3e" %2016 ) print("%d %s" %(123456 ,"myblog" )) print("%(what)s is %(year)d" % {"what" :"this year" ,"year" :2016 }) print("{0}{1}" .format("hello" ,"fun" )) print("{}{}{}" .format("spkk" ,"." ,"cn" )) print("{a[0]}{a[1]}{a[2]}" .format(a=["spkk" ,"." ,"cn" ])) print("{dict[host]}{dict[dot]}{dict[domain]}" .format(dict={"host" :"www" ,"domain" :"spkk.cn" ,"dot" :"." })) print("{a}{b}" .format(a="python" ,b="3" )) print("{who} {doing} {0}" .format("python" ,doing="like" ,who="I" ))