我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本文讲述python格式化字符串的两种方式,当然也可以使用传统的加号对字符串进行拼接。不过,就显得不那么专业对不?本文提供python编程语言下,字符串拼接(格式化)的两个新的思路方式。

苏南大叔:python格式化字符串最佳实践,'%s'% 是什么意思? - PYTHON格式化字符串
python格式化字符串最佳实践,'%s'% 是什么意思?(图4-1)

大家好,苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程所学所想。测试环境:win10python@3.11.0

第一种方式,%

这种百分号来格式化字符串的方式,在其它编程语言里面还是真的没有看到过的。所以,这个是不是python下独有的字符串格式化方式呢?使用范例:

name = "苏南大叔"
print("我是 %s"%name)
me = ("苏南大叔", 18)
print("我是 %s,今年%s岁" % me)

苏南大叔:python格式化字符串最佳实践,'%s'% 是什么意思? - 百分号格式化
python格式化字符串最佳实践,'%s'% 是什么意思?(图4-2)

import numpy as np
x = np.arange(0, 3)
y = x * x
for xy in zip(x, y):
    print(xy, type(xy))
    print("坐标为(%s,%s)" % xy)

这里实际上涉及到了一个tuple类型的概念,参考文章:

第二种方式,format

这个string.format()的类似方式在很多语言里面都有,比较好理解。下面是一些使用范例。

print("我是{},今年{}岁".format("苏南大叔", 18))
print("喜欢{}和{}".format("小猫", "小狗", "小动物"))
print("住在{1},{0}".format("北京", "双桥"))
print("我在{city}的{university}上学".format(city="北京", university="北京大学"))
print("{university}在{0}市{1}".format("北京", "海淀区", university="北京大学"))
print("{university}在{}市{}".format("北京", "海淀区", university="北京大学"))

苏南大叔:python格式化字符串最佳实践,'%s'% 是什么意思? - format的用法
python格式化字符串最佳实践,'%s'% 是什么意思?(图4-3)

me = ["苏南大叔", "newsn.net"]
print("姓名:{0[0]},网站:{0[1]}".format(me))
# 姓名:苏南大叔,网站:newsn.net

相似的参数

其实上面两种方法也可以拥有相似的参数,比如:%s,在.format()里面就是{:s}。例如:

print("我是%s,正在%s" % ("苏南大叔", "写文章"))             # 我是苏南大叔,正在写文章
print("我是{:s},正在{:s}".format("苏南大叔", "写文章"))     # 我是苏南大叔,正在写文章
print("宽度9,2位小数,左补0:%09.2f" % 3.1415926)            # 宽度9,2位小数,左补0:000003.14
print("宽度9,2位小数,左补0:{:09.2f}".format(3.1415926))    # 宽度9,2位小数,左补0:000003.14

苏南大叔:python格式化字符串最佳实践,'%s'% 是什么意思? - 对比
python格式化字符串最佳实践,'%s'% 是什么意思?(图4-4)

相关链接

结束语

本文的内容虽然比较基础,但是也算是相对罕见的字符串拼接格式化的用法。据小道消息,.format()会替代%操作,目前仅仅是兼容而已。(苏南大叔未找到此言论的官方出处)

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python