python3 str.format()的使用


基本格式

{字段名!轉換字段:格式說明符}

字段名:省略;數字;變量名

'name is {}, age is {}'.format('peter',25)
'name is {1}, age is {0}'.format(25, 'peter')
'name is {name}, age is {age}'.format(name='peter',age='25')

轉換字段: !s !r !a

s:傳遞參數之前先對參數調用 str()
r:傳遞參數之前先對參數調用 repr()
a:傳遞參數之前先對參數調用 ascii()

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        
    def __repr__(self):
        return 'Person({0.name!r}, {0.age!r})'.format(self)
    
    def __str__(self):
        return '({0.name!s}, {0.age!s})'.format(self)
    
person = Person('peter', 25)
'this person is {!r}'.format(person)
'this person is {!s}'.format(person)
'this person is {!a}'.format('皮特')

# result
"this person is Person('peter', 25)"
'this person is (peter, 25)'
"this person is '\\u76ae\\u7279'"

格式說明符

填充與對齊 :[填充字符][對齊方式 <^>][寬度]

'{:*>10}'.format(10) # 右對齊 '********10'
'{:*<10}'.format(10) # 左對齊 '10********'
'{:*^10}'.format(10) # 居中對齊 '****10****'

精度與數據類型

  • 默認的數據類型是 字符串 s
'{:.3}'.format('23333333')  # '233'
'{:.3s}'.format('23333333') # '233'
  • 進制轉換
'{:b}'.format(20) # 二進制 '10100'
'{:o}'.format(20) # 八進制 '24'
'{:x}'.format(20) # 十六進制 '14'
  • 浮點數和科學計數法
'{:e}'.format(1234567.1234567)    # 科學計數法 '1.234567e+06'
'{:.2e}'.format(1234567.1234567) # '1.23e+06'
'{:.3f}'.format(1234567.1234567)  # 浮點數 '1234567.123'
'{:%}'.format(1)  # 百分數 '100.000000%'
'{:.0%}'.format(1) # '100%'

花括號轉譯

  • 使用花括號轉譯花括號
'{{{}}}'.format('peter') # '{peter}'


免責聲明!

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



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