字串

回報問題 查看原始碼 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

支援字串的語言內建類型。字串常值範例:

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 intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 None
。 可選位置,用於限制搜尋。

Elms

sequence string.elems()

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

endswith

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

如果字串結尾為 sub,則傳回 True,否則傳回 False,可選擇限制為 [start:end]start 為包含,end 為排除。

參數

參數 說明
sub 字串;或字串元組; 必要
要比對的字尾 (或替代字尾的元組)。
start intNone;預設為 0
。 測試從這個位置開始。
end int;或 None; 預設為 None
可選位置,用於停止比較。

尋找

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

傳回找到 sub 的第一個索引,如果沒有這樣的索引,則傳回 -1。可選擇限制為 [start:end]start 為包含和 end 為排除。

參數

參數 說明
sub 必要
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 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 intNone;預設為 None
。 可選位置,用於限制搜尋。

isalnum

bool string.isalnum()

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

isalpha

bool string.isalpha()

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

數字

bool string.isdigit()

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

islower

bool string.islower()

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

isspace

bool string.isspace()

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

istitle

bool string.istitle()

如果字串為大寫,且至少包含一個字元,則傳回 True。也就是說,每個大寫字元後面都必須接著一個未區分大小寫的字元 (例如空格),每個小寫字元後面也必須接著一個區分大小寫的字元 (例如大寫或小寫)。

isupper

bool string.isupper()

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

彙整

string string.join(elements)

傳回字串,其中引數的字串元素已使用此字串做為分隔符來連接。範例:
"|".join(["a", "b", "c"]) == "a|b|c"

參數

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

string string.lower()

傳回此字串的小寫版本。

lstrip

string string.lstrip(chars=None)

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

參數

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

分區

tuple string.partition(sep)

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

參數

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

移除前置字元

string string.removeprefix(prefix)

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

參數

參數 說明
prefix 必要
如果存在,則移除前置字元。

removesuffix

string string.removesuffix(suffix)

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

參數

參數 說明
suffix 必要
如果有這個字尾,就移除。

取代

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

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

參數

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

rfind

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

傳回找到 sub 的最後一個索引,如果沒有這樣的索引,則傳回 -1。您可以選擇將限制設為 [start:end]start 為包含,end 為排除。

參數

參數 說明
sub 必填
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end int; 或 None;預設值為 None
,這是要限制搜尋的選用位置。

rindex

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

傳回找到 sub 的最後一個索引,如果沒有此索引,則會擲回錯誤,可選擇限制為 [start:end]start 為包含,end 為排除。

參數

參數 說明
sub 必填
要尋找的子字串。
start intNone; 預設為 0
限制從這個位置搜尋。
end intNone;預設為 None
。 可選位置,用於限制搜尋。

分區

tuple string.rpartition(sep)

在上次出現的分隔符 sep 處,將輸入字串分割,並以 (前面、分隔符、後面) 的形式,將結果分割區傳回為三個元素的元組。如果輸入字串不含分隔符,rpartition 會傳回 ('', '', self)。

參數

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

rsplit

list string.rsplit(sep, maxsplit=None)

傳回字串中所有字詞的清單,並使用 sep 做為分隔符,可選擇將分割次數限制為 maxsplit。除了從右側分割之外,這個方法的運作方式與 split() 相同。

參數

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

Rrtrip

string string.rstrip(chars=None)

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

參數

參數 說明
chars 字串None;預設為 None
。 移除的字元,如果為 None,則會移除所有空格。

斯普利特

list string.split(sep, maxsplit=None)

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

參數

參數 說明
sep required
要分割的字串。
maxsplit intNone;預設值為 None
。 分割的最大數量。

splitlines

sequence string.splitlines(keepends=False)

會在行結尾處 ('\n'、'\r\n'、'\r') 分割字串,並將結果傳回為可變動的清單。

參數

參數 說明
keepends 預設值為 False
是否應在產生的清單中加入換行符號。

startswith

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

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

參數

參數 說明
sub 字串;或字串元組; 必要
要比對的前置字串 (或其他前置字串的元組)。
start int; 或 None;預設值為 0
從這個位置開始測試。
end int;或 None; 預設為 None
在此位置停止比較。

條紋

string string.strip(chars=None)

傳回字串的副本,其中會移除 chars 中出現的前置或尾隨字元。請注意,chars 既不是前置字串也不是後置字串:系統會移除其值的所有組合:
"aabcbcbaa".strip("ab") == "cbc"

參數

參數 說明
chars 字串None;預設為 None
。 移除的字元,如果為 None,則會移除所有空格。

title

string string.title()

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

較高

string string.upper()

傳回此字串的大寫版本。