find() และindex() ในPython

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: find() และindex() ในPython

find() และindex() ในPython

โดย Dive Demo » 07/02/2017 11:48 am

find() และ index() นั้นจะเป็นฟังก์ชั่นทำหน้าที่ค้นหาตำแหน่ง String ว่าอยู่ที่จุดใด โดยหากเป็นจริง ฟังก์ชั่นจะคืนค่าออกมาเป็นตำแหน่งของ string ตัวนั้น แต่หากเป็นเท็จจะคืนค่าออกมาเป็น -1

Ex.1 หาค่าจากข้อความ "Enjoys doing Python in Mindphp.com" โดยกำหนดดังตัวอย่าง

โค้ด: เลือกทั้งหมด

str = "Enjoys doing Python in Mindphp.com"
print "Result : Function find() =",str.find("in")
print "Result : Function index() =",str.index("ind")
Output 1
Find_1.png
Find_1.png (24.5 KiB) Viewed 3666 times
จากรูป Output 1 ลองพิจารณาดูนะครับระหว่าง str.find("in") กับ str.index การทำงานของสองฟังก์ชั่นนี่ทำงานเหมือนกันนะครับโดยขออธิบายเพิ่มเติม
ในตัวอย่างนี้จะสังเกตุว่ามีคำว่า "in" 3 ตำแหน่งคือ "doing" "in" "mindphp" เห็นไหมครับทั้งสามคำนี้มีคำว่า "in" อยู่ภายใน

*ในกรณีของ str.find ("in") เหตุผลว่าทำไมถึงได้ผลลัพท์ = 9
>>>เพราะในระบบมันจะหาตัว"in"ที่ใกล้ที่สุดในกลุ่มข้อความนั้นจากซ้ายไปขวาซึ่งตัว "in"ที่ใกล้ที่สุดคือ "in" ที่อยู่ภายใน"doing" (การนับตำแหน่งจะเริ่มจาก 0 และนับการเว้นวรรคด้วย โดยจะนับตัวอักษรตัวแรกที่เราค้นหา ในที่นี้เราหาคำว่า "in" ตัวอักษรตัวแรกคือ "i")

*ทีนี้มาดูในส่วนของ str.index("ind") เหตุผลว่าทำไมถึงได้ผลลัพท์ = 24
>>>ระบบจะหาคำว่า "ind" ที่มีอยู่ในประโยคก็คือ "Mindphp" โดย ind จะอยู่ที่ตำแหน่งที่ 24 (นับจากเหมือนกันแต่ผลลัพท์ต่างกันเพราะเรากำหนดเป็น "ind")

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

Ex2. ลองเปลี่ยนจาก "in" และ "ind" เป็น "In" และ"Ind"

โค้ด: เลือกทั้งหมด

str = "Enjoys doing Python in Mindphp.com"
print "Result : Function find() =",str.find("In")
print "Result : Function index() =",str.index("Ind")
Output 2
Find_2.png
Find_2.png (28.85 KiB) Viewed 3666 times
จะสังเกตุได้ว่า "In" และ "Ind" ข้อมูลเป็นเท็จเพราะเนื่องจากภาษาPythonนั้นซีเรียสกับตัวอักษรพิมเล็ก และพิมใหญ่จึงทำให้คำว่า "In" และ "Ind" ("I" พิมใหญ่)แสดงผลเป็นเท็จ โดยใน find() เมื่อเป็นเท็จจะแสดงค่าเป็น-1 แต่ index() เมื่อเป็นเท็จจะแสดงค่าว่างและขึ้น error

ข้างบน