python掌握字符串只需這一篇就夠了
四大前綴
除了普通的字符串,python在字符串前面可以有4個(gè)前綴,即frub。其中,f字符串可將{}
中的變量轉(zhuǎn)為字符串;r
表示取消轉(zhuǎn)義;u
表示使用Unicode字符;b
表示采用byte
類型。
前二者最常用,示例如下
>>> f"1+1={1+1}" #f字符串 '1+1=2' >>> r"C:\abc\def"#r字符串取消轉(zhuǎn)義 'C:\\abc\\def'
大小寫轉(zhuǎn)化
大小寫轉(zhuǎn)化 | 說明 | 示例 | 結(jié)果 |
---|---|---|---|
capitalize() | 首字母轉(zhuǎn)大寫 | 'i love u'.capitalize() |
‘I love u' |
upper() | 所有字母轉(zhuǎn)大寫 | 'I love u'.upper() |
‘I LOVE U' |
lower() | 所有字母轉(zhuǎn)小寫 | 'I LOVE U'.lower() |
‘i love u' |
title() | 單詞首字母大寫 | 'i love u'.title() |
‘I Love U' |
swapcase() | 大小寫翻轉(zhuǎn) | 'I Love U'.swapcase() |
‘i lOVE u' |
casefold() | 超級(jí)大寫轉(zhuǎn)小寫 | 'Γ'.casefold() |
‘γ' |
空格調(diào)整函數(shù)
其中輸入w
表示將字符長度調(diào)整為w
,如未作說明,則其余位置補(bǔ)充為空格。
空格調(diào)整 | 說明 | 示例 | 結(jié)果 |
---|---|---|---|
center(w) | 調(diào)整后原字符串居中 | 'Love'.center(6) |
' Love ' |
ljust(w) | 調(diào)整后原字符串居左 | 'Love'.ljust(6) |
'Love ' |
rjust(w) | 調(diào)整后原字符串居右 | 'Love'.rjust(6) |
' Love' |
zfill(w) | 在左側(cè)補(bǔ)0 | '123'.zfill(6) |
‘000123' |
expandtabs(w) | 將tab 轉(zhuǎn)為w個(gè)空格 |
'\ta'.expandtabs(4) |
' a' |
刪除部分字符
s
為字符串,如果為空則默認(rèn)為空格。
lstrip(s) | 自左刪除s 中的字符 |
'ILoveU'.lstrip('ILU') |
‘oveU' |
rstrip(s) | 自右刪除s 中的字符 |
'\tLove\t'.rstrip() |
‘\tLove' |
strip(s) | 執(zhí)行l(wèi)strip(s)和rstrip(s) | '\tLove\t'.strip() |
‘Love' |
removeprefix(s) | 自左刪除s |
'ILoveU'.removeprefix('ILU') |
‘ILoveU' |
removesuffix(s) | 自右刪除s |
'ILoveU'.removesuffix('eU') |
‘ILov' |
字符串判定
返回True的條件 | 示例 | 返回值 | |
---|---|---|---|
isalnum() | 只包含字母或數(shù)字 | 'abc1'.isalnum() |
True |
isalpha() | 只含字母 | 'abc1'.isalpha() |
False |
isdecimal() | 只包含十進(jìn)制數(shù)字 | '123A'.isdecimal() |
False |
isdigit() | 只含數(shù)字 | '123A'.isdecimal() |
False |
islower() | 包含字母,且均為小寫 | 'abc1'.islower() |
True |
isupper() | 包含字母,且均為大寫 | '123'.isupper() |
False |
isnumeric() | 只包含數(shù)字字符 | '四五'.isnumeric() |
True |
isspace() | 只含空格 | 'asd'.isspace() |
False |
istitle() | 首字母均大寫 | 'I Love U'.istitle() |
True |
isascii() | 均為ASCII碼 | '四'.isascii() |
False |
isidentifier() | 可用作python標(biāo)識(shí)符 | '1asd'.isidentifier() |
False |
isprintable() | 均為可打印字符 | chr(1).isprintable() |
False |
字符串查找
下面的函數(shù)均有三個(gè)輸入?yún)?shù),str
表示待匹配字符串,beg
和end
分別表示開頭和結(jié)尾,默認(rèn)為0和被匹配字符串的長度。以s.count(str, beg, end)
為例,表示s[beg:end]
中str
出現(xiàn)的次數(shù)。
s.count(str, beg, end) |
str 出現(xiàn)的次數(shù) |
s.find(str, beg, end) |
str 首次出現(xiàn)的位置,如未找到則返回-1 |
s.rfind(str, beg, end) |
str 最后出現(xiàn)的位置,如未找到則返回-1 |
s.index(str, beg, end) |
和find 相同,但未找到會(huì)報(bào)錯(cuò) |
s.rindex(str, beg, end) |
和rfind 相同,但未找到會(huì)報(bào)錯(cuò) |
s.startswith(str, beg, end) |
若以str 開頭,則返回True |
s.endswith(str, beg, end) |
若以str 結(jié)尾,則返回True |
分割、合并和替換
s.split(str, num) |
將s 按照str 進(jìn)行分割,若指定num,則分割為num+1 段 |
s.rsplit(str, num) |
和split相同,但從右向左開始匹配 |
s.splitlines([keepends]) |
按行分割,若指定keepends為False,則不保留換行符 |
s.join(seq) |
以s 為分隔符,將seq 中的字符串組合在一起 |
s.partition(str) |
將s 分成三份,str 左邊,str 和str 右邊 |
s.rpartition(str) |
和partition 相同,但從右邊開始 |
s.replace(s1, s2, num) |
將s 中的s1 換成s2 ,若指定num,則替換不超過num次 |
除了replace
,還可以通過translate
來進(jìn)行替換,區(qū)別在于translate
輸入的是maketrans
建立的替換表。
>>> trans = ''.maketrans('I',"我") >>> "I Love U".translate(trans) '我 Love U'
format格式化
format
可將標(biāo)識(shí)符{}
替換為元組中的值,如果{}
中未指定序號(hào),則順序替代。
'{} Love {}'.format('I','U') 'I Love U'
如果{}
中指定了序號(hào),則按照序號(hào)的順序替代
>>> '{0} Love {1}, {1} Love {0}'.format('I','U') 'I Love U, U Love I' #最近被蜜雪冰城洗腦了。。。
當(dāng)然,和C語言一樣,這種格式化用于數(shù)字轉(zhuǎn)化的情況多一些,python中通過:
來聲明數(shù)字轉(zhuǎn)化為字符串之后的格式
其中,
^, <, >
分別表示居中、左對(duì)齊、右對(duì)齊+
表示在正數(shù)前顯示+,負(fù)數(shù)前顯示 -b
、d
、o
、x
分別是二進(jìn)制、十進(jìn)制、八進(jìn)制、十六進(jìn)制
具體示例如下
>>> from math import pi
輸入 | 輸出 | 描述 |
---|---|---|
'{:.2f}'.format(pi) |
‘3.14' | 保留兩位小數(shù),四舍五入 |
'{:.2%}'.format(pi) |
‘314.16%' | 保留兩位小數(shù)的百分?jǐn)?shù) |
'{:+.2f}'.format(1) |
‘+1.00' | 保留兩位小數(shù),帶符號(hào) |
'{:0>5d}'.format(1) |
‘00001' | 左側(cè)補(bǔ)0,寬度為5 |
'{:>5d}'.format(1) |
‘01' | 左側(cè)補(bǔ)空格,寬度為5 |
'{:x<5d}'.format(1) |
‘1xxxx' | 右側(cè)補(bǔ)x,寬度為5 |
'{:-^5d}'.format(1) |
‘–1--' | 兩側(cè)補(bǔ)-,寬度為5 |
'{:,}'.format(1e5) |
‘100,000.0' | 逗號(hào)分隔 |
'{:.2e}'.format(1e5) |
‘1.00e+05' | 科學(xué)計(jì)數(shù)法 |
'{:b}'.format(8) |
‘1000' | 二進(jìn)制 |
format_map
format
的輸入為一個(gè)字符串元組,將元組中的字符串根據(jù)索引替代字符串中的{}
,而format_map
則直接用字典來進(jìn)行格式化。
例如用元組可以做到
>>> '{} Love {}'.format("阿珍","阿強(qiáng)") '阿珍 Love 阿強(qiáng)'
而用字典,則可以這樣寫
>>> '{A} Love {B}'.format_map({"A":"阿珍","B":"阿強(qiáng)"}) '阿珍 Love 阿強(qiáng)'
從而使得代碼更加清晰。
到此這篇關(guān)于python掌握字符串只需這一篇就夠了的文章就介紹到這了,更多相關(guān)python 字符串 內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。