Find() มีคำนี้ในนั้นไหม?
ในการเปรียบเทียบว่ามี "คำนี้" "วลีนี้" อยู่ในข้อความของเรามั๊ย python มีวิธีการทำที่ง่ายมากคือนำเอาข้อความไปใส่ในตัวแปร แล้วใช้ฟังก์ชั่น find() ซึ่งฟังก์ชั่นจัดการค่าในตัวแปรนั้น python จะให้เรียกใช้โดยการอ้างถึงชื่อตัวแปรนั้นๆแล้วต่อท้ายด้วย . (จุด) แล้วตามด้วยชื่อฟังก์ชั่นที่ต้องการครับ ลองดูจาก code ข้างล่างนี้จะเข้าใจง่ายขึ้นครับ
> ชุดคำสั่ง
word = 'Happy Birth Day to You'
print (word.find('You'))
> ผลลัพธ์
19
ขออธิบายเพิ่มนิดหน่อยนะครับ บรรทัดแรกนั้นเราก็เอาข้อความของเราใส่ลงในตัวแปร word จากนั้นเราก็เรียกฟังก์ชั่น find() และที่เราใช้คำว่า word.find('You') ก็คือจะหาคำว่า 'You' จากทั้งประโยคนั่นเอง ส่วนผลลัพธ์ได้ค่าตัวเลข 19 เป็นการบอกว่าหาเจอนะ 'You' อยู่ในลำดับที่ 19 นับจากตัวอักษรตัวแรก อ้อ! ถ้าคุณยังไม่รู้ python เค้าเริ่มนับจาก 0 ครับ ( 0 ก็คือตัวอักษร H นั่นเอง )
ตรงนี้จึงมีข้อสังเกตว่า...
- find() ไม่ได้ตอบมาตรงๆว่า "มี" หรือ "ไม่มี" แต่ตอบมาเป็น "ตำแหน่งตัวอักษรที่เจอ"
- หากเค้าตอบว่า 0 ไม่ได้หมายความว่าไม่มี แต่บอกว่า "มี" แต่เริ่มต้นอยู่ในตัวอักษรลำดับที่ 0
- งั้นถ้าคำตอบคือไม่มีล่ะ มันจะบอกยังไง? .... มันจะบอกว่า -1 ครับ
> ชุดคำสั่ง
word = 'Happy Birth Day to You'
if (word.find('You') != -1) :
print ("Yes, this word contained 'You'.")
else :
print ("No, this word never says about 'You'.")
> ผลลัพธ์
Yes, this word contained 'You'.
และแน่นอนว่าผลลัพธ์คือมี 'You' ในข้อความว่า 'Happy Birth Day to You' เค้าพูดถึงคุณนั่นแหละครับ ก็แหม..ถ้าผลลัพธ์ออกมาว่า No, this word never says about 'You'. ไม่นะ "เค้าไม่ได้พูดถึงคุณ" แต่คุณดันไปทึกทักเอาเองว่าเค้าสน แหม! เจอแบบนี้ก็คงหน้าชากันไป 55+
เห็นมั๊ยครับ python เรียนง่ายและสนุก ไว้เจอกันใหม่ตอนหน้านะครับ
ไม่มีความคิดเห็น: