您的位置:首页 > 其它

str.format格式化用法(通过{}来替代%)

2015-11-03 10:47 85 查看
# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#str.format格式化用法(通过{}来替代%)
'''
>>> help(format)
Help on built-in function format in module __builtin__:

format(...)
format(value[, format_spec]) -> string

Returns value.__format__(format_spec)
format_spec defaults to ""
'''

#1、通过位置:
#字符串的format函数可以接受不限个参数,位置可以不按顺序。
print 'name:{0},age:{1}'.format('xiaodeng',28)#name:xiaodeng,age:28
print '{},{}'.format('xiaodeng',28)#xiaodeng,28

#print '{},{},{}'.format('xiaodeng',28)
'''
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\新浪API\test.py", line 20, in <module>
print '{},{},{}'.format('xiaodeng',28)
IndexError: tuple index out of range
'''
#修改之:
print '{1},{1},{0}'.format('xiaodeng',28)#28,28,xiaodeng

#2、通过关键字参数:
print '{name},{age}'.format(age=20,name='xiaodeng')#xiaodeng,20

#3、通过对象属性:
class Person():
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return 'my name is {self.name},age is {self.age} years old'.format(self=self)

print Person('xiaodeng',28)#my name is xiaodeng,age is 28 old

#4、通过下标
list=['xiaodeng',28]
print '{0[0]},{0[1]}'.format(list)#xiaodeng,28;这里的0是默认的???

#5、填充与对齐
print '{:>8}'.format('125')#>右对齐,后面带宽度,<表示左对齐,^表示居中对齐。
print '{:a>8}'.format('125')#默认空格填充,这里为a字母填充
'''
>>>
125
aaaaa125
>>>
'''

#6、精度和类型f
print '{:.2f}'.format(321.123)#321.12;其中.2表示长度为2的精度,f表示float类型

#7、其他类型:
#要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。
print '{:b}'.format(17)#10001
print '{:d}'.format(17)#17
print  '{:o}'.format(17)#21
print  '{:x}'.format(17)#11
#用,号还能用来做金额的千位分隔符。
print '{:,}'.format(1234567890)#1,234,567,890

#8、指定宽度
print 'My name is {0:118}'.format('xiaodeng')#My name is xiaodeng
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: