Python學習進階教程(12)—str的方法(之一)

(本號正在連續推出以Python官網文檔為主線的完整的系統的學習Python的系列文章和視頻,感興趣的朋友們歡迎搜索關注。本文及後續文章如無特別聲明均以Windows平臺作為演示平臺,Python版本為:3.8.1)


注意:開始學習“Python學習進階教程”系列內容前須已經學習過“Python學習入門教程”系列內容】

本部分內容由筆者參照Python英文版文檔編寫整理,較之官網中文版更加符合中文的語法習慣,且修正了其中出現的所有錯誤。可以作為參考文檔收藏!

str的常用的方法已在" "中詳細介紹過了,本文作為進階教程,將介紹str的其它方法。

str.capitalize()

返回原字符串的首字符大寫其餘字符小寫的一個拷貝, 例如德文'ß'(等價於"ss"),則調用此方法會返回"Ss".。注意:在python的3.8版本之前,對於像連字這樣的字符會將其對應的所有字符都大寫(對於'ß'會返回"SS").

str.casefold()

返回一個所有字符都小寫的原字符串的拷貝。例如"AaAAa".casefold()會返回"aaaaa"。

str.center(width[, fillchar])

返回原字符串在正中的長度為width的,如果需要則以fillchar填充兩端的字符串,默認fillchar為ascii碼中的空格。如果width小於原字符串的實際長度則返回原字符串的拷貝。

str.count(sub[, start[, end]])

返回字符串sub在原字符串(假設為s)的區間[start,end)上不重疊的出現次數,其中,start,end取[0,len(s)]上的值,默認start為0,end為len(s)。注意實際查找範圍為str[start]到str[end-1]。

str.encode(encoding="utf-8", errors="strict")

返回原字符串以encoding編碼方式編碼的bytes對象。參數encoding用來指定編碼方式,encoding默認為"utf-8"。參數errors用來指定錯誤處理模式,默認為'strict',其它可取值包括'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace '以及任何通過 codecs.register_error() 註冊的值。

str.endswith(suffix[, start[, end]])

位於原字符串的區間[start,end)上的子字符串如果以suffix結尾,則返回True,否則返回False。start,end的解釋同上面str.count。

str.expandtabs(tabsize=8)

返回一個字符串,其值為原字符串中每個製表符替換為tabsize個空格後的字符串。

str.format(*args, **kwargs)

使用方法請參見" Python學習入門教程(21)—格式化輸出「使用str.format()」"。

str.format_map(mapping)

接收一個dict類型的參數mapping,結果相當於str.format(**mapping)。

<code>>>> '{name} is {age} old'.format_map(dict(name='john',age=30))
'john is 30 old'/<code>

str.index(sub[, start[, end]])

返回字符串在原字符串的區間[start,end)上的從左起的首個出現位置(也就是sub的首字符的索引值)。如果指定的區間內沒有sub子字符串,則引發 ValueError。start,end的解釋同上。

str.isalnum()

如果原字符串為非空,並且所有的字符都是字母或數字字符,則返回True,否則返回False。對於字符c,c.isalnum()等價於c.isalpha() or c.isdecimal() or c.isdigit(), or c.isnumeric().

str.isalpha()

如果原字符串為非空,並且所有的字符都是字母字符,則返回True,否則返回False。

str.isascii()

如果原字符串為非空,並且所有的字符都是ASCII,則返回True,否則返回False。在Uicode中ASCII的碼點範圍為U+0000-U+007F。

str.isdecimal()

如果原字符串為非空,並且所有的字符都是十進制字符,則返回True,否則返回False。十進制字符是那些可以用來形成以10為基數的數字的字符,正式的講,十進制字符是Unicode通用類別“Nd”中的字符。

str.isdigit()

如果原字符串為非空,並且所有的字符都是數字,則返回True,否則返回False。數字包括十進制字符和需要特殊處理的數字,如兼容性上標數字。數字包括了不能以十進制數字表示的數字,如Kharosthi數字。正式的講,數字是Unicode中具有屬性值Numeric_Type= digit或Numeric_Type=Decimal的字符。

str.isidentifier()

如果原字符串按照Python語言規範是有效的標識符,則返回True,否則返回False。

str.islower()

如果原字符串中至少有一個區分大小寫的字符,並且所有區分大小寫的字符都是小寫的,則返回True,否則返回False。

str.isnumeric()

如果原字符串不為空,且所有字符都為數字字符,則返回True,否則返回False。正式地講,數字字符是Unicode中所有具有屬性值Numeric_Type=Digit 或 Numeric_Type=Decimal或rNumeric_Type=Numeric的字符。

str.isprintable()

如果原字符串是空字符串或所有字符是可打印的字符,則返回True,否則返回False。不可打印字符是Unicode字符數據庫中定義為“Other”或“Separator”的字符,ASCII空格(0x20)除外,它被認為是可打印的。(注意,可打印字符也就是在字符串上調用repr()時不應該轉義的字符。它與向sys stdout或sys.stderr寫入的字符串的處理無關。)

str.isspace()

如果原字符串不為空,且所有的字符都為空白字符則返回True,否則返回False。

str.istitle()

如果原字符串不為空,且所有的字符都按標題方式大小寫則返回True,否則返回False。

str.isupper()

如果原字符串不為空,且所有的區分大小寫的字符都為大寫則返回True,否則返回False。

str.join(iterable)

返回由調用字符串作為分隔符的連接iterable中字符組成的字符串。如果iterable中存在任何非字符串的值,包括bytes,則引起TypeError。

str.ljust(width[, fillchar])

返回原字符串內容位於其左端的長度為width的字符串,如果原字符串的長度大於width,則使用fillchar填充,如果沒指定fillchar,則使用空格填充。如果原字串的長度小於等於width,則結果就為原字串。

str.lower()

返回將原字符串中區分大小寫的字符均變為小寫的字符串。

str.lstrip([chars])

返回將原字符串的前導字符串chars去除後的字符串,如果沒有指定chars,則默認移除原字符串所有的前導空格。


【關於“str的方法”內容未完,下一篇將繼續講解】

【結束】

篇尾寄語:萬丈高樓平地起,是否具有紮實的基礎決定一個人能否走遠以及能走多遠。Python的學習也是同樣的道理!


分享到:


相關文章: