Python-字符串的格式化、对齐、符号选项、千位分隔符、精度、输出类型、f-字符串

字符串的格式化
‘字{}符串’.format(变量)用变量替换{}的值
{下标}想{小标}'.format('元素1', '元素2'){}里的下标是将要填入的元素的下标,一个元素也可以被多次填入到花括号中
'{name},{thing}'.format(name='xx', thing='xx')也可以用索引来定位

year = 2022
print('我们在year相遇')  # 我们在year相遇,所以这样是错误的
print('我们在{}相遇'.format(year))  # 我们在2022相遇
x = 3
y = 10
print('1+2={},2*5={}'.format(x,y))  # 1+2=3,2*5=10
print('{}想{}'.format('我', '你'))  # 我想你
print('{1}想{0}'.format('我', '你'))  # 你想我
print('{1}想{1}'.format('我', '你'))  # 你想你
print('我叫{name},我爱{thing}'.format(name='小花', thing='吃饭'))  # 我叫小花,我爱吃饭

所以怎么输出真的{}?
1.用{}代替{}
2.用{}注释{}

print('{},{},{}'.format(1, {}, 3))  # 1,{},3 即用{}代替{}
print('{},{{}},{}'.format(1, 2))  # 1,{},2 即用{}注释{}

字符串的对齐
<强制字符串在可用空间内左对齐(默认)
>强制字符串在可用空间内右对齐
=强制将填充放置在符号(如果有)之后但在数字之前的位置(这适用于以‘+0000120’的形式打印字符串)
^强制字符串在可用空间内居中对齐
格式'{位置索引等:对齐方向显示宽度}'.format()
填充格式'{:填充符显示宽度}'.format()只对数字有效

print('{:>10}'.format(250))
print('{1:>10}{0:<10}'.format(250,520))
print('{left:>10}{right:<10}'.format(right=1314, left=520))
print('{:010}'.format(250))
#用0来填充,总宽度为10,只对数字有效,format里的数字
print('{:010}'.format(-250)) # -000000250,-号也是宽度

字符串符号选项
+正数在前面添加正号,负数在前面添加负号
-只在负数前面添加负号,默认行为
空格正数在前面添加一个空格,负数在前面添加负号

print('{:+}{:-}'.format(250, -520))  # +250-520

千位分隔符
如果位数不足千位分隔符是不显示的

print('{:,}'.format(1234))  # 1,234 用逗号作为千位分隔符
print('{:_}'.format(1234))  # 1_234 用下划线作为千位分隔符
print('{:,}'.format(123))  # 123
print('{:,}'.format(123456789))  # 123,456,789

精度位数
对于[type]设置为'f'或'F’的浮点数来说,是限定小数点显示多少个数位
对于[type]设置为'g'或'G'的浮点数来说,是限定小数点前后显示多少个数位
对于非数字类型来说,限定的是最大字段的大小
对于整数来说,则不允许使用此选项
格式'{:.位数type}'。format()

print('{:.2f}'.format(3.1415))  #3.14,小数点后的位数为2
print('{:.2g}'.format(3.1415))  # 3.1,小数点前后总位数为2
print('{:.6}'.format('i hate you'))  # i hate,总位数6

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

print('{:b}'.format(80))  # 1010000,80的二进制
print('{:c}'.format(80))  # P,80的Unicode字符
print('{:d}'.format(80))  # 80,80的十进制
print('{:}'.format(80))  # 80,80的十进制
print('{:o}'.format(80))  # 120,80的八进制
print('{:X}'.format(80))  # 50,80的十六进制

#参数以二进制、八进制、十六进制显示时,会在前面添加一个合适的前缀

print('{:#b}'.format(80))  # 0b1010000
print('{:#x}'.format(80))  # 0x50

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

print('{:e}'.format(3.14))  # 3.140000e+00
print('{:E}'.format(3.14))  # 3.140000E+00
print('{:f}'.format(3.14))  # 3.140000
print('{:F}'.format(3.14))  # 3.140000
print('{:g}'.format(3.14))  # 3.14,小数以f
print('{:g}'.format(31457788))  # 3.14578e+07,大数以e
print('{:%}'.format(0.89))  # 89.000000%
print('{:.2%}'.format(0.89))  # 89.00%,用精度位数来改变精度位数

f-字符串
语法糖:是指计算机语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。
将format变成给字符串前加一个f或F

year = 2020
print('我们在{}相遇'.format(year))
print(F'我们在{year}相遇')
x = 3
y = 10
print('1+2={},2*5={}'.format(x,y))
print(f'1+2={x},2*5={y}')  # F、f都可以
# 即是将format变成给字符串前加一个f或F
  • 15
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值