Skip to content
หน้าแรก » เขียนโปรแกรมภาษา Python ตอนที่ 51 ค้นหาข้อความใน String ด้วยเมธอด index()

เขียนโปรแกรมภาษา Python ตอนที่ 51 ค้นหาข้อความใน String ด้วยเมธอด index()

ค้นหาข้อความใน String ด้วยเมธอด index()

เขียนโปรแกรมภาษา Python ตอนที่ 51 ค้นหาข้อความใน String ด้วยเมธอด 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 ดังนั้นจึงทำให้ค้นหาไม่เจอ และเกิดข้อผิดพลาดขึ้น