python format


python自2.6后,新增了一種格式化字符串函數str.format(),威力十足,可以替換掉原來的%

:以下操作版本是python2.7

映射示例

語法

通過{} 和 :  替換 %

通過位置

>>> '{0} is {1}'.format('jihite', '4 years old')
'jihite is 4 years old'
>>> '{0} is {1} {0}'.format('jihite', '4 years old')
'jihite is 4 years old jihite'

通過format函數可以接受不限參數個數、不限順序

通過關鍵字

>>> '{name}:{age}'.format(age=4,name='jihite')
'jihite:4'
>>> '{name}:{age}'.format(age=4,name='jihite',locate='Beijing')
'jihite:4'

format括號內用=給變量賦值

通過對象屬性

復制代碼
>>> class Person:
...     def __init__(self, name, age):
...         self.name,self.age = name, age
...     def __func__(self):
...         return "This guy is {self.name}, is {self.age} old".format(self=self)
... 
>>> s =Person('jihite', 4)
>>> s.__func__()
'This guy is jihite, is 4 old'
復制代碼

通過下標

>>> '{0[0]} is {0[1]} years old!'.format(['jihite', 4])
'jihite is 4 years old!'
>>> '{0} is {1} years old!'.format('jihite', 4)
'jihite is 4 years old!'

其實就是通過位置

格式限定符

通過{} : 符號

填充和對齊

^<>分別表示居中、左對齊、右對齊,后面帶寬度

復制代碼
>>> '{:>10}'.format('jihite')
'    jihite'
>>> '{:<10}'.format('jihite')
'jihite    '
>>> '{:^10}'.format('jihite')
'  jihite  '
復制代碼

精度和類型f

精度常和f一起使用

>>> '{:.2f}'.format(3.1415)
'3.14'
>>> '{:.4f}'.format(3.1)
'3.1000'

進制轉化

復制代碼
>>> '{:b}'.format(10)
'1010'
>>> '{:o}'.format(10)
'12'
>>> '{:d}'.format(10)
'10'
>>> '{:x}'.format(10)
'a'
復制代碼

其中b o d x分別表示二、八、十、十六進制

千位分隔符

復制代碼
>>> '{:,}'.format(1000000)
'1,000,000'

  >>> '{:,}'.format(100000.23433)
  '100,000.23433'

>>> '{:,}'.format('abcedef')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Cannot specify ',' with 's'.


免責聲明!

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



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