งูหลาม 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() วิธีการอย่างผู้เชี่ยวชาญ