สตริง

รายงานปัญหา ดูแหล่งที่มา รุ่น 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 ต้องระบุ
ส่วนย่อยของสตริงที่จะนับ
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()

แสดงค่า 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 required
สตริงที่จะแบ่ง

removeprefix

string string.removeprefix(prefix)

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

พารามิเตอร์

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

removesuffix

string string.removesuffix(suffix)

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

พารามิเตอร์

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

แทนที่

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
ตําแหน่งที่ไม่บังคับก่อนการจํากัดการค้นหา

rpartition

tuple string.rpartition(sep)

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

พารามิเตอร์

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

rsplit

list string.rsplit(sep, maxsplit=None)

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

พารามิเตอร์

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

splitlines

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()

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

ส่วนบน

string string.upper()

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