亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中如何使用str.format方法

發布時間:2020-09-24 10:58:03 來源:億速云 閱讀:355 作者:Leah 欄目:編程語言

這期內容當中小編將會給大家帶來有關Python中如何使用str.format方法,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

字符串的內置方法大致有40來個,但是一些常用的其實就那么20幾個,而且里面還有類似的用法,區分度高比如:isalpha,isalnum,isdigit,還有一些無時不刻都會用到的split切分,join拼接,strip首尾去指定字符,作用無非就是圍繞字符串的增刪改查來進行,本人認為要弄清楚和熟練使用這些常用的方法,一方面需要在理解的基礎上多多練習多多回顧,同時在工作使用中去鞏固,加深記憶。忘記沒關系,善于總結歸納,善于對自己大腦記憶的‘增刪改查’才是重點。

str.format的意義:

作為一個初學者,最近發現字符串中最繁雜的一個方法莫過于:str.format()了,format見名思義,格式化,格式化完為了干嘛,其實就是為了得到我們需要格式的數據,也就是格式化輸出,格式化輸出我們一開始學習的是用%s、%d來實現,但是這種方法有很多局限性,比如%s是按照位置格式化輸出,局限性顯而易見,如果一次性格式化輸出太多,還是根據位置來輸出的話就太容易出錯了。所以更精確的一種格式化輸出方法就是str.format()

str.format方法介紹:

1、通過字符串中的花括號{}來識別替換字段,從而完成字符串的格式化。

2、替換的內容包括:字段名、格式說明符三部分,形式一般為:{字段名:格式說明符}

以上是簡介,下面是干貨:

具體實現:

1、簡單實現方法:

(1)省略不寫{} ____寫法類似%s按位置格式化輸出

(2)數字{十進制非負整數} ____寫法類似依據位置索引傳參

(3)變量名{關鍵字} ____寫法類似關鍵字參數傳參

(4)可以混合使用

1.1 省略不寫:花括號內省略不寫,代表傳遞位置參數

替換字段形式{}

注意事項:花括號個數少于等于后面的位置參數的個數,多了肯定報錯。

# 用{}代表占位符,直接位置傳參
print('我是{},喜歡{}!'.format('滅霸','打響指'))
# 我是滅霸,喜歡打響指!
# {}數量必須少于后面位置參數數量,不然報錯
print('我是{},喜歡{},不喜歡{}。'.format('宙斯','放大搶人頭','放空大','小短腿'))
print('我是{},喜歡{},不喜歡{}。'.format('宙斯','放大搶人頭'))
# 報錯誤:IndexError: tuple index out of range

1.2 數字形式傳參:通過位置索引值傳遞位置參數

索引從整數0開始

索引可以重復引用,輸出

索引數值就是后面位置參數放入一個元組來取值的過程,所以索引數值不能大于元組里面位置參數的最大索引值,否則報錯

print('我身高{0},年齡正好{1},{2}長。'.format('180cm',18,'15cm'))
# 我身高180cm,年齡正好18,15cm長。
print('我身高{0},{0}不多不少,年齡正好{1}。'.format('180cm',18))
# 我身高180cm,180cm不多不少,年齡正好18。
print('我身高{0},年齡正好{1},{2}長。'.format('180cm',18))
# IndexError: tuple index out of range

1.3 變量名{關鍵字} 傳遞輸出參數

想想關鍵字參數怎么傳參,類比一下,bingo!

特別注意,關鍵字的變量名在參數那里無需加引號,同時{}里面引用直接填變量名。

print('我的名字叫{name},我其實是一名{career}!'.format(name='尹天仇',career='演員'))
# 我的名字叫尹天仇,我其實是一名演員!
print('我叫{name2},又名{name1},我弟弟叫{name3}!'.format(name1='至尊寶',name2='秦漢',name3='秦祥林'))
# 我叫秦漢,又名至尊寶,我弟弟叫秦祥林!

1.4 {}、{0}、{name}混合使用

位置參數在前,關鍵字參數在后

{}不能與數字形式{0}同時使用。

print('吹個{0},吹個{2},吹大了{1},玩{ball}!'.format('球','氣球','大氣球',ball='球球'))
# 吹個球,吹個大氣球,吹大了氣球,玩球球!
print('吹個{},吹大了{},玩{ball}!'.format('球','氣球','大氣球',ball='球球'))
# 吹個球,吹大了氣球,玩球球!
print('吹個{0},吹大了{1},玩{ball}!'.format('球','氣球','大氣球',ball='球球'))
# 吹個球,吹大了氣球,玩球球!
print('吹個{0},吹大了{},玩{ball}!'.format('球','氣球','大氣球',ball='球球'))
#報錯 ValueError: cannot switch from manual field specification to automatic field numbering

2、使用元組和字典傳參:

str.format()方法可以使用*元組和**字典的形式傳參,可以混用。

方法相當于*args和**kwargs打散傳參,元組按位置或索引傳參,字典按關鍵字傳參。

位置參數、關鍵字參數、*元組、**字典也可以同時使用,但要注意位置參數在關鍵字參數前,*元組要在**字典前。

# 元組
print('我喜歡{},喜歡{},同時也喜歡{}!'.format(*('籃球','足球','觀球')))
# 我喜歡籃球,喜歡足球,同時也喜歡觀球!
print('我喜歡{0},喜歡{1},同時也喜歡{2}!'.format(*('籃球','足球','觀球')))
# 我喜歡籃球,喜歡足球,同時也喜歡觀球!
# 字典
print('{name}的女朋友是{gf},我也喜歡{gf}!'.format(**{'name':'鋼鐵俠','gf':'小辣椒'}))
# 鋼鐵俠的女朋友是小辣椒,我也喜歡小辣椒!
# 元組+字典
print('我是{beauty}的{1},我們都喜歡{0},請大家{2}!'\
      .format(*('球類','球迷','文明觀球'),**{'beauty':'斯嘉麗約翰遜',}))
# 我是斯嘉麗約翰遜的球迷,我們都喜歡球類,請大家文明觀球!
# 位置參數、關鍵字參數、元組、字典混合使用:
print('我是{name},好像{age}了 ^_^,在{0},等你哦!\n喜歡{1}、{2}和{3}。\n我的唯一 >>>:{only_one}\n我的小可愛 >>>: {love}!'\
      .format('武漢',name='蘇光體',age=18,*('讀書','健身','折騰數碼'),**{'only_one':'楊林','love':'蘇弘睿'}))
# 我是蘇光體,好像18了 ^_^,在武漢,等你哦!
# 喜歡讀書、健身和折騰數碼。
# 我的唯一 >>>:楊林
# 我的小可愛 >>>: 蘇弘睿!

使用元組或者字典格式化輸出的形式就是相當于將元組和字典打散,變成位置參數們和關鍵字參數們然后按照前面的方法傳參就行。

3、對象參數格式化輸出傳值:

formate還可以使用對象屬性傳參,這個對象可以是實例化的對象,也可以是列表、字典。

# 對象屬性傳參
# 實例化對象:
class Dog:
    def __init__(self,name,speak):
        self.name=name
        self.speak=speak
dog1=Dog('小黃','汪汪汪')
print('我的{0.name}會{0.speak}。'.format(dog1))
# 我的小黃會汪汪汪。
# 文件對象
with open('text.txt','wb') as f:
    print('打開的文件名為:{0.name}'.format(f))
# 打開的文件名為:text.txt
# 列表、字典對象
print('I have a {0[0]} , I have a {0[1]} .'.format(['Apple','Pen']))
print('我叫{0[name]},{0[id]}就是我!'.format({'name':'阿星','id':'9527'}))
print('{1[name]}變成了{0[0]},藏進了{1[role]}的褲襠里,為什么不變{0[1]}而是{0[0]}呢?'.format(['葡萄','蘋果'],{'name':'菩提老祖','role':'至尊寶'}))
# I have a Apple , I have a Pen .
# 我叫阿星,9527就是我!
# 菩提老祖變成了葡萄,藏進了至尊寶的褲襠里,為什么不變蘋果而是葡萄呢?

4、格式說明符:規定傳入參數字符的格式

比如:

print('{0:.4f}'.format(3.1415926))
#在傳入參數后面用冒號:寫入規定的格式:.4f(取4位小數) 結果為:3.1416

說明符格式標準:[填充]對齊方式][正負號][#][0][寬度][分組選項][.精度][類型碼]   同時存在是有順序之分的,具體使用下面有具體示例:

填充:

(1)填充字符只能有一個

(2)不指定默認用空格填充

(3)如果指定填充字符,則必須要同時指定對齊方式

對齊方式:

(1)<    左對齊

(2)>    右對齊

(3)^    居中對齊

(4)=    在正負號和數字之間填充(僅對數字類型有效)可以輸出類似:+00000012的字符串。

正負號:

(1)僅對數字類型生效

(2)+ - 正負號

(3)空格:正數前面需要添加一個空格,以便與負數對齊

寬度width

(1)不指定寬度,寬度由內容決定

(2)寬度前有0,意味著用0填充,等價于 0=的填充和對齊方式

精度

(1)指小數點后面展示的小數位數。

(2)對于非數字類型,指最大字段寬度。

(3)整數類型不能指定精度,會報錯的。

下面看示例吧:

#在傳入參數后面用冒號:寫入規定的格式:.4f(取4位小數) 結果為:3.1416
# 填充、對齊、寬度
print('{0:人>2}'.format('<我是誰>'))   # 寬度不夠,按實際字符顯示
print('{0:人<11}'.format('<我>'))
print('{0:人^11}'.format('<我>'))
# <我是誰>
# <我>人人人人人人人人
# 人人人人<我>人人人人
# 正負號、精度
print('{0:*=+10.4f}'.format(3.1415926))  # '*'>填充符,'='>指定在正負號和數字之間填充,'10'>寬度,'.4f'>精度
print('{0:*>+10.4f}'.format(3.1415926))  # 同上,'>'>右對齊
# +***3.1416
# ***+3.1416
print('{0:&>10.4f}'.format(3.1415926))
print('{0:&<10.4f}'.format(3.1415926))
print('{0:&>10.4}'.format('我是中國人'))  # 精度為4,去字符串中的前4個字符
# &&&&3.1416
# 3.1416&&&&
# &&&&&&我是中國

類型碼(規定輸出的數據類型)

(1)字符串類型

(2)整數類型

(3)浮點數類型

# 字符串類型(默認類型,忽視)
print('{0:s}'.format('abc'))    # abc
print('{0:}'.format('abc'))     # abc
# 整數類型
# b 二進制|c Unicode字符|d 十進制整數|還有很多比如o八進制|x十六進制...等等
print('{0:b}'.format(101))     # 1100101
print('{0:c}'.format(101))     # e
print('{0:d}'.format(666))     # 666
# 浮點數字類型
# e 科學計數(默認精度6位)
print('{0:e}'.format(31415926))   # 3.141593e+07
# f 定點記法(默認精度6位)
print('{0:f}'.format(3.1415926))   # 3.141593

以上例子可以說不太全面,只是大概舉了幾個常見的,除了e,f類型還有g通用類型,n number類型,對于日常使用的話并不常用。所以不一一列出。

5、其他補充:

花括號本事如需格式化輸出,可以用外套2層花括號轉義解決

print('{{0}}'.format('abc'))       # {0}
print('{{{0}}}'.format('abc'))     # {abc}

一些另類格式化輸出:

from datetime import datetime
print('今天是:{0:%Y-%m %H:%M}'.format(datetime.now()))
# 結果:
今天是:2019-05 15:10

總結:

str.format()格式化輸出方法可以說是%s的加強型,特別是在處理更復雜的格式化輸出過程時候,可以更精確的進行達到輸出目的,它集成的方法可以說比較繁雜,很多方法個人認為用處不大,僅僅是錦上添花的作用,個人認為只要掌握前面幾個簡單的位置參數、關鍵字參數、元組、字典的傳參形式的格式化輸出就可以了。后面的方法可以有,但是不建議進行強行記憶,因為精力有限,用時再打開翻翻也就明了。

上述就是小編為大家分享的Python中如何使用str.format方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

喀喇沁旗| 淮南市| 福州市| 商河县| 静乐县| 台湾省| 兴安县| 赤城县| 潮安县| 科技| 泰州市| 绥宁县| 同德县| 长治市| 信丰县| 湘阴县| 绥阳县| 太保市| 延川县| 哈密市| 长白| 宁陕县| 体育| 沐川县| 凭祥市| 南城县| 嘉荫县| 五家渠市| 宁强县| 尤溪县| 柳林县| 郁南县| 宁武县| 连平县| 右玉县| 贵港市| 玉屏| 崇仁县| 天门市| 措美县| 金塔县|