Python ค้นหาข้อความในสตริงด้วยเมธอด index()

Python ค้นหาข้อความในสตริงด้วยเมธอด index()

Python ค้นหาข้อความในสตริงด้วยเมธอด index()

ใน Python เราสามารถค้นหาข้อความหรือตัวอักษรในสตริงได้โดยการใช้เมธอด index() ซึ่งจะให้ผลลัพธ์เป็นตำแหน่งที่ข้อความหรือตัวอักษรที่ระบุปรากฏในสตริงเป็นครั้งแรก แต่ถ้าไม่เจอจะเกิดข้อผิดพลาด

เมธอด index() จะทำงานคล้าย ๆ กับเมธอด find() แตกต่างกันตรงที่ เมธอด find() จะคืนค่ากลับมาเป็น -1 ในกรณีที่หาข้อความไม่เจอ

รูปแบบการใช้งานเมธอด index() จะเป็นดังนี้

string.index(value, start, end)

  • value คือ ค่าที่ต้องการค้นหา (ต้องระบุ)
  • start คือ ตำแหน่งที่ต้องการให้เริ่มต้นค้นหา (ไม่ระบุก็ได้) ค่าเริ่มต้นเป็น 0
  • end คือ ตำแหน่งสุดท้ายที่จะให้ค้นหา (ไม่ระบุก็ได้) ค่าตั้งต้นเป็นตำแหน่งสุดท้ายในสตริง

ตัวอย่างการใช้งานเมธอด index()

การใช้งานเมธอด index() แบบไม่ระบุค่า start และ end

mytext = "Python is great. I love Python."

x = mytext.index("great")

print(x)
# x = 10

จากตัวอย่าง ค่า x จะเท่ากับ 10 เพราะค้นเจอคำว่า great ครั้งแรกที่ตำแหน่ง 10 (นับเริ่มจาก 0)

การใช้งานเมธอด index() แบบระบุค่า start และ end

mytext = "Python is great. I love Python."

x = mytext.index("great", 3, 20)

print(x)
# x = 10

จากตัวอย่าง ให้ค้นหาคำว่า great ตั้งแต่ตำแหน่งที่ 3 จนถึงตำแหน่งที่ 20 ค่า x จะเท่ากับ 10 เหมือนเดิม เพราะเวลานับตำแหน่งในสตริง จะนับตั้งแต่ตำแหน่งของอักษรตัวแรก ไม่ได้นับเริ่มจากตำแหน่งที่ให้ค้นหา

การใช้งานเมธอด index() แบบไม่ระบุค่า end

mytext = "Python is great. I love Python."

x = mytext.index("great", 3)

print(x)
# x = 10

จากตัวอย่าง ไม่ได้ระบุค่า end โปรแกรมยังคงทำงานได้เหมือนเดิม โดยจากตัวอย่าง จะเริ่มค้นหาจากตำแหน่งที่ 3 ไปจนถึงตำแหน่งสุดท้ายของสตริง เพราะไม่ได้ระบุค่า end

กรณีค้นหาไม่เจอ

mytext = "Python is great. I love Python."

x = mytext.index("great", 11, 20)

print(x)

จากตัวอย่าง ให้ค้นหาคำว่า great ตั้งแต่ตำแหน่ง 11 ไปจนถึงตำแหน่ง 20 แต่ข้อความที่ใช้ค้นหา อยู่ในตำแหน่ง 10 ดังนั้นจึงทำให้ค้นหาไม่เจอ และเกิดข้อผิดพลาดขึ้น