สตริง

รายงานปัญหา ดูซอร์สโค้ด รุ่น Nightly · 8.0 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 string; ต้องระบุ
ส่วนย่อยของสตริงที่จะนับ
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

elems

sequence string.elems()

แสดงผลค่าที่วนซ้ำได้ซึ่งมีสตริงย่อย 1 องค์ประกอบที่ต่อเนื่องกันของสตริง เทียบเท่ากับ [s[i] for i in range(len(s))] ยกเว้นว่าค่าที่แสดงผลอาจไม่ใช่รายการ

endswith

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

แสดงผลเป็น "จริง" หากสตริงลงท้ายด้วย sub มิเช่นนั้นแสดงผลเป็น "เท็จ" โดยสามารถเลือกจำกัดให้ใช้เฉพาะ [start:end] ได้ โดย start จะรวมทุกค่าไว้ และ end จะรวมเฉพาะบางค่า

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub สตริง หรือทูเปิลของสตริง ต้องระบุ
ส่วนต่อท้าย (หรือทูเปิลของส่วนต่อท้ายทางเลือก) ที่จะจับคู่
start int หรือ None ค่าเริ่มต้นคือ 0
การทดสอบเริ่มต้นที่ตําแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่จะหยุดการเปรียบเทียบ (ไม่บังคับ)

ค้นหา

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

แสดงผลดัชนีแรกที่พบ sub หรือ -1 หากไม่มีดัชนีดังกล่าว โดยสามารถเลือกจำกัดให้แสดงเฉพาะ [start:end], start แบบรวม และ end แบบไม่รวม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub string; ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

รูปแบบ

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 string; ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

isalnum

bool string.isalnum()

แสดงค่า True หากอักขระทั้งหมดในสตริงเป็นตัวอักษรและตัวเลขคละกัน ([a-zA-Z0-9]) และมีอักขระอย่างน้อย 1 ตัว

isalpha

bool string.isalpha()

แสดงค่า True หากอักขระทั้งหมดในสตริงเป็นตัวอักษร ([a-zA-Z]) และมีอักขระอย่างน้อย 1 ตัว

isdigit

bool string.isdigit()

แสดงค่า "จริง" หากอักขระทั้งหมดในสตริงเป็นตัวเลข ([0-9]) และมีอักขระอย่างน้อย 1 ตัว

islower

bool string.islower()

แสดงค่า True หากอักขระทั้งหมดในสตริงเป็นตัวพิมพ์เล็กและมีอักขระอย่างน้อย 1 ตัว

isspace

bool string.isspace()

แสดงค่า True หากอักขระทั้งหมดเป็นอักขระเว้นวรรคและสตริงมีอักขระอย่างน้อย 1 ตัว

istitle

bool string.istitle()

แสดงค่า True หากสตริงเป็นตัวพิมพ์ใหญ่ทั้งหมดและมีอักขระอย่างน้อย 1 ตัว ซึ่งหมายความว่าอักขระตัวพิมพ์ใหญ่ทุกตัวต้องตามหลังอักขระที่ไม่มีตัวพิมพ์ (เช่น เว้นวรรค) และอักขระตัวพิมพ์เล็กทุกตัวต้องตามหลังอักขระที่มีตัวพิมพ์ (เช่น ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก)

isupper

bool string.isupper()

แสดงผลเป็น "จริง" หากอักขระทั้งหมดในสตริงเป็นตัวพิมพ์ใหญ่และมีอักขระอย่างน้อย 1 ตัว

ผนวก

string string.join(elements)

แสดงผลสตริงที่องค์ประกอบสตริงของอาร์กิวเมนต์เชื่อมต่อกันด้วยสตริงนี้เป็นตัวคั่น ตัวอย่าง:
"|".join(["a", "b", "c"]) == "a|b|c"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
elements required
ออบเจ็กต์ที่จะเข้าร่วม

ต่ำกว่า

string string.lower()

แสดงผลสตริงนี้เวอร์ชันตัวพิมพ์เล็ก

lstrip

string string.lstrip(chars=None)

แสดงผลสําเนาของสตริงที่นําอักขระหน้าซึ่งปรากฏใน chars ออก โปรดทราบว่า chars ไม่ใช่คำนำหน้า ระบบจะนำชุดค่าผสมทั้งหมดของค่านี้ออก
"abcba".lstrip("ba") == "cba"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
chars สตริง หรือ None ค่าเริ่มต้นคือ None
อักขระที่จะนำออก หรือเว้นวรรคทั้งหมดหากไม่มี

พาร์ติชัน

tuple string.partition(sep)

แยกสตริงอินพุตที่ตำแหน่งแรกที่พบตัวคั่น sep และแสดงผลพาร์ติชันที่ได้เป็นทูเปิล 3 องค์ประกอบในรูปแบบ (ก่อน ตัวคั่น หลัง) หากสตริงอินพุตไม่มีตัวคั่น พาร์ติชันจะแสดงผลเป็น (self, '', '')

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep string; ต้องระบุ
สตริงที่จะแบ่ง

removeprefix

string string.removeprefix(prefix)

หากสตริงขึ้นต้นด้วย prefix ระบบจะแสดงสตริงใหม่โดยนำคำนำหน้าออก ไม่เช่นนั้น ระบบจะแสดงผลสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
prefix สตริง; ต้องระบุ
คำนำหน้าที่จะนำออกหากมี

removesuffix

string string.removesuffix(suffix)

หากสตริงลงท้ายด้วย suffix ระบบจะแสดงผลสตริงใหม่โดยนําส่วนต่อท้ายออก ไม่เช่นนั้น ระบบจะแสดงผลสตริง

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
suffix string; ต้องระบุ
ส่วนต่อท้ายที่จะนําออกหากมี

แทนที่

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

แสดงผลสําเนาของสตริงที่มีการแทนที่ old ด้วย new โดยอาจจํากัดจํานวนการแทนที่ไว้ที่ count

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
old string; required
สตริงที่จะแทนที่
new string; required
สตริงที่จะแทนที่
count int; ค่าเริ่มต้นคือ -1
จำนวนการแทนที่สูงสุด หากละเว้นหรือค่าเป็นลบ ระบบจะไม่จำกัด

rfind

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

แสดงผลอินเด็กซ์สุดท้ายที่พบ sub หรือ -1 หากไม่มีอินเด็กซ์ดังกล่าว โดยสามารถเลือกจำกัดให้แสดงผลเฉพาะ [start:end], start แบบรวม และ end แบบไม่รวม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub string; ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

rindex

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

แสดงผลดัชนีสุดท้ายที่พบ sub หรือแสดงข้อผิดพลาดหากไม่มีดัชนีดังกล่าว โดยสามารถเลือกจำกัดให้แสดงเฉพาะ [start:end], start แบบรวม และ end แบบไม่รวม

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sub string; ต้องระบุ
สตริงย่อยที่จะค้นหา
start int หรือ None ค่าเริ่มต้นคือ 0
จำกัดให้ค้นหาจากตำแหน่งนี้
end int หรือ None ค่าเริ่มต้นคือ None
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

rpartition

tuple string.rpartition(sep)

แยกสตริงอินพุตที่ตำแหน่งที่พบตัวคั่น sep ครั้งล่าสุด และแสดงผลพาร์ติชันที่ได้เป็นทูเปิล 3 องค์ประกอบในรูปแบบ (ก่อน ตัวคั่น หลัง) หากสตริงอินพุตไม่มีตัวคั่น rpartition จะแสดงผลเป็น ('', '', self)

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep string; ต้องระบุ
สตริงที่จะแบ่ง

rsplit

list string.rsplit(sep, maxsplit=None)

แสดงรายการคำทั้งหมดในสตริงโดยใช้ sep เป็นตัวคั่น โดยเลือกจำกัดจำนวนการแยกเป็น maxsplit ยกเว้นการแยกจากด้านขวา วิธีการนี้จะทํางานเหมือนกับ split()

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep string; ต้องระบุ
สตริงที่จะแบ่ง
maxsplit int หรือ None ค่าเริ่มต้นคือ None
จำนวนการแยกสูงสุด

rstrip

string string.rstrip(chars=None)

แสดงผลสําเนาของสตริงที่ลบอักขระต่อท้ายที่ปรากฏใน chars ออก โปรดทราบว่า chars ไม่ใช่ส่วนต่อท้าย ระบบจะนำชุดค่าผสมทั้งหมดของค่านี้ออก
"abcbaa".rstrip("ab") == "abc"

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
chars สตริง หรือ None ค่าเริ่มต้นคือ None
อักขระที่จะนำออก หรือเว้นวรรคทั้งหมดหากไม่มี

สปลิต

list string.split(sep, maxsplit=None)

แสดงรายการคำทั้งหมดในสตริงโดยใช้ sep เป็นตัวคั่น โดยเลือกจำกัดจำนวนการแยกเป็น maxsplit

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep string; ต้องระบุ
สตริงที่จะแบ่ง
maxsplit int หรือ None ค่าเริ่มต้นคือ None
จำนวนการแยกสูงสุด

splitlines

sequence string.splitlines(keepends=False)

แยกสตริงที่ขอบเขตบรรทัด ('\n', '\r\n', '\r') และแสดงผลลัพธ์เป็นลิสต์ใหม่แบบปรับเปลี่ยนได้

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
keepends bool; ค่าเริ่มต้นคือ False
ควรรวมการขึ้นบรรทัดใหม่ไว้ในรายการผลลัพธ์หรือไม่

startswith

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

แสดงผลเป็น "จริง" หากสตริงขึ้นต้นด้วย sub มิเช่นนั้นแสดงผลเป็น "เท็จ" โดยสามารถเลือกจำกัดให้ใช้เฉพาะ [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
อักขระที่จะนำออก หรือเว้นวรรคทั้งหมดหากไม่มี

title

string string.title()

แปลงสตริงอินพุตเป็น Title Case กล่าวคือ ทุกคำขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่ ส่วนอักษรที่เหลือเป็นตัวพิมพ์เล็ก ในบริบทนี้ คําหมายถึงลําดับตัวอักษรอย่างเคร่งครัด วิธีนี้ไม่รองรับอักขระ Unicode เสริม

ส่วนบน

string string.upper()

แสดงผลสตริงนี้ในเวอร์ชันตัวพิมพ์ใหญ่