Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python เริ่มต้นด้วยและลงท้ายด้วย:คำแนะนำทีละขั้นตอน

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