# -*- 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