ใน Python เราสามารถค้นหาข้อความหรือตัวอักษรในสตริงได้โดยการใช้เมธอด index()
ซึ่งจะให้ผลลัพธ์เป็นตำแหน่งที่ข้อความหรือตัวอักษรที่ระบุปรากฏในสตริงเป็นครั้งแรก แต่ถ้าไม่เจอจะเกิดข้อผิดพลาด
เมธอด index()
จะทำงานคล้าย ๆ กับเมธอด find() แตกต่างกันตรงที่ เมธอด find()
จะคืนค่ากลับมาเป็น -1 ในกรณีที่หาข้อความไม่เจอ
รูปแบบการใช้งานเมธอด index()
จะเป็นดังนี้
string.index(value, start, end)
value
คือ ค่าที่ต้องการค้นหา (ต้องระบุ)start
คือ ตำแหน่งที่ต้องการให้เริ่มต้นค้นหา (ไม่ระบุก็ได้) ค่าเริ่มต้นเป็น 0end
คือ ตำแหน่งสุดท้ายที่จะให้ค้นหา (ไม่ระบุก็ได้) ค่าตั้งต้นเป็นตำแหน่งสุดท้ายในสตริง
ตัวอย่างการใช้งานเมธอด 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 ดังนั้นจึงทำให้ค้นหาไม่เจอ และเกิดข้อผิดพลาดขึ้น