前面跟大家分享过占位符%,最近发现了个更好用的格式化输出函数format,故做了个总结,下面将是对format函数的用法全解。首先,format是一个字符串中的函数 表达式为 str.format(),采用了 {} 来代替占位符 %format(value, format_spec='', /)这个为调用格式 value 表示格式化输入的值(参数),可以接受不限个参数format函数的位置参数用法 “{0}”.format(value)"The dog is {} years old,name {}".format(1,"DaiMo")#大括号里没有设置位置参数结果为:'The dog is 1 years old,name DaiMo'这是默认位置参数状态下的输出结果,第一个{}对应format函数的第一个参数,第二个{}对应着第二个参数,以此类推,一一对应。"The dog is {0} years old,name {1}".format(1,"DaiMo")结果为:'The dog is 1 years old,name DaiMo'"The dog is {1} years old,name {0}".format(1,"DaiMo")结果为:'The dog is DaiMo years old,name 1'通过位置的改变来让替换的值根据位置改变format函数的字符填充用法 “{:}”.format()说到这一点,可能稍微有点复杂,为了方便理解,在引入format函数的调用格式'''{ index : [ [fill] align] [sign] [+] [width] [.precision] [type] ] }index 为位置参数,从0,1,……,开始fill:指定空白处填充的字符,当填充字符为逗号(,)且作用于整数或浮点数时,该整数(或浮点数)会以逗号分隔的形式输出(千分位输出),例如(1000000会输出 1,000,000)align:指定数据的对齐方式(、^ 分别为左对齐、右对齐、居中,= 看下图)sign:指定有无符号数(+、-、、空格)width:指定输出数据时所占的宽度。precision:指定保留的小数位数。type:指定输出数据的具体类型'''哈?还看不懂吗?那我以例子为基础讲细一点print("The dog is {0:0>2} years old,name {1}".format(1,"DaiMo"))The dog is 01 years old,name DaiMo大括号中第一个0表示位置参数,第二个0是在设定的字符长度下,空白处以0来填充。> 表示右对齐,2 表示字符长度为2.
代码如下,注释也在里面:#include<stdio.h>#include<stdlib.h>int main(){int num,a,b,c;//输入三位数printf("请输入一个三位整数:\n");scanf("%d",&num);//输出各位数a=num/100;b=(num-a*100)/10;c=(num-a*100-b*10);printf("千位-%d,十位-%d,个位-%d\n",a,b,c);system("PAUSE");return 0;}