怎么掌握python字符串
本篇內(nèi)容主要講解“怎么掌握python字符串”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么掌握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',"我")
>>>"ILoveU".translate(trans)
'我LoveU'
format格式化
format可將標(biāo)識(shí)符{}替換為元組中的值,如果{}中未指定序號(hào),則順序替代。
'{}Love{}'.format('I','U')
'ILoveU'
如果{}中指定了序號(hào),則按照序號(hào)的順序替代
>>>'{0}Love{1},{1}Love{0}'.format('I','U')
'ILoveU,ULoveI'#最近被蜜雪冰城洗腦了。。。
當(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)制
具體示例如下
>>>frommathimportpi
| 輸入 | 輸出 | 描述 |
|---|---|---|
'{:.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)'
從而使得代碼更加清晰。
總結(jié)
以上是生活随笔為你收集整理的怎么掌握python字符串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习之自编码器(2)Fashion
- 下一篇: 使用PHP怎么将人民币金额转换为大写