格式化一个字符串的输出结果,我们在很多地方都可以看到,如: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 math27 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 win32Type "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.comHello,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 ==> 4098Sjoerd ==> 4127Dcab ==> 7678Jack: 4098; Sjoerd: 4127; Dcab: 8637678>>>