Python格式化字符串

by admin on 2019年4月10日

一.简单利用

字符串类型格式化采纳format()方法,基本使用格式是:

     <模板字符串>.format(<逗号分隔的参数>)

调用format()方法后会重回贰个新的字符串,参数从0 开始编号。

"{}:计算机{}的CPU 占用率为{}%。".format("2016-12-31","PYTHON",10)
Out[10]: '2016-12-31:计算机PYTHON的CPU 占用率为10%。'

 

format()方法可以万分方便地接连分裂类型的变量或内容,如若急需输出大括号,采纳{{表示{,}}表示},例如:

"{}{}{}".format("圆周率是",3.1415926,"...")
Out[11]: '圆周率是3.1415926...'

"圆周率{{{1}{2}}}是{0}".format("无理数",3.1415926,"...")
Out[12]: '圆周率{3.1415926...}是无理数'

s="圆周率{{{1}{2}}}是{0}" #大括号本身是字符串的一部分

s
Out[14]: '圆周率{{{1}{2}}}是{0}'

s.format("无理数",3.1415926,"...") #当调用format()时解析大括号
Out[15]: '圆周率{3.1415926...}是无理数'

 

format格式化字符串方法相较于老版%格式方法的独到之处:
一.不必要理会数据类型的题材,在%方法中’%s’只好代替字符串类型.
二.单个参数能够频仍出口,参数顺序能够区别.
三.填充格局格外灵活,对齐格局十一分强大.
四.官方推荐,%方法将会在前边的版本被淘汰.

format格式化字符串方法相较于老版%格式方法的助益:
壹.不须要理会数据类型的标题,在%方法中’%s’只好代替字符串类型.
二.单个参数能够频仍出口,参数顺序能够不一样.
叁.填充情势相当灵活,对齐格局十二分强大.
四.官方推荐,%方法将会在前面包车型大巴本子被淘汰.

format格式化字符串方法相较于老版%格式方法的帮助和益处:
一.不要求理会数据类型的题材,在%方法中’%s’只可以代替字符串类型.
2.单个参数能够频繁出口,参数顺序能够分化.
三.填充情势非凡灵活,对齐形式十分强大.
肆.官方推荐,%方法将会在背后的版本被淘汰.

二. 格式控制音讯

   format()方法中<模板字符串>的槽除了蕴含参数序号,还能包涵格式控制信息。此时,槽的内部样式如下:

     {<参数序号>: <格式控制标记>}

     在那之中,<格式控制标记>用来控制参数字突显示时的格式,包涵:<填充><对齐><宽度>,<.精度><类型>几个字段,这么些字段都是可选的,能够构成使用,逐一介绍如下。

 

bf88必发唯一官网 1

 

<宽度>

指当前槽的设定输出字符宽度,假设该槽对应的format()参数长度比<宽度>设定值大,则动用参数实际尺寸。若是该值的实际位数小于钦命宽度,则位数将被私下认可以空格字符补充。

<对齐>

指参数在<宽度>内输出时的对齐情势,分别选用<、>和^八个标志表示左对齐、右对齐和居中对齐。

<填充>

bf88必发唯一官网,指<宽度>内除了参数外的字符接Nash么措施意味着,暗许使用空格,能够经过<填充>更换。

s = "PYTHON"

"{0:30}".format(s)
Out[17]: 'PYTHON                        '

"{0:>30}".format(s)
Out[18]: '                        PYTHON'

"{0:*^30}".format(s)
Out[19]: '************PYTHON************'

"{0:-^30}".format(s)
Out[20]: '------------PYTHON------------'

"{0:3}".format(s)
Out[21]: 'PYTHON'

format()方法的中坚选取格式:
Python格式化字符串。  <模板字符串>.format(<逗号分隔的参数>)
<模板字符串>是由一各类的槽组成,用来决定修改字符串中嵌入值现身的任务,其基本思考是将format()方法的<逗号分隔的参数>中的参数依照序号关系替换来<模板字符串>的槽中.
槽用大括号{}表示,假设大括号中从未序号,则依照职位顺序替换:

format()方法的中坚选拔格式:
  <模板字符串>.format(<逗号分隔的参数>)
<模板字符串>是由一多级的槽组成,用来支配修改字符串中嵌入值出现的地方,其主干思想是将format()方法的<逗号分隔的参数>中的参数根据序号关系替换成<模板字符串>的槽中.
槽用大括号{}表示,假使大括号中平素不序号,则遵照岗位顺序替换:

format()方法的焦点使用格式:
  <模板字符串>.format(<逗号分隔的参数>)
<模板字符串>是由1类别的槽组成,用来支配修改字符串中嵌入值出现的职务,个中央思想是将format()方法的<逗号分隔的参数>中的参数依据序号关系替换成<模板字符串>的槽中.
槽用大括号{}表示,即使大括号中从未序号,则依据岗位顺序替换:

逗号(,)

<格式控制标记>中逗号(,)用于体现数字的千位分隔符,例如:

"{0:-^20,}".format(1234567890)
Out[24]: '---1,234,567,890----'

"{0:-^20}".format(1234567890) #对比输出
Out[25]: '-----1234567890-----'

"{0:-^20,}".format(12345.67890)
Out[26]: '----12,345.6789-----'
>>> print('{}:计算机{}的CPU占用率为{}%'.format('2017-09-30', 'Python', 10))
2017-09-30:计算机Python的CPU占用率为10%
>>> print('{}:计算机{}的CPU占用率为{}%'.format('2017-09-30', 'Python', 10))
2017-09-30:计算机Python的CPU占用率为10%
>>> print('{}:计算机{}的CPU占用率为{}%'.format('2017-09-30', 'Python', 10))
2017-09-30:计算机Python的CPU占用率为10%

Python格式化字符串。 <.精度>

意味着三个意思,由小数点(.)起始。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大尺寸。

"{0:.2f}".format(12345.67890)
Out[29]: '12345.68'

"{0:H^20.3f}".format(12345.67890)
Out[30]: 'HHHHH12345.679HHHHHH'

"{0:.4}".format("PYTHON")
Out[31]: 'PYTH'

只要大括号中钦赐了运用参数的序号,依据序号对应参数替换.参数从0早先编号:

倘诺大括号中钦定了利用参数的序号,依据序号对应参数替换.参数从0发轫编号:

假若大括号中钦命了使用参数的序号,根据序号对应参数替换.参数从0开首编号:

<类型>

表示输出整数和浮点数类型的格式规则。对于整数类型,输出格式包蕴陆 种:

  • b: 输出整数的2进制格局;
  • c: 输出整数对应的 Unicode 字符;
  • d: 输出整数的十进制方式;
  • o: 输出整数的8进制格局;
  • x: 输出整数的小写十陆进制格局;
  • X: 输出整数的大写十陆进制格局;

    “{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}”.format(425)
    Out[32]: ‘110101001,Ʃ,425,651,1a9,1A9’

对于浮点数类型,输出格式包罗四 种:

  • e: 输出浮点数对应的小写字母 e 的指数格局;
  • E: 输出浮点数对应的大写字母 E 的指数格局;
  • f: 输出浮点数的正统浮点方式;
  • %: 输出浮点数的百分款式。

     浮点数输出时尽量选拔<.精度>表示小数部分的上升幅度,有助于更加好控制输出格式。

"{0:e},{0:E},{0:f},{0:%}".format(3.14)
Out[33]: '3.140000e+00,3.140000E+00,3.140000,314.000000%'

"{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14)
Out[34]: '3.14e+00,3.14E+00,3.14,314.00%'

 

>>> print('{1}:计算机{0}的CPU占用率为{2}%.'.format('python', '2017-09-30', 10))
2017-09-30:计算机python的CPU占用率为10%.
>>> print('{1}:计算机{0}的CPU占用率为{2}%.'.format('python', '2017-09-30', 10))
2017-09-30:计算机python的CPU占用率为10%.
>>> print('{1}:计算机{0}的CPU占用率为{2}%.'.format('python', '2017-09-30', 10))
2017-09-30:计算机python的CPU占用率为10%.

除去通过序号来内定填充的参数外,仍是能够通过主要字参数,下标,字典的key和指标的属性来填充

除了这几个之外通过序号来钦命填充的参数外,还能透过重大字参数,下标,字典的key和目的的品质来填充

除此之外通过序号来钦命填充的参数外,仍是能够通过主要字参数,下标,字典的key和目标的性质来填充

>>> print('{date}:计算机{process}的CPU占用率为{per}%.'.format(date='2017-09-30', process='python', per=10))    # 关键字参数
2017-09-30:计算机python的CPU占用率为10%.
>>> print('I am {arg[0]}, I love {arg[1]}'.format(arg=arg))    # 下标
I am Liu, I love python

>>> person = {'name': 'Liu', 'age': 24, 'job': 'Pythoneer'}
>>> print('I am {person[name]}, {person[age]} years old, a {person[job]}.'.format(person=person))
I am Liu, 24 years old, a Pythoneer.

Class Person():
    def __init__(self):
        self.name, self.age, self.job = 'Liu', 24, 'Pythoneer'
>>> me = Person()
>>> print('I am {me.name}, {me.age} years old, a {me.job}'.format(me=me))
I am Liu, 24 years old, a Pythoneer.
>>> print('{date}:计算机{process}的CPU占用率为{per}%.'.format(date='2017-09-30', process='python', per=10))    # 关键字参数
2017-09-30:计算机python的CPU占用率为10%.
>>> print('I am {arg[0]}, I love {arg[1]}'.format(arg=arg))    # 下标
I am Liu, I love python

>>> person = {'name': 'Liu', 'age': 24, 'job': 'Pythoneer'}
>>> print('I am {person[name]}, {person[age]} years old, a {person[job]}.'.format(person=person))
I am Liu, 24 years old, a Pythoneer.

Class Person():
    def __init__(self):
        self.name, self.age, self.job = 'Liu', 24, 'Pythoneer'
>>> me = Person()
>>> print('I am {me.name}, {me.age} years old, a {me.job}'.format(me=me))
I am Liu, 24 years old, a Pythoneer.
>>> print('{date}:计算机{process}的CPU占用率为{per}%.'.format(date='2017-09-30', process='python', per=10))    # 关键字参数
2017-09-30:计算机python的CPU占用率为10%.
>>> print('I am {arg[0]}, I love {arg[1]}'.format(arg=arg))    # 下标
I am Liu, I love python

>>> person = {'name': 'Liu', 'age': 24, 'job': 'Pythoneer'}
>>> print('I am {person[name]}, {person[age]} years old, a {person[job]}.'.format(person=person))
I am Liu, 24 years old, a Pythoneer.

Class Person():
    def __init__(self):
        self.name, self.age, self.job = 'Liu', 24, 'Pythoneer'
>>> me = Person()
>>> print('I am {me.name}, {me.age} years old, a {me.job}'.format(me=me))
I am Liu, 24 years old, a Pythoneer.

format()方法中<模板字符串>的槽除了涵盖参数序号,还是能包括格式控制符.此时,槽的内部样式如下:
   {<参数序号>:<格式控制符>}
个中,<格式控制符>用来控制参数呈现时的格式.

format()方法中<模板字符串>的槽除了富含参数序号,还足以包罗格式控制符.此时,槽的中间样式如下:
   {<参数序号>:<格式控制符>}
在那之中,<格式控制符>用来控制参数显示时的格式.
bf88必发唯一官网 2
<格式控制符>包蕴:<填充><对齐><宽度>,<.精度><类型>5个字段,这一个字段都以可选的,可以整合使用.
<填充>,<对齐>和<宽度>是三个相关字段.

format()方法中<模板字符串>的槽除了含蓄参数序号,还足以回顾格式控制符.此时,槽的里边样式如下:
   {<参数序号>:<格式控制符>}
内部,<格式控制符>用来控制参数显示时的格式.
bf88必发唯一官网 3
<格式控制符>包括:<填充><对齐><宽度>,<.精度><类型>5个字段,那个字段都是可选的,能够组合使用.
<填充>,<对齐>和<宽度>是3个相关字段.

bf88必发唯一官网 4

  • <宽度>:指当前槽的设定输出字符宽度,即使该槽对应的format()参数长度比<宽度>设定值大,则会选用实际宽度.即便该值的实际上位数小于钦命宽度,则位数将被暗中同意以空格补充.
  • <对齐>:指参数在<宽度>内输出是的对齐方式,分别选取<,>和=四个记号表示左对齐,右对齐和居中对齐.
  • <填充>:指<宽度>内而外参数外的字符接Nash么样格局表示,默许使用空格.

    >>> s = 'PYTHON'
    >>> '{:30}'.format(s)
    'PYTHON                        '
    >>> '{:>30}'.format(s)
    '                        PYTHON'
    >>> '{:*^30}'.format(s)
    '************PYTHON************'
    >>> '{:-^30}'.format(s)
    '------------PYTHON------------'
    >>> '{:5}'.format(s)
    'PYTHON'
    
  • 逗号,:<格式控制符>中逗号(,)用于显示数字的千位分隔符

    >>> '{:-^20,}'.format(123456789)
    '----123,456,789-----'
    >>>'{:-^20}'.format(123456789)    #对比输出
    '-----123456789------'
    >>> '{:-^20,}'.format(12345.67890)
    '----12,345.6789-----'
    
  • <.精度>:表示多个意思,有小数点(.)开首.对于浮点数,精度表示小数部分输出的实用位数.对于字符串,精度表示输出的最大长度.

    >>> '{:.2f}'.format(12345.67890)
    '12345.68'
    >>> '{:H^20.3f}'.format(12345.67890)
    'HHHHH12345.679HHHHHH'
    >>> '{:.4}'.format('PYTHON')
    'PYTH'
    
  • <类型>:表示输出整数和浮点数类型的格式规则.对于整数类型,输出格式包蕴陆中:
      b: 输出整数的二进制形式;
      c: 输出整数对应的Unicode字符;
      d: 输出整数的10进制形式;
      o: 输出整数的八进制方式;
      x:输出整数的小写十陆进制格局;
      X:输出整数的大写十陆进制格局;

    >>> '{0:b}, {0:c}, {0:d}, {0:o}, {0:x}, {0:X}'.format(425)
    '110101001, Ʃ, 425, 651, 1a9, 1A9'
    

     对于浮点数类型,输出格式包含肆种:
      e: 输出浮点数对应的小写字母e的指数情势;
      E: 输出浮点数对应的大写字母E的指数格局;
      f: 输出浮点数的专业浮点方式;
      %: 输出浮点数的比例方式;
    浮点数输出是不择手段是用<.精度>表示小数部分的大幅,有助于更加好控制输出格式.

    >>> '{0:e}, {0:E}, {0:f}, {0:%}'.format(3.14)
    '3.140000e+00, 3.140000E+00, 3.140000, 314.000000%'
    >>> '{0:.2e}, {0:.2E}, {0:.2f}, {0:.2%}'.format(3.14)
    '3.14e+00, 3.14E+00, 3.14, 314.00%'
    
  • <宽度>:指当前槽的设定输出字符宽度,借使该槽对应的format()参数长度比<宽度>设定值大,则会利用实际宽度.假若该值的骨子里位数小于钦命宽度,则位数将被暗中同意以空格补充.
  • <对齐>:指参数在<宽度>内输出是的对齐格局,分别选拔<,>和=五个记号表示左对齐,右对齐和居中对齐.
  • <填充>:指<宽度>内除了参数外的字符选择什么办法意味着,暗许使用空格.

    >>> s = 'PYTHON'
    >>> '{:30}'.format(s)
    'PYTHON                        '
    >>> '{:>30}'.format(s)
    '                        PYTHON'
    >>> '{:*^30}'.format(s)
    '************PYTHON************'
    >>> '{:-^30}'.format(s)
    '------------PYTHON------------'
    >>> '{:5}'.format(s)
    'PYTHON'
    
  • 逗号,:<格式控制符>中逗号(,)用于呈现数字的千位分隔符

    >>> '{:-^20,}'.format(123456789)
    '----123,456,789-----'
    >>>'{:-^20}'.format(123456789)    #对比输出
    '-----123456789------'
    >>> '{:-^20,}'.format(12345.67890)
    '----12,345.6789-----'
    
  • <.精度>:表示四个意思,有小数点(.)初始.对于浮点数,精度表示小数部分输出的有效位数.对于字符串,精度表示输出的最大长度.

    >>> '{:.2f}'.format(12345.67890)
    '12345.68'
    >>> '{:H^20.3f}'.format(12345.67890)
    'HHHHH12345.679HHHHHH'
    >>> '{:.4}'.format('PYTHON')
    'PYTH'
    
  • <类型>:表示输出整数和浮点数类型的格式规则.对于整数类型,输出格式包蕴陆中:
      b: 输出整数的②进制形式;
      c: 输出整数对应的Unicode字符;
      d: 输出整数的10进制格局;
      o: 输出整数的8进制格局;
      x:输出整数的小写十6进制格局;
      X:输出整数的大写十陆进制情势;

    >>> '{0:b}, {0:c}, {0:d}, {0:o}, {0:x}, {0:X}'.format(425)
    '110101001, Ʃ, 425, 651, 1a9, 1A9'
    

     对于浮点数类型,输出格式包罗四种:
      e: 输出浮点数对应的小写字母e的指数情势;
      E: 输出浮点数对应的大写字母E的指数格局;
      f: 输出浮点数的专业浮点方式;
      %: 输出浮点数的比例格局;
    浮点数输出是不择手段是用<.精度>表示小数部分的幅度,有助于更加好控制输出格式.

    >>> '{0:e}, {0:E}, {0:f}, {0:%}'.format(3.14)
    '3.140000e+00, 3.140000E+00, 3.140000, 314.000000%'
    >>> '{0:.2e}, {0:.2E}, {0:.2f}, {0:.2%}'.format(3.14)
    '3.14e+00, 3.14E+00, 3.14, 314.00%'
    

<格式控制符>包含:<填充><对齐><宽度>,<.精度><类型>七个字段,那几个字段都以可选的,能够组合使用.
<填充>,<对齐>和<宽度>是二个相关字段.

##### 其他

**转义{和}符号**  
使用{}对大括号进行转义

    >>> 'hello {}, {{}}'.format('world')
    'hello world, {}'

**处理时间对象**

    >>> from datetime import datetime
    >>> '{:%Y-%m-%d %X}'.format(datetime.now())
    '2017-09-30 16:24:29'

参考官方文档中对[时间的格式化字符](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior).  
**一个快捷方法**

    >>> a, b = 'Life', 'Python'
    >>> f'{a} is short, you need {b}'
    'Life is short, you need Python'
##### 其他

**转义{和}符号**  
使用{}对大括号进行转义

    >>> 'hello {}, {{}}'.format('world')
    'hello world, {}'

**处理时间对象**

    >>> from datetime import datetime
    >>> '{:%Y-%m-%d %X}'.format(datetime.now())
    '2017-09-30 16:24:29'

参考官方文档中对[时间的格式化字符](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior).  
**一个快捷方法**

    >>> a, b = 'Life', 'Python'
    >>> f'{a} is short, you need {b}'
    'Life is short, you need Python'
  • <宽度>:指当前槽的设定输出字符宽度,假设该槽对应的format()参数长度比<宽度>设定值大,则会采取实际宽度.假若该值的莫过于位数小于钦命宽度,则位数将被暗中同意以空格补充.
  • <对齐>:指参数在<宽度>内输出是的对齐格局,分别接纳<,>和=八个标志表示左对齐,右对齐和居中对齐.
  • <填充>:指<宽度>内除了参数外的字符采取什么样办法意味着,暗中同意使用空格.

>>> s = 'PYTHON'
>>> '{:30}'.format(s)
'PYTHON                        '
>>> '{:>30}'.format(s)
'                        PYTHON'
>>> '{:*^30}'.format(s)
'************PYTHON************'
>>> '{:-^30}'.format(s)
'------------PYTHON------------'
>>> '{:5}'.format(s)
'PYTHON'
  • 逗号,:<格式控制符>中逗号(,)用于体现数字的千位分隔符

>>> '{:-^20,}'.format(123456789)
'----123,456,789-----'
>>>'{:-^20}'.format(123456789)    #对比输出
'-----123456789------'
>>> '{:-^20,}'.format(12345.67890)
'----12,345.6789-----'
  • <.精度>:表示多个意思,有小数点(.)开始.对于浮点数,精度表示小数部分输出的有效性位数.对于字符串,精度表示输出的最大长度.

>>> '{:.2f}'.format(12345.67890)
'12345.68'
>>> '{:H^20.3f}'.format(12345.67890)
'HHHHH12345.679HHHHHH'
>>> '{:.4}'.format('PYTHON')
'PYTH'
  • <类型>:表示输出整数和浮点数类型的格式规则.对于整数类型,输出格式包括陆中:
      b: 输出整数的贰进制方式;
      c: 输出整数对应的Unicode字符;
      d: 输出整数的十进制格局;
      o: 输出整数的八进制形式;
      x:输出整数的小写十陆进制格局;
      X:输出整数的大写十陆进制格局;

>>> '{0:b}, {0:c}, {0:d}, {0:o}, {0:x}, {0:X}'.format(425)
'110101001, Ʃ, 425, 651, 1a9, 1A9'

 对于浮点数类型,输出格式包罗肆种:
  e: 输出浮点数对应的小写字母e的指数方式;
  E: 输出浮点数对应的大写字母E的指数形式;
  f: 输出浮点数的正经浮点情势;
  %: 输出浮点数的比重格局;
浮点数输出是尽量是用<.精度>表示小数部分的增幅,有助于更加好控制输出格式.

>>> '{0:e}, {0:E}, {0:f}, {0:%}'.format(3.14)
'3.140000e+00, 3.140000E+00, 3.140000, 314.000000%'
>>> '{0:.2e}, {0:.2E}, {0:.2f}, {0:.2%}'.format(3.14)
'3.14e+00, 3.14E+00, 3.14, 314.00%'
其他

转义{和}符号
使用{}对大括号实行转义

>>> 'hello {}, {{}}'.format('world')
'hello world, {}'

拍卖时间对象

>>> from datetime import datetime
>>> '{:%Y-%m-%d %X}'.format(datetime.now())
'2017-09-30 16:24:29'

参照官方文书档案中对时光的格式化字符.
一个相当慢方法

>>> a, b = 'Life', 'Python'
>>> f'{a} is short, you need {b}'
'Life is short, you need Python'

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图