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
