字串

回報問題 查看原始碼 夜間 7.2 7.1 7.0 6.5 6.4 支援字串的內建類型。字串常值範例:
a = 'abc\ndef'
b = "ab'cd"
c = """multiline string"""

# Strings support slicing (negative index starts from the end):
x = "hello"[2:4]  # "ll"
y = "hello"[1:-1]  # "ell"
z = "hello"[:4]  # "hell"# Slice steps can be used, too:
s = "hello"[::2] # "hlo"
t = "hello"[3:0:-1] # "lle"
字串無法直接疊代,請使用 .elems() 方法疊代其字元。範例:
"bc" in "abcd"   # evaluates to True
x = [c for c in "abc".elems()]  # x == ["a", "b", "c"]
不允許隱含字串。請改用 + 運算子。比較運算子會按字母順序比較;使用 == 測試是否相等。

成員

大寫字母

string string.capitalize()

傳回字串副本,其第一個字元 (如有) 是大寫和其餘小寫。此方法不支援非 ASCII 字元。

數量

int string.count(sub, start=0, end=None)

傳回字串中子字串 sub 的出現 (非重疊) 次數,可選擇限制為 [start:end]start 表示包含在內,end 則不包含。

參數

參數 說明
sub 必要
要計算的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

Elms

sequence string.elems()

傳回可疊代值,其中包含字串的連續 1 個元素子字串。等同於 [s[i] for i in range(len(s))],只是傳回的值可能不是清單。

結尾為

bool string.endswith(sub, start=0, end=None)

如果字串以 sub 結尾,則傳回 True,否則傳回 False,否則可選擇限制為 [start:end]start 表示包含且 end 不包含在範圍內。

參數

參數 說明
sub string;字串tuple; 必要
要比對的後置字串 (或替代後置字元的元組)。
start int;或 None; 預設值為 0
從這個位置開始進行測試。
end int;或 None; 預設值為 None
可以停止比較的選擇性位置

尋找

int string.find(sub, start=0, end=None)

傳回找到 sub 的第一個索引,如果沒有這類索引,則傳回 -1,並視需要限制為 [start:end]start 表示包含且 end 排除。

參數

參數 說明
sub 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

format

string string.format(*args, **kwargs)

執行字串內插。格式字串包含以大括號 {} 括住的替換欄位。凡是未包含在大括號中的內容,都視為常值文字,系統會直接複製到輸出內容。如果您需要在文字文字中加入大括號字元,只要加上一倍即可逸出:{{}}替換欄位可以是名稱、數字或空白欄位。系統會使用 str 函式將值轉換為字串。
# Access in order:
"{} < {}".format(4, 5) == "4 < 5"
# Access by position:
"{1}, {0}".format(2, 1) == "1, 2"
# Access by name:
"x{key}x".format(key = 2) == "x2x"

參數

參數 說明
args 預設值為 ()
引數清單。
kwargs 預設值為 {}
引數字典。

索引

int string.index(sub, start=0, end=None)

傳回找到 sub 的第一個索引,如果沒有這類索引,就會引發錯誤,或者是選擇將 [start:end]start 限制為包含成包含且 end 排除。

參數

參數 說明
sub 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

Isalnum

bool string.isalnum()

如果字串中的所有字元都是英數字元 ([a-zA-Z0-9]),且至少有一個字元,則傳回 True。

Isalpha

bool string.isalpha()

如果字串中的所有字元都是英文字母 ([a-zA-Z]),且至少有一個字元,則傳回 True。

數字

bool string.isdigit()

如果字串中的所有字元都是數字 ([0-9]),且至少有一個字元,則傳回 True。

偏離

bool string.islower()

如果字串中的所有大小寫字元都是小寫,且至少有一個字元,則傳回 True。

Isspace

bool string.isspace()

如果所有字元都是空白字元,且字串包含至少一個字元,則傳回 True。

istitle

bool string.istitle()

如果字串是每字字首大寫,且包含至少一個字元,則傳回 True。也就是說,所有大寫字元都必須接在不區分大小寫的字元 (例如空白字元),而且所有小寫字元都必須跟著大小寫 (例如大寫或小寫)。

伊斯佩普

bool string.isupper()

如果字串中的所有大小寫字元都是大寫,且至少有一個字元,則傳回 True。

彙整

string string.join(elements)

傳回字串,其中的引數字串元素會以此字串聯結為分隔符。範例:
"|".join(["a", "b", "c"]) == "a|b|c"

參數

參數 說明
elements 必要
要彙整的物件。

string string.lower()

傳回此字串的小寫版本。

垃圾清單

string string.lstrip(chars=None)

傳回移除 chars 中的前置字元的字串副本。請注意,chars 不是前置字元:系統會移除其值的所有組合:
"abcba".lstrip("ba") == "cba"

參數

參數 說明
chars string;或 None; 預設值為 None
要移除的字元,或所有空白字元 (如果 None)。

分區

tuple string.partition(sep)

在分隔符 sep 的第一個出現時分割輸入字串,並將產生的分區傳回為表單的三元素元組 (之前、分隔符、之後)。如果輸入字串不含分隔符,則會傳回分區 (self, '', '')。

參數

參數 說明
sep 必要
要分割的字串。

removeprefix

string string.removeprefix(prefix)

如果字串開頭為 prefix,則會傳回已移除此前置字元的新字串。否則,則會傳回字串。

參數

參數 說明
prefix 必要
要移除的前置字串 (如果有的話)。

removesuffix

string string.removesuffix(suffix)

如果字串結尾是 suffix,則傳回已移除後置字串的新字串。否則,則會傳回字串。

參數

參數 說明
suffix 必要
要移除的後置字串 (如有)。

取代

string string.replace(old, new, count=-1)

傳回字串副本,其中出現 old 被取代為 new,並視需要將取代次數限制為 count

參數

參數 說明
old 必要
要替換的字串。
new 必要
要取代的字串。
count 預設值為 -1
替換項目數量上限。如果省略此值或為負數,表示沒有限制。

rfind

int string.rfind(sub, start=0, end=None)

傳回找到 sub 的最後一個索引,如果沒有這類索引,則傳回 -1,並視需要限制為 [start:end]start 表示包含且 end 排除。

參數

參數 說明
sub 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

rindex

int string.rindex(sub, start=0, end=None)

傳回找到 sub 的最後一個索引,如果沒有這類索引,就會引發錯誤,可選擇限制為 [start:end]start 表示包含且 end 排除。

參數

參數 說明
sub 必要
要尋找的子字串。
start int;或 None; 預設值為 0
限制搜尋這個位置。
end int;或 None; 預設值為 None
(可限定搜尋的範圍)。

分區

tuple string.rpartition(sep)

在分隔符 sep 最後一個出現的輸入字串分割輸入字串,並將產生的分區傳回為表單的三元素元組 (之前、分隔符、之後)。如果輸入字串不含分隔符,則可傳回 '', '', 。

參數

參數 說明
sep 必要
要分割的字串。

rsplit

list string.rsplit(sep, maxsplit=None)

傳回字串中所有字詞的清單,使用 sep 做為分隔符,並視需要將分割次數限制為 maxsplit。除了從右側分割外,此方法的運作方式會與 Split() 一樣。

參數

參數 說明
sep 必要
要分割的字串。
maxsplit int;或 None; 預設值為 None
分割數量上限。

Rrtrip

string string.rstrip(chars=None)

傳回移除 chars 中結尾字元的字串副本。請注意,chars 並非後置字串,其值的所有組合都會遭到移除:
"abcbaa".rstrip("ab") == "abc"

參數

參數 說明
chars string;或 None; 預設值為 None
要移除的字元,或所有空白字元 (如果 None)。

斯普利特

list string.split(sep, maxsplit=None)

傳回字串中所有字詞的清單,使用 sep 做為分隔符,並視需要將分割次數限制為 maxsplit

參數

參數 說明
sep 必要
要分割的字串。
maxsplit int;或 None; 預設值為 None
分割數量上限。

分段線

sequence string.splitlines(keepends=False)

將字串分割在行邊界 ('\n', '\r\n', '\r') 並傳回結果,做為新的可變動清單。

參數

參數 說明
keepends 預設值為 False
是否應在結果清單中納入換行符號。

開頭是

bool string.startswith(sub, start=0, end=None)

如果字串開頭為 sub,則傳回 True,否則傳回 False,否則可選擇限制為 [start:end]start 表示包含且 end 不包含在範圍內。

參數

參數 說明
sub string;字串tuple; 必要
要比對的前置字元 (或替代前置字元的組合)。
start int;或 None; 預設值為 0
從這個位置開始進行測試。
end int;或 None; 預設值為 None
請停止比較這個位置。

長條

string string.strip(chars=None)

傳回 chars 中的開頭或結尾字元移除的字串副本。請注意,chars 既不是前置字元,也不是後置字串,其值的所有組合將遭到移除:
"aabcbcbaa".strip("ab") == "cbc"

參數

參數 說明
chars string;或 None; 預設值為 None
要移除的字元,或所有空白字元 (如果 None)。

title

string string.title()

將輸入字串轉換成每字字首大寫格式,亦即每個字詞的開頭都是大寫字母,其餘字母則為小寫。在這個情況下,一個字詞是指嚴格說的字母序列。此方法不支援補充 Unicode 字元。

較高

string string.upper()

傳回此字串的大寫版本。