งูหลาม startswith()
ฟังก์ชันตรวจสอบว่าสตริงเริ่มต้นด้วยสตริงย่อยที่ระบุหรือไม่ หลาม endswith()
ตรวจสอบว่าสตริงลงท้ายด้วยสตริงย่อยหรือไม่ ทั้งสองฟังก์ชันส่งคืน True
หรือ False
.
บ่อยครั้งเมื่อคุณทำงานกับสตริงขณะตั้งโปรแกรม คุณอาจต้องการตรวจสอบว่าสตริงเริ่มต้นด้วยหรือลงท้ายด้วยค่าใดค่าหนึ่ง
ตัวอย่างเช่น หากคุณกำลังสร้างโปรแกรมที่รวบรวมหมายเลขโทรศัพท์ของผู้ใช้ คุณอาจต้องการตรวจสอบว่าผู้ใช้ได้ระบุรหัสประเทศของตนหรือไม่ หรือบางทีคุณกำลังสร้างโปรแกรมที่ตรวจสอบว่าชื่อผู้ใช้ลงท้ายด้วย e
สำหรับโปรโมชั่นพิเศษที่อาร์เคดของคุณกำลังทำอยู่
นั่นคือที่มาของฟังก์ชัน startswith()
และ endswith()
เข้ามาเลย startswith()
และ endswith()
สามารถใช้เพื่อกำหนดว่าสตริงเริ่มต้นด้วยหรือลงท้ายด้วยสตริงย่อยที่ระบุตามลำดับ
บทช่วยสอนนี้จะกล่าวถึงวิธีการใช้ทั้ง Python startswith()
และ endswith()
วิธีการตรวจสอบว่าสตริงขึ้นต้นด้วยหรือลงท้ายด้วยสตริงย่อยเฉพาะหรือไม่ นอกจากนี้ เราจะดำเนินการตามตัวอย่างของแต่ละวิธีที่ใช้ในโปรแกรม
ทบทวนดัชนีสตริง
ก่อนพูดคุยเกี่ยวกับ startWith และ endsWith เราควรใช้เวลาสักครู่เพื่อรีเฟรชความรู้ของเราเกี่ยวกับดัชนีสตริง python
สตริงคือลำดับของอักขระ เช่น ตัวเลข ช่องว่าง ตัวอักษร และสัญลักษณ์ คุณสามารถเข้าถึงส่วนต่างๆ ของสตริงได้ในลักษณะเดียวกับที่ทำกับรายการ
ทุกอักขระในสตริงมีค่าดัชนี ดัชนีคือตำแหน่งที่อักขระอยู่ในสตริง หมายเลขดัชนีเริ่มต้นด้วย 0 ตัวอย่างเช่น นี่คือสตริง Python Substrings
ด้วยเลขดัชนี:
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
P | ย | t | h | o | n | | ส | คุณ | b | s | t | ร | ฉัน | n | g | s |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
อักขระตัวแรกในสตริงคือ P
ด้วยค่าดัชนี 0 อักขระตัวสุดท้ายของเรา s
มีค่าดัชนีเท่ากับ 16 เนื่องจากอักขระแต่ละตัวมีหมายเลขดัชนีของตัวเอง เราจึงสามารถจัดการสตริงตามตำแหน่งของตัวอักษรแต่ละตัวได้
Python เริ่มด้วย
startswith()
วิธีสตริงตรวจสอบว่าสตริงเริ่มต้นด้วยสตริงย่อยเฉพาะหรือไม่ หากสตริงเริ่มต้นด้วยสตริงย่อยที่ระบุ startswith()
วิธีการคืนค่า True; มิฉะนั้น ฟังก์ชันจะคืนค่าเป็นเท็จ
นี่คือไวยากรณ์สำหรับ Python startswith()
วิธีการ:
string_name.startswith(substring, start_pos, end_pos)
startswith()
โดยวิธีรับพารามิเตอร์ 3 ตัว ดังนี้:
- สตริงย่อย เป็นสตริงที่จะตรวจสอบภายในสตริงที่ใหญ่กว่า (จำเป็น)
- start_pos เป็นตำแหน่งดัชนีเริ่มต้นที่การค้นหาสตริงย่อยควรเริ่มต้น (ตัวเลือก)
- end_pos คือตำแหน่งดัชนีที่การค้นหาสตริงย่อยควรสิ้นสุด (ทางเลือก)
พารามิเตอร์สตริงย่อย คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ . ดังนั้น หากคุณกำลังมองหา s
ในสตริง มันจะค้นหาเฉพาะอินสแตนซ์ของ s
. ตัวพิมพ์เล็กเท่านั้น . หากคุณต้องการค้นหาตัวพิมพ์ใหญ่ S
คุณจะต้องระบุอักขระนั้น นอกจากนี้ โปรดจำไว้ว่าตำแหน่งดัชนีใน Python เริ่มต้นที่ ซึ่งจะส่งผลต่อ
start_pos
และ end_pos
พารามิเตอร์
มาดูตัวอย่างเพื่อแสดง startswith()
วิธีการดำเนินการ
สมมติว่าเราเป็นโอเปอเรเตอร์อาร์เคดและเรากำลังจัดโปรโมชั่นพิเศษ ลูกค้าทุกรายที่มีชื่อขึ้นต้นด้วย J
มีสิทธิ์ได้รับตั๋วเพิ่ม 200 ใบสำหรับทุกๆ 1,000 ตั๋วที่พวกเขาชนะที่อาร์เคด ในการแลกตั๋วเหล่านี้ ลูกค้าต้องสแกนบัตรอาร์เคดที่โต๊ะ ซึ่งดำเนินการโปรแกรมเพื่อตรวจสอบอักษรตัวแรกของชื่อของพวกเขา
นี่คือรหัสที่เราสามารถใช้ตรวจสอบว่าตัวอักษรตัวแรกของชื่อลูกค้าเท่ากับ J
หรือไม่ :
customer_name = "John Milton" print(customer_name.startswith("J"))
รหัสของเราส่งคืน:จริง ในบรรทัดแรกของโค้ด เรากำหนดตัวแปรชื่อ customer_name
ซึ่งเก็บชื่อลูกค้าของเรา จากนั้น เราใช้ startswith()
เพื่อตรวจสอบว่า “customer_name
” ตัวแปรเริ่มต้นด้วย J
. ในกรณีนี้ ชื่อลูกค้าของเราขึ้นต้นด้วย J
ดังนั้นโปรแกรมของเราจึงคืนค่าเป็น True
หากคุณไม่ระบุ start_pos
หรือ end_pos
อาร์กิวเมนต์ startswith()
จะค้นหาเฉพาะสตริงย่อยที่คุณระบุไว้ที่จุดเริ่มต้นของสตริงเท่านั้น
ตอนนี้ สมมติว่าเรากำลังเปลี่ยนแปลงการส่งเสริมการขายของเราและเฉพาะผู้ที่มีชื่อที่มี s
ระหว่างอักษรตัวที่สองและตัวที่ห้าของชื่อเต็ม เราสามารถตรวจสอบเพื่อดูว่าชื่อเต็มของลูกค้ามี s
. หรือไม่ ระหว่างอักษรตัวที่สองและตัวที่ห้าของชื่อเต็มโดยใช้รหัสนี้:
customer_name = "John Milton" print(customer_name.startswith("s", 1, 5))
รหัสของเราส่งคืน:เท็จ ในโค้ดของเรา เราได้ระบุทั้ง start_pos
และ end_pos
พารามิเตอร์ซึ่งตั้งค่าเป็น 1 และ 5 ตามลำดับ สิ่งนี้บอก startswith()
เพียงเพื่อค้นหาตัวอักษร s
ระหว่างอักขระที่สองและห้าในสตริงของเรา (อักขระที่มีค่าดัชนีระหว่าง 1 ถึง 5)
Python ลงท้ายด้วย
endswith()
วิธีการจัดรูปแบบสตริงสามารถใช้เพื่อตรวจสอบว่าสตริงลงท้ายด้วยค่าใดค่าหนึ่งหรือไม่ endswith()
ทำงานในลักษณะเดียวกับ startswith()
เมธอด แต่แทนที่จะค้นหาสตริงย่อยที่จุดเริ่มต้นของสตริง มันจะค้นหาในตอนท้าย
นี่คือไวยากรณ์สำหรับ endswith()
วิธีการ:
string_name.endswith(substring, start_pos, end_pos)
คำจำกัดความสำหรับพารามิเตอร์เหล่านี้เหมือนกับที่ใช้กับ startswith()
วิธีการ
มาสำรวจตัวอย่างเพื่อแสดงให้เห็นว่า endswith()
สามารถใช้วิธีการใน Python สมมติว่าเรากำลังดำเนินการสายการบินและต้องการดำเนินการคืนเงินในบัตรเครดิตของลูกค้า ในการดำเนินการดังกล่าว เราจำเป็นต้องทราบตัวเลขสี่หลักสุดท้ายของหมายเลขบัตรเพื่อตรวจสอบกับหมายเลขที่เรามีอยู่
นี่คือตัวอย่าง endswith()
ใช้เพื่อตรวจสอบว่าตัวเลขสี่หลักที่ลูกค้าให้มาตรงกับที่บันทึกไว้หรือไม่:
on_file_credit_card = '4242 4242 4242 4242' matches = on_file_credit_card.endswith('4242') print(matches)
โปรแกรมของเราส่งคืน:จริง ในกรณีนี้ ลูกค้าของเราได้ให้ตัวเลข 4242
. แก่เรา . เราใช้ endswith()
วิธีตรวจสอบว่าหมายเลขเหล่านั้นตรงกับที่เรามีอยู่หรือไม่ ในกรณีนี้ บัตรเครดิตในไฟล์ลงท้ายด้วย 4242
ดังนั้นโปรแกรมของเราจึงคืนค่าเป็น True
เรายังสามารถใช้ตัวเลือก start_pos
และ end_pos
อาร์กิวเมนต์เพื่อค้นหาสตริงย่อยที่ตำแหน่งดัชนีบางตำแหน่ง
สมมติว่าเรากำลังเปิดร้านกาแฟและเรามีสตริงที่เก็บทุกอย่างที่ลูกค้าสั่ง เชฟของเราต้องการทราบว่าคำสั่งซื้อมี Ham Sandwich
. หรือไม่ และรู้ความยาวของสตริงของเราคือ 24 อักขระห้าตัวสุดท้ายของสตริงของเรามี ORDER
. ดังนั้นเราจึงต้องการข้ามอักขระห้าตัวแรกในสตริงของเรา
เราสามารถดำเนินการค้นหานี้โดยใช้รหัสต่อไปนี้:
order = "ORDER Latte Ham Sandwich" includes_ham_sandwich = order.endswith("Ham Sandwich", 0, 19) print(includes_ham_sandwich)
รหัสของเราส่งคืน:True
.
ในตัวอย่างของเรา เราระบุ Ham Sandwich
เป็นพารามิเตอร์สตริงย่อยของเรา
จากนั้นเราระบุ เป็น
start_pos
เนื่องจากเราจะใช้ end_pos
พารามิเตอร์และ start_pos
ไม่สามารถเว้นว่างได้เมื่อเราใช้ end_pos
. เราระบุ 19 เป็น end_pos
. ของเรา อาร์กิวเมนต์เพราะอักขระห้าตัวสุดท้ายของสตริงของเราคือ ORDER
และอักขระก่อนหน้านั้นเป็นช่องว่าง
สตริงของเราลงท้ายด้วย Ham Sandwich
ดังนั้นโปรแกรมของเราจึงคืนค่า True หากสตริงของเราไม่ได้ลงท้ายด้วย Ham Sandwich
คำต่อท้ายจะคืนค่าเป็นเท็จ
Python ลงท้ายด้วยรายการ
นอกจากนี้ endswith()
สามารถรับรายการหรือทูเพิลเป็น substring
อาร์กิวเมนต์ ซึ่งช่วยให้คุณตรวจสอบว่าสตริงลงท้ายด้วยหนึ่งในหลายสตริงหรือไม่ สมมติว่าเรากำลังสร้างโปรแกรมที่ตรวจสอบว่าชื่อไฟล์ลงท้ายด้วย .mp3
หรือ .mp4
. เราสามารถดำเนินการตรวจสอบนี้โดยใช้รหัสต่อไปนี้:
potential_extensions = ['.mp3', '.mp4'] file_name = 'music.mp3' print(file_name.endswith(potential_extensions))
รหัสของเราส่งคืน:จริง ในตัวอย่างนี้ เราได้สร้างอาร์เรย์ชื่อ potential_extensions
ที่เก็บรายการนามสกุลไฟล์ จากนั้น เราประกาศตัวแปรชื่อ file_name
ซึ่งเก็บชื่อไฟล์ที่ต้องการตรวจสอบนามสกุลของไฟล์
สุดท้าย เราใช้ endswith()
วิธีตรวจสอบว่าสตริงของเราลงท้ายด้วยส่วนขยายใด ๆ ใน potential_extensions
. ของเราหรือไม่ รายการ. ในกรณีนี้ ชื่อไฟล์ของเราลงท้ายด้วย .mp3
ซึ่งระบุไว้ใน potential_extensions
. ของเรา รายการ ดังนั้นโปรแกรมของเราจึงคืนค่าเป็น True
บทสรุป
startswith()
และ endswith()
สามารถใช้เมธอดเพื่อตรวจสอบว่าสตริง Python ขึ้นต้นด้วยหรือลงท้ายด้วยสตริงย่อยเฉพาะตามลำดับ แต่ละเมธอดประกอบด้วยพารามิเตอร์ทางเลือกที่ช่วยให้คุณระบุตำแหน่งที่การค้นหาควรเริ่มต้นและสิ้นสุดภายในสตริง
บทช่วยสอนนี้กล่าวถึงวิธีใช้ทั้ง startswith()
และ endswith()
และสำรวจตัวอย่างบางส่วนของแต่ละวิธีในการดำเนินการ ตอนนี้คุณพร้อมที่จะตรวจสอบว่าสตริงขึ้นต้นด้วยหรือลงท้ายด้วยสตริงย่อยโดยใช้ startswith()
และ endswith()
วิธีการอย่างผู้เชี่ยวชาญ