python字符串的格式化

在python中常常会用到字符串的格式化,而在python的格式化中出现频率最高的就是百分号。

例如指定位置的字符串

print("这是一个%s!" % "测试")

打印结果为

这是一个测试!

百分号后的字符串就替换到了%s的位置上。

另外还有%d表示整数,%f表示浮点数,%.2f保留两位小数,比如下面:

test = "[%d]%s获得了%.2f分" % (1,"数学",59.9)
print(test)
test = "[%d]%s获得了%.2f分" % (2,"生物",0)
print(test)

打印结果为

[1]数学获得了59.90分
[2]生物获得了0.00分

每个百分号对应顺序应该一致,数据类型也应该一致(整数和浮点数可以自动转换),如果是打印百分号就需要在前面多加一个百分号

print("%.2f%%" % 99)
# 打印出来为 99.00%

但是字符串比较长,变量比较多,百分号用起来就比较繁琐了,这个时候采用format是不错的选择

# 一个相同的例子
test = "[{}]{}获得了{:.2f}分".format(1,"数学",59.9)
print(test)
# 打印为 [1]数学获得了59.90分

test = "[{0}]{1}获得了{2:.2f}分".format(1,"数学",59.9)
print(test)
# 打印为 [1]数学获得了59.90分

test = "[{2}]{1}获得了{2:.2f}分".format(1,"数学",59.9)
print(test)
# 打印为 [59.9]数学获得了59.90分

可以使用关键字

test = "[{number}]{subject}获得了{score:.2f}分".format(number=1,subject="数学",score=59.9)
print(test)
# 打印为 [1]数学获得了59.90分

或者使用字典

my_dic = {"number":1, "subject":"数学", "score":59.9}
test = "[{number}]{subject}获得了{score:.2f}分".format(**my_dic)
print(test)
# 打印为 [1]数学获得了59.90分

使用format也可以调整数据格式,或者填充数据,例如之前的{score:.2f}表示保留两位小数

print("{subject:0>5}".format(subject="数学"))
# 前面填充0至五位
# 打印结果为 000数学

print("{subject:0<5}".format(subject="数学"))
# 打印结果为 数学000

print("\"{subject:>5}\"".format(subject="数学"))
# 填充空格 结果为 "   数学"

print("{score:,}".format(score=1000000))
# 填充千分位符 打印结果为 1,000,000

format还支持二进制/八进制/十进制/十六进制转换

print('{:b}'.format(99))
# 二进制 1100011
print('{:d}'.format(99))
# 十进制 99
print('{:o}'.format(99))
# 八进制 143
print('{:x}'.format(99))
# 十六进制 63
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值