[python]格式化字符串的几种方式

python中有以下几种方法可以格式化字符串

方式一:C风格%操作符

这种方法偏C语言风格,C语言中的printf选项都可以当成Python的格式说明符来用,例如%s%x%f

# 示例代码00x00:
name = 'zhangsan'
salary = 12345.67
print("name is %s, salary is %.2f" %(name,salary))
# name is zhangsan, salary is 12345.67

这种方法也可以将元组换成字典,避免%操作符两侧的顺序不匹配的问题。

# 示例代码00x01:
print("name is %(name)s, salary is %(salary).2f" %{'name':name, 'salary':salary})
# name is zhangsan, salary is 12345.67

方式二:内置的format函数与str类的format方法

python3添加了高级字符串格式化机制,其表达能力比C风格要强一些,且不需要使用%操作符。

在传给format函数的格式里,逗号表示显示千位分隔符,^表示居中对齐。

# 示例代码01x00:
print("name is "+ format(name,'^20s') + ", salary is " + format(salary,'^20,.2f'))
# name is       zhangsan      , salary is      12,345.67      

也可以在{}内写冒号,把格式化说明符写在冒号右边。

# 示例代码01x01:
print("name is {:<10}, salary is {:^20.2f}".format(name,salary))
# name is zhangsan  , salary is       12345.67      

调用str.format方法的时候,也可以给str{}里面写上数字,用来指代format方法在这个位置所接收到的参数值位置索引

方式三:插值格式字符串

PYthon3.6添加了一种新的特性,叫做插值格式字符串,即f-string。新语法特性要求在格式字符串的前面加上字母f作为前缀。编写和阅读都更简洁一些。

# 示例代码02x00:
print(f"name is {name}, salary is {salary}")
print(f"name is {name:^10}, salary is {salary:^13.2f}")
# name is zhangsan, salary is 12345.67
# name is  zhangsan , salary is   12345.67 
posted @ 2021-05-03 13:30  花酒锄作田  阅读(1022)  评论(0编辑  收藏  举报