ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python字符串的格式化语法

2021-11-22 21:58:19  阅读:157  来源: 互联网

标签:输出 格式化 format Python 形式 语法 参数 80 250


标准格式:

format_spec     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]

1.对齐([align])选项

含义
'<'强制字符串在可用空间内左对齐(默认)
'>'强制字符串在可用空间内右对齐
'='强制将填充放置在符号(如果有)之后但在数字之前的位置(这适用于以 “+000000120” 的形式打印字符串)
'^'强制字符串在可用空间内居中

 

例子:

"{:<30}".format(250)
'250                           '

"{:>30}".format(250)
'                           250'

"{:0=30}".format(+250)
'000000000000000000000000000250'
"{:0=30}".format(-250)
'-00000000000000000000000000250'
"{:^30}".format(250)
'             250              '
如果在指定宽度的前面添加一个 '0',则表示为数字类型(其它类型无效哦)启用感知正负号的 '0' 填充效果。

例:

 "{:010}".format(-520)

'-000000520'

2.你还可以在对齐([align])选项的前面通过填充选项([fill])指定填充字符。

例:

"{1:&<30}""{0:&<30}".format(250, 520)
'520&&&&&&&&&&&&&&&&&&&&&&&&&&&250&&&&&&&&&&&&&&&&&&&&&&&&&&&'

3.符号([sign])选项仅对数字类型有效,可以使用下面 3 个值

含义
'+'正数在前面添加正号(+),负数在前面添加负号(-)
'-'只有负数在前面添加符号(-),默认行为
空格

正数在前面添加一个空格,负数在前面添加负号(-)

"{:+} {:-}".format(520, -250)

'+520 -250'

除此之外,还可以设置千位分隔符,它有两个值可以选择 —— ',' 或 '_'

>>> "{:,}".format(1234)

'1,234'

>>> "{:_}".format(1234)

'1_234'

>>> "{:,}".format(123)

'123'

>>> "{:,}".format(123456789)

'123,456,789'

4.精度([.precision])选项是一个十进制整数,对于不同类型的参数,它的效果是不一样的:

  • 对于以 'f' 或 'F' 格式化的浮点数值来说,是限定小数点后显示多少个数位
  • 对于以 'g' 或 'G' 格式化的浮点数值来说,是限定小数点前后共显示多少个数位
  • 对于非数字类型来说,限定最大字段的大小(换句话说就是要使用多少个来自字段内容的字符)
  • 对于整数来说,则不允许使用该选项值

例:

"{:.2f}".format(3.1415)

'3.14'

"{:.2g}".format(3.1415)

'3.1'

 "{:.6}".format("I love FishC")

'I love'

5.最后,类型([type])选项决定了数据应该如何呈现。

以下类型适用于整数:P 5|X[^.b#!_"B+MsK?ejc1Za

含义
'b'将参数以二进制的形式输出
'c'将参数以 Unicode 字符的形式输出
'd'将参数以十进制的形式输出
'o'将参数以八进制的形式输出
'x'将参数以十六进制的形式输出
'X'将参数以十六进制的形式输出
'n'跟 'd' 类似,不同之处在于它会使用当前语言环境设置的分隔符插入到恰当的位置
None跟 'd' 一样

例:

>>> "{:b}".format(80)

'1010000'

>>> "{:c}".format(80)

'P'

>>> "{:d}".format(80)

'80'

>>> "{:o}".format(80)

'120'

>>> "{:x}".format(80)

'50'

>>> "{:n}".format(80)

'80'

这还有个人性化设置,就是井号([#])选项,参数以二进制、八进制或十六进制在字符串中输出的时候,会自动追加前缀 "0b"、"0o" 和 "0x"。

>>> "{:#b}".format(80)

'0b1010000'

>>> "{:#o}".format(80)

'0o120'

>>> "{:#x}".format(80)

'0x50'

以下类型值适用于浮点数、复数和整数(自动转换为等值的浮点数)如下:

含义
'e'将参数以科学记数法的形式输出(以字母 'e' 来标示指数,默认精度为 6)
'E'将参数以科学记数法的形式输出(以字母 'E' 来标示指数,默认精度为 6)
'f'将参数以定点表示法的形式输出(“不是数” 用 'nan' 标示,无穷用 'inf' 标示,默认精度为 6)
'F'将参数以定点表示法的形式输出(“不是数” 用 'NAN' 标示,无穷用 'INF' 标示,默认精度为 6)
'g'通用格式,小数以 'f' 形式输出,大数以 'e' 的形式输出
'G'通用格式,小数以 'F' 形式输出,大数以 'E' 的形式输出示
'n'跟 'g' 类似,不同之处在于它会使用当前语言环境设置的分隔符插入到恰当的位置
'%'以百分比的形式输出(将数字乘以 100 并显示为定点表示法('f')的形式,后面附带一个百分号
None类似于 'g',不同之处在于当使用定点表示法时,小数点后将至少显示一位;默认精度与给定值所需的精度一致

注:% 不适用于复数

>>> "{:e}".format(3.1415)

'3.141500e+00'

>>> "{:E}".format(3.1415)

'3.141500E+00'

>>> "{:f}".format(3.1415)

'3.141500'

>>> "{:g}".format(123456789)

'1.23457e+08'

>>> "{:g}".format(1234.56789)

'1234.57'

>>> "{:%}".format(0.98)

'98.000000%'

标签:输出,格式化,format,Python,形式,语法,参数,80,250
来源: https://blog.csdn.net/m0_63619203/article/details/121480569

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有