Python สตริง find() วิธีการพร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
Python เมธอด `string find()` เป็นเมธอดในตัวที่ส่งคืนดัชนีของการปรากฏครั้งแรกของสตริงย่อยภายในสตริงหลัก โดยจะส่งคืน `-1` เมื่อไม่พบสตริงย่อยนั้น เพื่อหลีกเลี่ยงข้อผิดพลาด
ความหมายของ Python สตริงค้นหา ()?
Python ค้นหาสตริง () เป็นฟังก์ชันที่มีอยู่ใน Python ไลบรารีนี้ใช้สำหรับค้นหาดัชนีของการปรากฏครั้งแรกของสตริงย่อยภายในสตริงที่กำหนด ฟังก์ชัน find() จะส่งคืนค่า -1 แทนที่จะโยนข้อยกเว้นเมื่อสตริงย่อยที่ระบุไม่อยู่ในสตริงที่กำหนด นี่เป็นหนึ่งใน... Pythonใช้งานมากที่สุด วิธีการสตริง สำหรับการค้นหาข้อความ
ไวยากรณ์ของ Python ค้นหาสตริง ()
ไวยากรณ์พื้นฐานของ Python find() ฟังก์ชันเป็นดังนี้:
string.find(substring,start,end)
พารามิเตอร์สำหรับเมธอด find()
ต่อไปนี้คือพารามิเตอร์ทั้งสามของฟังก์ชัน find() ใน Python:
- สตริงย่อย: ส่วนย่อยของข้อความที่คุณต้องการค้นหาในข้อความที่กำหนด
- เริ่มต้น: (ตัวเลือกเสริม) ค่าเริ่มต้นที่จะใช้ในการค้นหาสตริงย่อย โดยค่าเริ่มต้นคือ 0
- ปลาย: (ตัวเลือกเสริม) ค่าสุดท้ายที่จะสิ้นสุดการค้นหาสตริงย่อย โดยค่าเริ่มต้นจะเป็นความยาวของสตริง
ตัวอย่างของเมธอด find() ที่มีค่าเริ่มต้น
พารามิเตอร์ที่ส่งไปยัง Python เมธอด find() รับค่าเป็นสตริงย่อย ซึ่งก็คือสตริงที่คุณต้องการค้นหา บวกกับค่า start และ end โดยค่าเริ่มต้นของ start คือ 0 และค่า end คือความยาวของสตริง
ในตัวอย่างนี้ เราจะใช้เมธอด find() ใน Python ด้วยค่าเริ่มต้น
เมธอด find() จะค้นหาสตริงย่อยและให้ตำแหน่งของสตริงย่อยนั้นที่ปรากฏครั้งแรก หากสตริงย่อยนั้นปรากฏหลายครั้งในสตริงที่กำหนด เมธอดก็จะยังคงส่งคืนดัชนีหรือตำแหน่งของสตริงย่อยแรกที่ปรากฏอยู่ดี
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))
Output:
The position of Tutorials is at: 12
ตัวอย่างของ find() โดยใช้อาร์กิวเมนต์เริ่มต้น
คุณสามารถค้นหาสตริงย่อยในสตริงที่กำหนดและระบุตำแหน่งเริ่มต้นที่การค้นหาจะเริ่มขึ้นได้ โดยใช้พารามิเตอร์ `start` เพื่อจุดประสงค์นี้
ตัวอย่างด้านล่างระบุตำแหน่งเริ่มต้นเป็น 20 และใช้เมธอด find() Python การค้นหาจะเริ่มต้นจากตำแหน่งที่ 20 โดยตำแหน่งสิ้นสุดจะเป็นความยาวของสตริง ดังนั้นจึงค้นหาไปจนถึงจุดสิ้นสุดของสตริงตั้งแต่ตำแหน่งที่ 20 เป็นต้นไป
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
Output:
The position of Tutorials is at 48
ตัวอย่างของ find() โดยใช้อาร์กิวเมนต์เริ่มต้นและสิ้นสุด
การใช้พารามิเตอร์ start และ end ช่วยให้เราจำกัดขอบเขตการค้นหาแทนที่จะค้นหาทั้งสตริง
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
Output:
The position of Tutorials is at 12
ตัวอย่างการใช้เมธอด find() เพื่อค้นหาตำแหน่งของสตริงย่อยที่กำหนดในสตริงหลัก
เรารู้ว่าฟังก์ชัน find() ช่วยให้เราค้นหาดัชนีของการปรากฏครั้งแรกของสตริงย่อย โดยจะคืนค่า -1 หากสตริงย่อยนั้นไม่อยู่ในสตริงที่กำหนด ตัวอย่างด้านล่างแสดงดัชนีเมื่อสตริงนั้นปรากฏอยู่ และคืนค่า -1 เมื่อไม่พบสตริงย่อยที่เรากำลังค้นหา
ตัวอย่าง:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))
Output:
The position of Best site is at: 27 The position of Guru99 is at: -1
Python สตริง rfind()
การขอ Python ฟังก์ชัน rfind() คล้ายกับฟังก์ชัน find() โดยมีข้อแตกต่างเพียงอย่างเดียวคือ rfind() จะให้ค่าดัชนีสูงสุดสำหรับสตริงย่อยที่กำหนด ในขณะที่ find() จะให้ค่าดัชนีต่ำสุด นั่นคือดัชนีแรกสุด ทั้ง rfind() และ find() จะคืนค่า -1 หากไม่พบสตริงย่อยนั้น
ในตัวอย่างด้านล่าง เรามีสตริง "พบปะ" Guruเว็บไซต์ 99 Tutorials เว็บไซต์ที่ดีที่สุดสำหรับ Python สอน!” และจะพยายามค้นหาตำแหน่งของสตริงย่อย Tutorials โดยใช้ find() และ rfind() สตริงย่อย Tutorials ปรากฏสองครั้งในสตริง
นี่คือตัวอย่างที่ใช้ทั้ง find() และ rfind()
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
Output:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
ผลลัพธ์แสดงให้เห็นว่า find() จะให้ดัชนีของสตริงย่อย Tutorials ตัวแรกที่พบ ในขณะที่ rfind() จะให้ดัชนีสุดท้ายของสตริงย่อย Tutorials
Python ดัชนีสตริง ()
การขอ Python ฟังก์ชัน `index()` เป็นฟังก์ชันที่ให้ตำแหน่งของสตริงย่อยที่กำหนดให้ เหมือนกับฟังก์ชัน `find()` ความแตกต่างเพียงอย่างเดียวคือ `index()` จะโยนข้อยกเว้นหากสตริงย่อยนั้นไม่อยู่ในสตริงหลัก ในขณะที่ `find()` จะคืนค่า `-1`
นี่คือตัวอย่างการทำงานที่แสดงพฤติกรรมของดัชนี() และ find()
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
Output:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
เราได้ตำแหน่งเดียวกันทั้งจากการใช้ find() และ index() ลองดูตัวอย่างเมื่อสตริงย่อยที่กำหนดไม่อยู่ในสตริงหลัก
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))
Output:
The position of Tutorials using find() : -1
Traceback (most recent call last):
File "task1.py", line 3, in <module>
print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found
ในตัวอย่างข้างต้น เราพยายามหาตำแหน่งของสตริงย่อย "test" สตริงย่อยนี้ไม่มีอยู่ในสตริงที่กำหนด ดังนั้นเมื่อใช้ find() เราจะได้ตำแหน่งเป็น -1 แต่เมื่อใช้ index() จะเกิดข้อผิดพลาดดังที่แสดงไว้ข้างต้น
เพื่อค้นหาจำนวนรวมของสตริงย่อย
ในการหาจำนวนครั้งทั้งหมดที่สตริงย่อยปรากฏในสตริงที่กำหนด เราจะใช้ฟังก์ชัน find() Pythonเราจะวนลูปผ่านสตริงโดยใช้ลูป for ตั้งแต่ 0 จนถึงจุดสิ้นสุดของสตริง โดยใช้พารามิเตอร์ startIndex สำหรับฟังก์ชัน find()
ตัวแปร startIndex และ count จะถูกกำหนดค่าเริ่มต้นเป็น 0 ภายในลูป for เราจะตรวจสอบว่าสตริงย่อยนั้นมีอยู่ในสตริงที่กำหนดหรือไม่ โดยใช้ฟังก์ชัน find() โดยกำหนดค่า startIndex เป็น 0
ค่าที่ส่งคืนจาก find() หากไม่ใช่ -1 จะอัปเดต startIndex เป็นดัชนีที่พบสตริง และเพิ่มค่า count ขึ้นอีกหนึ่งค่าด้วย
นี่คือตัวอย่างการทำงาน:
my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
k = my_string.find('test', startIndex)
if(k != -1):
startIndex = k+1
count += 1
k = 0
print("The total count of substring test is: ", count )
Output:
The total count of substring test is: 6
» เรียนรู้เพิ่มเติมเกี่ยวกับ Python แยกสตริง ()

