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


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM