python开发_python中str.format()

http://www.cnblogs.com/hongten/p/hongten_python_format.html

http://blog.sina.com.cn/s/blog_6cba238f0101d6yj.html

python开发_python中str.format()

 

格式化一个字符串的输出结果,我们在很多地方都可以看到,如:c/c++中都有见过

下面看看python中的字符串格式函数str.format():

复制代码
 1 #使用str.format()函数
 2 
 3 #使用'{}'占位符
 4 print('I\'m {},{}'.format('Hongten','Welcome to my space!'))
 5 
 6 print('#' * 40)
 7 
 8 #也可以使用'{0}','{1}'形式的占位符
 9 print('{0},I\'m {1},my E-mail is {2}'.format('Hello','Hongten','hongtenzone@foxmail.com'))
10 #可以改变占位符的位置
11 print('{1},I\'m {0},my E-mail is {2}'.format('Hongten','Hello','hongtenzone@foxmail.com'))
12 
13 print('#' * 40)
14 
15 #使用'{name}'形式的占位符
16 print('Hi,{name},{message}'.format(name = 'Tom',message = 'How old are you?'))
17 
18 print('#' * 40)
19 
20 #混合使用'{0}','{name}'形式
21 print('{0},I\'m {1},{message}'.format('Hello','Hongten',message = 'This is a test message!'))
22 
23 print('#' * 40)
24 
25 #下面进行格式控制
26 import math
27 print('The value of PI is approximately {}.'.format(math.pi))
28 print('The value of PI is approximately {!r}.'.format(math.pi))
29 print('The value of PI is approximately {0:.3f}.'.format(math.pi))
30 
31 
32 table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 7678}
33 for name, phone in table.items():
34     print('{0:10} ==> {1:10d}'.format(name, phone))
35 
36 
37 table = {'Sjoerd': 4127, 'Jack': 4098, 'Dcab': 8637678}
38 print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; ''Dcab: {0[Dcab]:d}'.format(table))
复制代码

运行效果:

复制代码
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
I'm Hongten,Welcome to my space!
########################################
Hello,I'm Hongten,my E-mail is hongtenzone@foxmail.com
Hello,I'm Hongten,my E-mail is hongtenzone@foxmail.com
########################################
Hi,Tom,How old are you?
########################################
Hello,I'm Hongten,This is a test message!
########################################
The value of PI is approximately 3.141592653589793.
The value of PI is approximately 3.141592653589793.
The value of PI is approximately 3.142.
Jack       ==>       4098
Sjoerd     ==>       4127
Dcab       ==>       7678
Jack: 4098; Sjoerd: 4127; Dcab: 8637678

======================================================================

Python 高级字符串格式化

 (2013-05-10 11:18:43)
标签: 

python

 

格式化

 

字符串

 

高级

 

it

分类: Python学习

格式:s.format(*args, *kwargs)

s 中占位符:

  • {n}:将被format()方法中的位置n上的参数代替,从0开始

        >>> print "{0} is {1} writing {3}".format('Kee','now','Java','Python')
        Kee is now writing Python

  • {name}:将被format()方法中关键字参数name代替

        >>> print '{c} {b} {a}'.format(a = 'efhdn', b = 123, c = 8.3 )
        8.3 123 efhdn

  • {或}:要输出一个{或},必须使用{{或}}格式

        >>> print '{{中国}} 你好!'.format()
        {中国} 你好!

 

占位符还可执行,索引或属性查找

 

    #索引查找

    >>> stock = {'name':'盐湖钾肥','share':999,'price':123.45}

    >>> print "{0[name]} {0[share]} {0[price]}".format(stock)
    盐湖钾肥 999 123.45

    #属性查找

    >>> x = 1 - 2j
    >>> print '{0.real} {0.imag}'.format(x)
    1.0 -2.0

 

可通过{place:format_spec}格式,给每个占位符添加可选的格式说明符

说明符格式format_spec:[[fill][align]][sign][0][width][.precision][type]

  • fill:填充符
  • align:对齐方式 < 、 > 、^
  • sign:+ - 空格
  • width:最小字段宽度

    >>> x = 1 - 2j

    >>> print '{0.real:.3f} {0.imag}'.format(x)
    1.000 -2.0

 

 如果只是要格式话对象的str()或repr(),只需格式说明符前面添加 !s 或 !r

 

    >>> name = "Kee"
    >>> print "{0!r:*^20}".format(name)
    *******'Kee'********
    >>> print "{0:*^20}".format(name)
    ********Kee*********

posted on 2016-07-07 17:56  小西红柿  阅读(159)  评论(0)    收藏  举报

导航