在学习Python的过程中见识了各种各样的对字符串的format的方式,各有优劣,这里总结一下。
%s %d %f 等占位符,这种方式和C中的编程习惯一致,较为常用
name = "John"
print "Hi %s" % name
f = 0.1
print "float %f" % f
int = 0.1
print "integer %d" % int
输出
Hi John
float 0.100000
integer 0
string.format() 强大的format功能
age = 25
name = 'Caroline'
print('{0} is {1} years old. '.format(name, age)) #输出参数
print('{0} is a girl. '.format(name))
print('{0:.3} is a decimal. '.format(1.0/3)) #小数点后三位
print('{0:_^11} is a 11 length. '.format(name)) #使用_补齐空位
print('{first} is as {second}. '.format(first=name, second='Wendy')) #别名替换
print('My name is {0.name}'.format(open('out.txt', 'w'))) #调用方法
print('My name is {0:8}.'.format('Fred')) #指定宽度
输出
Caroline is 25 years old.
Caroline is a girl.
0.333 is a decimal.
_Caroline__ is a 11 length.
Caroline is as Wendy.
My name is out.txt
My name is Fred .
别名替换的方式可以有效减少对同一变量的重复替换
和上面方法唯一不同的就是将{0} {1}等占位符替换成了有意义的变量
fName = 'Wei'
lName = 'Cao'
print "My name is {fName} {lName} , My first name is {fName}, My last name is {lName} ".format(fName=fName, lName=lName)