牛骨文教育服务平台(让学习变的简单)
博文笔记

Python 格式限定符

创建时间:2017-02-21 投稿人: 浏览次数:798

1.填充与对齐

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:
填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如

In [15]: ‘{:>8}’.format(‘189’)
Out[15]: ’ 189’
In [16]: ‘{:0>8}’.format(‘189’)
Out[16]: ‘00000189’
In [17]: ‘{:a>8}’.format(‘189’)
Out[17]: ‘aaaaa189’

2.精度与类型f

精度常跟类型f一起使用

In [44]: ‘{:.2f}’.format(321.33345)
Out[44]: ‘321.33’

其中.2表示长度为2的精度,f表示float类型。

3.其他类型

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In [54]: ‘{:b}’.format(17)
Out[54]: ‘10001’
In [55]: ‘{:d}’.format(17)
Out[55]: ‘17’
In [56]: ‘{:o}’.format(17)
Out[56]: ‘21’
In [57]: ‘{:x}’.format(17)
Out[57]: ‘11’

4.实例

#coding=utf-8
"""
可以指定所需长度的字符串的对齐方式:
< (默认)左对齐
> 右对齐
^ 中间对齐
= (只用于数字)在小数点后进行补齐
"""
print "1:	|{0:>10},".format("wangyu")
print "2:	|{0:4.2f}".format(1.1415926)
print "3:	|",format(1.1415926,"<10.2f")
print "4:	|{0:<10},{1:<15}".format("wangyu",1.1415926)
print "5:	|User ID: {uid} Last seen: {last_login}".format(uid="root",last_login = "5 Mar 2008 07:20") 

"""格式化指示符可以包含一个展示类型来控制格式。
例如,浮点数可以被格式化为一般格式或用幂来表示。
"b" - 二进制。将数字以2为基数进行输出。
"c" - 字符。在打印之前将整数转换成对应的Unicode字符串。
"d" - 十进制整数。将数字以10为基数进行输出。
"o" - 八进制。将数字以8为基数进行输出。
"x" - 十六进制。将数字以16为基数进行输出,9以上的位数用小写字母。
"e" - 幂符号。用科学计数法打印数字。用"e"表示幂。
"g" - 一般格式。将数值以fixed-point格式输出。当数值特别大的时候,用幂形式打印。
"n" - 数字。当值为整数时和"d"相同,值为浮点数时和"g"相同。不同的是它会根据区域设置插入数字分隔符。
"%" - 百分数。将数值乘以100然后以fixed-point("f")格式打印,值后面会有一个百分号。
"""

print "6:	|{0:b}".format(3)
print "7:	|{0:c}".format(3)
print "8:	|{0:d}".format(3)
print "9:	|{0:o}".format(3)
print "10:	|{0:x}".format(3)
print "11:	|{0:e}".format(3.75)
print "12:	|{0:g}".format(3.75)
print "13:	|{0:n}".format(3.75) #浮点数
print "14:	|{0:n}".format(3)    #整数
print "15:	|{0:%}".format(3.75)

#输入形式的控制format
a = int(raw_input("a:"))
b = int(raw_input("b:"))
print "16:	|%*.*f" % (a, b, 1.1415926)

print "17:	|{array[2]}".format(array=range(10))
print "18:	|{attr.__class__}".format(attr=0)
print "19:	|{digit:*^ 10.5f}".format(digit=1.0/3)

"""
类和类型可以定义一个__format__()方法来控制怎样格式化自己。
它会接受一个格式化指示符作为参数:
"""
def __format__(self, format_spec):
 if isinstance(format_spec, unicode):
  return unicode(str(self))
 else:
  return str(self)
输出如下:
1:      |    wangyu,
2:      |1.14
3:      | 1.14      
4:      |wangyu    ,1.1415926      
5:      |User ID: root Last seen: 5 Mar 2008 07:20
6:      |11
7:      |
8:      |3
9:      |3
10:     |3
11:     |3.750000e+00
12:     |3.75
13:     |3.75
14:     |3
15:     |375.000000%

https://my.oschina.net/dillan/blog/133877

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。