Python-----格式化字符

摘要: Python中 %s 、 %r

 

    Python中也有类似于C中的 printf()格式输出,使用 % 运算符,格式:

        格式标记字符串 % 要输出的值组

右边的”值组“若有两个及以上的值则需要用小括号括起来,中间用逗号隔开。

    重点看左边部分。其最简单的形式为: %code。 ,其中的code可以有多种,而在Python中,所有的输入都可以转换为 string 类型,所以没有特殊要求时,可以使用 ”%s“ 标记。

1 >>>'%s %s %s' % (1,2.3, ['one', 'two', 'three']) 

输出为:

1 "1 2.3  ['one', 'two', 'three']"
2 >>>

输出按照左边的标记输出。第一个和第二个是数字,同样可以输出。该过程中,Python发现第一个值 ‘1’ 不是 string 类型时调用 str() 函数来进行输出。第二个数值同理输出。

      常用的还有 repr() 函数,该函数可以用 %r 标记。除此之外,还有很多类似的code:

 整型数: %d

 无符号整型数:%u

 八进制: %o

 十六进制: %x  %X

  浮点数: %f 

  科学计数法: %e   %E

根据数值的不同,自动选择 %e 或 %f 。同 ‘/’ 用来进行转义一样,‘%’ 只用来进行标记格式。若要在格式标记中输出 % 本身,可以用 ‘%%’ 来表示。

1 >>> '%s' %'%1'
2 '%1'
3 >>>

     下面介绍几个复杂的例子:

1 >>> '%1.2f' %1.235
2 '1.24'
3 >>>

f前面的1.2代表:总共输出长度为1个字符,其中小数为2位。

1 >>> '%06.2f' %1.235
2 '001.24'
3 >>> 
%06.2f 表示:若输出的位数不足6位,则用0 补齐。其中 小数点 也占用一个字符位。类似的还有 -、+, 
‘-’表示左对齐,‘+’表示在证书前面标记 ‘+’,默认不加。

1 >>> '%(name)s:%(score)03.1f' %{'score':95, 'name':'Tom'}
2 'Tom:95.0'
3 >>> 

    该形式只适用于输出的内容为 dictionary (Python一种格式化数据类型)时,左面小括号中的(name) 和 (score) 对应于后面键值中相应内容。

 

    以上的例子表明,‘格式标记字符串’ 中标记的顺序与 '要输出值组'的值是一一对应的。





 

       

 

posted @ 2016-05-16 22:01  蜡笔小白  阅读(528)  评论(0编辑  收藏  举报