Python格式化字符串%与format的区别-创新互联
简介
Python中格式化字符串目前有两种方法:%和format
成都创新互联公司长期为上千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为麦积企业提供专业的成都网站制作、成都网站设计,麦积网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。Python2.6引入了format这个格式化字符串的方法
区别
%
# 定义一个坐标值
c = (250, 250)
# 使用%丑陋的格式化...
s1 = "敌人坐标:%s" % (c,)
# 因为c是一个元祖,所以%格式化时后面不能只写一个c
format
# 定义一个坐标值
c = (250, 250)
# 使用format格式化
s2 = "敌人坐标:{}".format(c)
3.6的新特性f-strings
name = "DZM"
age = 18
f"My name is {name}.I'm {age}"
# "My name is DZM.I'm 18"
常用的format用法
通过位置
print('{0},{1},{0}'.format('dzm', 18))
# dzm,18,dzm
通过关键字
不依赖位置
print('my name is {x},my age is {y}'.format(x='dzm',y=18))
# my name is dzm,my age is 18
# 或者
data = {"name": "DZM", "age": 18}
print("Name:{name}, Age:{age}".format(**data))
# 'Name:DZM, Age:18'
通过对象属性
class Person():
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return "{self.name} is {self.age} years old.".format(self=self)
dzm = Person("dzm", 18)
print(dzm)
# dzm is 18 years old.
通过下标
data = [11, 22]
print("{0[0]} ----- {0[1]}".format(data))
# 11 ----- 22
填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。
# 18前面用10个空格填充
print("{:>10}".format('18'))
' 18'
# 18前面用10个0填充
"{:0>10}".format('18')
zfill()方法
Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0。
zfill()方法语法:str.zfill(width)
参数width指定字符串的长度。原字符串右对齐,前面填充0。
返回指定长度的字符串。
"18".zfill(10)
# '0000000018'
精度与类型f
其中.4表示长度为4的精度,f表示float类型。
print("{:.4f}".format(3.1415926))
# 3.1416
其他进制
b、d、o、x分别是二进制、十进制、八进制、十六进制
{:b}".format(18)
'10010'
千位分隔符
"{:,}".format(1234567890)
'1,234,567,890'
参考文章:https://www.cnblogs.com/liwenzhou/p/8570701.html
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:Python格式化字符串%与format的区别-创新互联
当前URL:http://azwzsj.com/article/ceodhg.html