python格式化字符串最佳实践,'%s'% 是什么意思?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文讲述python
格式化字符串的两种方式,当然也可以使用传统的加号对字符串进行拼接。不过,就显得不那么专业对不?本文提供python
编程语言下,字符串拼接(格式化)的两个新的思路方式。
大家好,苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程所学所想。测试环境:win10
,python@3.11.0
。
第一种方式,%
这种百分号来格式化字符串的方式,在其它编程语言里面还是真的没有看到过的。所以,这个是不是python
下独有的字符串格式化方式呢?使用范例:
name = "苏南大叔"
print("我是 %s"%name)
me = ("苏南大叔", 18)
print("我是 %s,今年%s岁" % me)
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="北京大学"))
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
相关链接
- https://newsn.net/say/python-def.html
- https://newsn.net/say/python-dir.html
- https://docs.python.org/zh-cn/3/library/string.html#formatstrings
结束语
本文的内容虽然比较基础,但是也算是相对罕见的字符串拼接格式化的用法。据小道消息,.format()
会替代%
操作,目前仅仅是兼容而已。(苏南大叔未找到此言论的官方出处)
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。