สตริง

รายงานปัญหา ดูแหล่งที่มา รุ่น Nightly · 7.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
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

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

Isalnum

bool string.isalnum()

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

Isalpha

bool string.isalpha()

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

isdigit

bool string.isdigit()

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

ต่ำกว่า

bool string.islower()

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

Isspace

bool string.isspace()

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

istitle

bool string.istitle()

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

isupper

bool string.isupper()

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

ผนวก

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 สตริง หรือ None ค่าเริ่มต้นคือ None
อักขระที่จะนำออก หรือเว้นวรรคทั้งหมดหากไม่มี

พาร์ติชัน

tuple string.partition(sep)

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

พารามิเตอร์

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

นำคำนำหน้าออก

string string.removeprefix(prefix)

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

พารามิเตอร์

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

removesuffix

string string.removesuffix(suffix)

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

พารามิเตอร์

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

แทนที่

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

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
old required
The string to be replaced.
new required
สตริงที่จะแทนที่
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 ครั้งล่าสุด และแสดงผลพาร์ติชันที่ได้เป็นทูเปิล 3 องค์ประกอบในรูปแบบ (ก่อน ตัวคั่น หลัง) หากสตริงอินพุตไม่มีตัวคั่น rpartition จะแสดงผล ('', '', self)

พารามิเตอร์

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

rsplit

list string.rsplit(sep, maxsplit=None)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
sep ต้องระบุ
สตริงที่จะแบ่ง
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 ต้องระบุ
สตริงที่จะแบ่ง
maxsplit int หรือ None ค่าเริ่มต้นคือ None
จำนวนการแยกสูงสุด

เส้นแบ่ง

sequence string.splitlines(keepends=False)

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

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
keepends ค่าเริ่มต้นคือ 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()

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

ส่วนบน

string string.upper()

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