Loading...
墨滴

瀋凣

2021/12/15  阅读:55  主题:极简黑

python笔记26

Python day26

1. 字符串

1.7 格式化

1.7.1 format()

{}里可以选填的格式化选项如下:

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

仅对数字类型有效。指定符号的显示方式。

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

举个栗子:

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

指定千分位的分隔符。可选值有:,_

举个栗子:

>>> "{:,}".format(1234)
'1,234'
>>> "{:_}".format(1234)
'1_234'
>>> "{:,}".format(123)
'123'
#如果位数不足,千位分隔符是不显示的
>>> "{:,}".format(123456789)
'123,456,789'
.precision

指定精度。

  • 对于[type]设置为fF的浮点数来说,是限定小数点显示多少位;
  • 对于[type]设置为gG的浮点数来说,是限定小数点前后一共显示多少个数位;
  • 对于非数字类型来说,限定的是最大字段的大小;
  • 对于整数类型来说,则不允许使用[.precision]选项。

举个栗子:

>>> "{:.2f}".format(3.1414926)
'3.14'
>>> "{:.2g}".format(3.1415926)
'3.1'
>>> "{:6}".format("i love python")
'i love'
>>> "{:2}".format(114514)
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ValueError: Precision not allowed in integer format specifier
#整数类型不允许使用[.precision]选项
type

指定输出形式。

  • 适用整数
含义
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'
#

当参数以二进制、八进制、十六进制等在字符串中输出时,自动追加前缀。

举个栗子:

>>> "{:#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%'
>>> "{:.2%}".format(0.98)
'98.00%'

1.7.2 f-字符串(f-string)

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

f-string是format方法的语法糖
f-string是format方法的语法糖
语法

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。

举个栗子:

format()方法的例子改写成f-string形式:

>>> year = 1949
>>>"新中国成立于 {} 年".format(year)
'新中国成立于 1949 年'
>>> F"新中国成立于 {year} 年"
'新中国成立于 1949 年'
>>> "1 + 2 = {},2的平方是{},3的立方是{}".format(1+2,2*2,3**3)
'1 + 2 = 3,2的平方是4,3的立方是27'
>>> f"1 + 2 = {1+2},2的平方是{2*2},3的立方是{3**3}"
>>> "{:010}".format(-520)
'-000000520'
>>> f"{-520:010}"
'-000000520'
>>> "{:,}".format(123456789)
'123,456,789'
>>> f"{123456789:,}"
'123,456,789'
>>> "{:2f}".format(3.1415)
'3.14'
>>> f"{3.1415:2f}"
'3.14'
点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/12/15  阅读:55  主题:极简黑

作者介绍

瀋凣