python中format的用法實(shí)例詳解
format是字符串內(nèi)嵌的一個(gè)方法,用于格式化字符串。以大括號(hào){}來標(biāo)明被替換的字符串。
1、基本用法
1. 按照{(diào)}的順序依次匹配括號(hào)中的值
s = "{} is a {}".format('Tom', 'Boy')
print(s) # Tom is a Boy
s1 = "{} is a {}".format('Tom')
# 拋出異常, Replacement index 1 out of range for positional args tuple
print(s1)
2. 通過索引的方式去匹配參數(shù)
s = "{0} is a {1}".format('Tom', 'Boy')
print(s) # Tom is a Boy
s1 = "{1} is a {2}".format('Tom', 'Lily', 'Girl')
print(s1) # Lily is a Girl
字符串中索引的順序可以打亂,并不影響匹配。
s = "{1} is a {0}".format('Boy', 'Tom', )
print(s) # Tom is a Boy
3. 通過參數(shù)名來匹配參數(shù)
s = "{name} is a {sex}".format(name='Tom', sex='Boy')
print(s) # Tom is a Boy
同理,如果參數(shù)已經(jīng)確定,可以直接利用{}進(jìn)行格式化引用。
name = 'Tom'
sex = 'Girl'
# 以f開頭表示在字符串中支持大括號(hào)內(nèi)的python表達(dá)式 此用法3.6之后支持
s = f"{name} is a {sex}"
print(s) # Tom is a Boy
4. 混搭使用
可以通過索引,參數(shù)名來混搭進(jìn)行匹配。
s = "My name is {}, i am {age} year old, She name is {}".format('Liming', 'Lily', age=10)
print(s) # My name is Liming, i am 10 year old, She name is Lily
需要注意的是,命名參數(shù)必須寫道最后。負(fù)責(zé)會(huì)編譯報(bào)錯(cuò)!
s = "My name is {}, i am {age} year old, She name is {}".format('Liming', age=10, 'Lily')
print(s) # SyntaxError: positional argument follows keyword argument
另外,不可以索引和默認(rèn)格式化混合使用。
s = "{} is a {0}".format('Boy', 'Tom', )
print(s)
s1 = "{} is a {1}".format('Boy', 'Tom', )
print(s1)
#以上兩種寫法均報(bào)異常。
# ValueError: cannot switch from automatic field numbering to manual field specification2、進(jìn)階用法
1. 通過對(duì)象的屬性
class Names():
name1='Kevin'
name2='Tom'
print 'hello {names.name1} i am {names.name2}'.format(names=Names)
# hello Kevin i am Tom
2. 支持對(duì)參數(shù)部分引用
可以通過索引對(duì)參數(shù)的部分進(jìn)行取值。如下:s[0] = w。
s = "The word is {s}, {s[0]} is initials".format(s='world')
# The word is world, w is initials
print(s)
3. 數(shù)字的處理
如何使用format 保留兩位小數(shù)呢? 需要使用:.2f,在用%進(jìn)行格式化時(shí)我們使用的是%:.2f
s = 'π is {:.2f}'.format(3.1415926)
print(s) # π is 3.14
s1 = 'π is %.2f'% 3.1415926
print(s1) # π is 3.14同時(shí)這種方法還可以用于字符串截取,不過數(shù)字后面就不能加f了。
s = "{:.1}".format('Hello')
print(s) # H
給數(shù)字加千位符
s = "{:,}".format(1000000)
print(s) # 1,000,000
將數(shù)字轉(zhuǎn)換成二進(jìn)制
s = "{:b}".format(8)
print(s) # 1000
將數(shù)字轉(zhuǎn)換成八進(jìn)制
s = "{:o}".format(8)
print(s) # 10
將數(shù)字轉(zhuǎn)換成十六進(jìn)制
s = "{:X}".format(12)
print(s) # C
4. 格式處理
通過:+數(shù)字指定轉(zhuǎn)換后的字符串長(zhǎng)度,不足的部分用空格補(bǔ)充
s = "{:2}b".format('a')
print(s) # a b (a后面補(bǔ)了一個(gè)空格)
# 如果指定的長(zhǎng)度小于參數(shù)的長(zhǎng)度,按照原參數(shù)匹配
s1 = "{:2}World".format('Hello')
print(s1) # HelloWorld
5. 字符的填充
可通過:符號(hào)^數(shù)字進(jìn)行字符串的填充。 其中數(shù)字為填充后的字符串總長(zhǎng)度。
s = "{:*^10}".format('Hello')
print(s) # **Hello***
s = "{:-^20}".format('123456')
print(s) # -------123456-------
如果數(shù)字小于字符串的長(zhǎng)度,則不進(jìn)行填充操作。
s = "{:*^3}".format('Hello')
print(s) # Hello
6. list、tuple的拆分
在format格式化時(shí),可使用* 或者 ** 進(jìn)行對(duì)list、tuple拆分。
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {} and {} and {}'.format(*foods)
# i like eat fish and beef and fruit
print(s)
foods = ['fish', 'beef', 'fruit']
s = 'i like eat {2} and {0} and {1}'.format(*foods)
# i like eat fruit and fish and beef
print(s)
dict_temp = {'name': 'Lily', 'age': 18}
# 字典需要用 ** 進(jìn)行拆分
s = 'My name is {name}, i am {age} years old'.format(**dict_temp)
print(s) # My name is Lily, i am 18 years old
總結(jié)
到此這篇關(guān)于python中format用法的文章就介紹到這了,更多相關(guān)python中format用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)對(duì)Excel表格的操作詳解
這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)Excel表格的操作,在數(shù)據(jù)處理和報(bào)告生成等工作中,Excel表格是一種常見且廣泛使用的工具,使用Python來處理Excel表格能夠大大的提升效率,感興趣的同學(xué)可以參考下2024-02-02
手把手教你pip配置國(guó)內(nèi)鏡像源(最新詳盡版)
pip是一個(gè)現(xiàn)代的,通用的Python包管理工具,提供了對(duì)Python包的查找、下載、安裝、卸載的功能,下面這篇文章主要給大家介紹了關(guān)于pip配置國(guó)內(nèi)鏡像源的相關(guān)資料,需要的朋友可以參考下2023-02-02
CentOS 7如何實(shí)現(xiàn)定時(shí)執(zhí)行python腳本
這篇文章主要介紹了CentOS 7如何實(shí)現(xiàn)定時(shí)執(zhí)行python腳本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Python使用Pickle庫實(shí)現(xiàn)讀寫序列操作示例
這篇文章主要介紹了Python使用Pickle庫實(shí)現(xiàn)讀寫序列操作,結(jié)合實(shí)例形式分析了pickle模塊的功能、常用函數(shù)以及序列化與反序列化相關(guān)操作技巧,需要的朋友可以參考下2018-06-06
Python中如何快速解析JSON對(duì)象數(shù)組
由于瀏覽器可以迅速地解析JSON對(duì)象,它們有助于在客戶端和服務(wù)器之間傳輸數(shù)據(jù),本文將描述如何使用Python的JSON模塊來傳輸和接收J(rèn)SON數(shù)據(jù)2023-09-09

