3.3 การจัดการข้อความ
การจัดการข้อความเป็นสิ่งจำเป็นพื้นฐานที่ทุกโปรแกรมภาษาจะต้องมีฟังก์ชันให้ใช้
โปรแกรมภาษาไพธอนมีฟังก์ชันเหล่านี้เช่นเดียวกัน คำสั่งด้านการจัดการข้อความมีไว้เพื่อนำไปใช้ในการแสดงผล
ทั้ง ภาษา XML หรือ HTML หรือใช้ในการติดต่อกับฐานข้อมูล
เป็นต้น
การจัดการข้อความของภาษาไพธอนมีคำสั่งให้เรียกใช้เป็นจำนวนมาก แต่ที่จะนำมากล่าวในบทนี้
มีเฉพาะที่จำเป็นต้องใช้เท่านั้น ได้แก่ คำสั่งในการเปรียบเทียบข้อความ การเชื่อมคำ การแยกคำ การค้นหาคำ การค้นหาและแทนที่คำ
การตัดคำ การจัดรูปแบบและตำแหน่งคำ และการประมวลผลคำ ซึ่งมีรายละเอียดแต่ละรายการ ดังนี้
การเชื่อมข้อความ เป็นการนำเอาข้อความตั้งแต่ 2 ข้อความขึ้นไปมาต่อเรียงกันเป็นข้อความใหม่ โดยใช้ เมท็อด join() หรือใช้เครื่องหมาย + หรือ += ในการเชื่อมข้อความหลาย ๆ ข้อความได้เช่นเดียวกัน ในกรณีที่ข้อมูลประเภทข้อความที่เก็บอยู่ในรูปแบบลิสต์ สามารถใช้การเชื่อมคำที่ทำงานได้เร็วกว่าด้วยคำสั่ง join(wordList) การเชื่อมข้อความจะเริ่มจากข้อความลำดับที่ 1 ไปจนลำดับสุดท้าย ดังตัวอย่างภาพที่ 3.13
การแยกคำเป็นการตัดคำออกมาจากประโยคโดยเฉพาะประโยคในภาษาอังกฤษที่ประกอบด้วยคำหลาย ๆ คำ ซึ่งแต่ละคำจะมีตัวช่องไฟ (เช่น space bar หรือ tab หรือการขึ้นบรรทัดใหม่) เป็นตัวคั่น โปรแกรมภาษาไพธอนมีเมท็อด split() เพื่อแยกคำแบบนั้นออกมา หรือใช้เมท็อด split() ที่มีอาร์กิวเมนต์ เช่น split(ตัวอักษรที่ต้องการแยก) ในกรณีที่ต้องการแยกแต่ละบรรทัดจากไฟล์ให้ใช้เมท็อด splitline() โดยมีอาร์กิวเมนต์ระบุจำนวนบรรทัด เมื่อคำหรือบรรทัดที่แยกออกมาแล้ว ผลลัพธ์ที่ได้จะเก็บข้อมูลอยู่ในรูปของลิสต์ ดังตัวอย่างภาพที่ 3.14
1. การเปรียบเทียบข้อความ
การเปรียบเทียบข้อความเป็นการดำเนินการทางตรรกะเบื้องต้น ที่ใช้ตัวดำเนินการเดียวกับการเปรียบเทียบการสร้างเงื่อนไขทั่ว ๆ ไป โดยใช้เครื่องหมาย == อยู่ตรงกลางระหว่างตัวแปรที่ต้องการเปรียบเทียบ หรือใช้ ตัวดำเนินการ > หรือ < เพื่อเปรียบเทียบข้อความ และใช้สำหรับการเรียงลำดับ ได้เช่นกัน ผลลัพธ์ที่ได้จะแสดงเป็นจริงหรือเท็จ นอกจากนี้ยังสามารถใช้เมท็อด upper() สำหรับแปลงข้อความตัวพิมพ์เล็กในภาษาอังกฤษให้เป็นตัวพิมพ์ใหญ่ หรือใช้ lower() เพื่อแปลงข้อความตัวพิมพ์ใหญ่ให้เป็นตัวพิมพ์เล็ก ดังตัวอย่างภาพที่ 3.11 และ 3.12
การเปรียบเทียบข้อความเป็นการดำเนินการทางตรรกะเบื้องต้น ที่ใช้ตัวดำเนินการเดียวกับการเปรียบเทียบการสร้างเงื่อนไขทั่ว ๆ ไป โดยใช้เครื่องหมาย == อยู่ตรงกลางระหว่างตัวแปรที่ต้องการเปรียบเทียบ หรือใช้ ตัวดำเนินการ > หรือ < เพื่อเปรียบเทียบข้อความ และใช้สำหรับการเรียงลำดับ ได้เช่นกัน ผลลัพธ์ที่ได้จะแสดงเป็นจริงหรือเท็จ นอกจากนี้ยังสามารถใช้เมท็อด upper() สำหรับแปลงข้อความตัวพิมพ์เล็กในภาษาอังกฤษให้เป็นตัวพิมพ์ใหญ่ หรือใช้ lower() เพื่อแปลงข้อความตัวพิมพ์ใหญ่ให้เป็นตัวพิมพ์เล็ก ดังตัวอย่างภาพที่ 3.11 และ 3.12
>>>
lowerStr = 'abc'
>>>
upperStr = 'ABC'
>>>
lowerStr == upperStr
False
>>>
lowerStr == upperStr.lower()
True
>>>
lowerStr.upper() == upperStr
True
>>> if lowerStr.upper() == upperStr :
print lowerStr + " match " + upperStr
abc match ABC
>>> if upperStr.lower() == lowerStr :
print upperStr + " match " + lowerStr
ABC match abc
|
ภาพที่ 3.11 แสดงคำสั่งและผลลัพธ์การเปรียบเทียบข้อความ
2. การเชื่อมข้อความการเชื่อมข้อความ เป็นการนำเอาข้อความตั้งแต่ 2 ข้อความขึ้นไปมาต่อเรียงกันเป็นข้อความใหม่ โดยใช้ เมท็อด join() หรือใช้เครื่องหมาย + หรือ += ในการเชื่อมข้อความหลาย ๆ ข้อความได้เช่นเดียวกัน ในกรณีที่ข้อมูลประเภทข้อความที่เก็บอยู่ในรูปแบบลิสต์ สามารถใช้การเชื่อมคำที่ทำงานได้เร็วกว่าด้วยคำสั่ง join(wordList) การเชื่อมข้อความจะเริ่มจากข้อความลำดับที่ 1 ไปจนลำดับสุดท้าย ดังตัวอย่างภาพที่ 3.13
>>> word1 = "Python on
Windows"
>>> word2 = "Python on Mac
OS X"
>>> word3 = "Python on
RedHat Linux"
>>> word4= "Python on
Debian GNU/Linux"
>>> wordList =
["Python", "Java", "C", "C++",
"C#"]
>>> print "Python runs on
" + word1 + word2 + word3 +
word4
Python
runs on Python on WindowsPython
on Mac OS XPython on RedHat LinuxPython on Debian GNU/Linux
>>> print "Programming Language : " +
" " .join(wordList)
Programming Language : Python Java
C C++ C# |
ภาพที่ 3.13 แสดงคำสั่งและผลลัพธ์ของการเชื่อมข้อความ
3. การแยกคำการแยกคำเป็นการตัดคำออกมาจากประโยคโดยเฉพาะประโยคในภาษาอังกฤษที่ประกอบด้วยคำหลาย ๆ คำ ซึ่งแต่ละคำจะมีตัวช่องไฟ (เช่น space bar หรือ tab หรือการขึ้นบรรทัดใหม่) เป็นตัวคั่น โปรแกรมภาษาไพธอนมีเมท็อด split() เพื่อแยกคำแบบนั้นออกมา หรือใช้เมท็อด split() ที่มีอาร์กิวเมนต์ เช่น split(ตัวอักษรที่ต้องการแยก) ในกรณีที่ต้องการแยกแต่ละบรรทัดจากไฟล์ให้ใช้เมท็อด splitline() โดยมีอาร์กิวเมนต์ระบุจำนวนบรรทัด เมื่อคำหรือบรรทัดที่แยกออกมาแล้ว ผลลัพธ์ที่ได้จะเก็บข้อมูลอยู่ในรูปของลิสต์ ดังตัวอย่างภาพที่ 3.14
>>> sentence = "I say my
darling, you were wonderful tonight"
>>>
paragraph = "It's late in the
evening.\n\
She's wondering what
clothes to wear.\n\
She puts on her make
up.\n\
And brushes her long
blonde hair.\n\
And then she asks
me.\n\
Do I look
alright.\n\
And I say yes, you
look wonderful tonight."
>>> name =
"Somchai, Somsak, Somkid, Somsri, Sompong, Somjai"
>>> print
sentence.split()
['I', 'say', 'my',
'darling,', 'you', 'were', 'wonderful', 'tonight']
>>> print
name.split(', ')
['Somchai',
'Somsak', 'Somkid', 'Somsri', 'Sompong', 'Somjai']
>>> print
paragraph.splitlines(1)["It's late in the evening.\n", "She's wondering what clothes to wear.\n", 'She puts on her make up.\n', 'And brushes her long blonde hair.\n', 'And then she asks me.\n', 'Do I look alright.\n', 'And I say yes, you look wonderful tonight.'] |
ภาพที่ 3.14 แสดงคำสั่งและผลลัพธ์การแยกคำ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น