"String" หากดูความหมายในพจนานุกรมแล้วจะหมายถึง เชือก เส้นเชือก บรรทัดหรือแถว ฯล ในความหมายของ Python แล้วข้อมูลประเภทนี้คือ แถวหรือสายของตัวอักษร โดยจะต้องมีเครื่องหมาย " หรือ ' ครอบ เช่น
"This is a string"
'This is a string'
'1,3,4,7,9'
"@#)!@+*&_ $ "
สำหรับ Python แล้วอนุญาตให้ใช้ " และ ' ในข้อมูลชุดเดียวกันได้ เช่น
"I told my friends that 'Python' is a good language" หรือ
'I told my friends that "Python" is a good language'
เราทำอะไรกับ String ได้บ้าง (ที่ใช้บ่อย)
1. หาความยาวของข้อความ
ใช้ len() เพื่อหาความยาวของข้อความหรือตัวแปรที่เก็บข้อมูล String ที่ต้องการ เช่น>>>len("Hello World")
>>> 11
>>>a = "Happy New Year 2016"
>>>print len(a)
>>>19
ค่าที่ได้จะเป็นจำนวนตัวอักษร (รวมเครื่องหมายวรรคตอน) ในข้อความนั้น ๆ
2. การต่อข้อความ (Concatenation)
ช้เครื่องหมาย + ในการต่อข้อความได้ ในกรณีนี้เราเรียก + ว่า concatenation operator เช่น>>> "I love "+"you"
>>> "I love you"
>>> txt = "This text is "
>>> txt = txt + "empty"
>>> print txt
>>> This text is empty
3. Indexing หรือ subscripting
ทุกตัวอักษรในข้อมูล String จะมีตัวเลขตำแหน่งของตัวเองอยู่ โดยตัวเลขดังกล่าวจะเขียนไว้ใน [] (subscript operator) ตัวเลขนี้เริ่มต้นที่ 0 หมายถึงอักษรตัวแรกหรือซ้ายมือสุดแล้วไล่เรียงไปเรื่อย ๆ จนถึงอักษรตัวสุดท้ายจะมีหมายเลขตำแหน่งเท่ากับ ความยาวข้อความ - 1>>> txt = "I love you"
>>> first_char_indx = txt[0]
>>> print first_char_indx
>>> I
>>> txt = "I love you"
>>> last_char_indx = len(txt) - 1
>>> print txt[last_char_indx]
>>> u
>>> name = "Somchai"
>>>print name[-1]
>>>i
>>> name = "Somchai"
>>>print name[-7]
>>>S
หากเราต้องการหาค่า index ของตัวอักษรหรือกลุ่มตัวอักษรภายใน String ใช้
String.index(characters)
หากใน String นั้นมีอักษรหรือกลุ่มตัวอักษรที่ซ้ำกับที่เราต้องการมากกว่า 1 ตำแหน่ง Python จะให้ค่าตำแหน่งที่น้อยที่สุด
>>>txt = "Foreign travellers"
>>>print txt.index("t")
>>>8
>>>txt = "Foreign travellers"
>>>print txt.index("ll")
>>>13
4. Slice
จะเหมือนกับ indexing ต่างกันตรงที่ slice จะมีการกำหนด lower bound และ upper bound ของ index ไว้ด้วย และคั่นด้วยเครื่องหมาย : ผลลัพธ์ของ slice จะได้กลุ่มของตัวอักษร รูปแบบทั่วไปของ slice คือ
String[lower bound index : upper bound index]
โดยตัวอักษรที่มี index ตรงกับ upper bound index จะไม่มีการนำมาใช้
เช่น
>>>txt = "Foreign travellers"
>>>txt_slice = txt[0:]
>>>print txt_slice
>>>Foreign travellers
อธิบาย
txt[0:] กำหนด lower bound index คือ 0 คือ อักษรตัวแรก ไม่มีกำหนด upper bound ไว้ หมายถึงให้ใช้ตำแหน่งของอักษรตัวสุดท้าย
>>>txt = "Foreign travellers"
>>>txt_slice = txt[:len(txt) - 1]
>>>print txt_slice
>>>Foreign travellers
อธิบาย
txt[:len(txt) - 1] มีการละ lower bound index ไว้ จะใช้ตำแหน่งอักษรตัวแรกคือ 0 แทน กำหนด upper bound เป็น len(txt) - 1 หมายถึงให้ใช้ตำแหน่งของอักษรตัวสุดท้าย
>>>txt = "Foreign travellers"
>>>txt_slice = txt[3:6]
>>>print txt_slice
อธิบาย
txt[3:6] กำหนด lower bound index คือ 3 (ตำแหน่งอักษรตัวที่ 4 ) กำหนด upper bound เป็น 6 หมายถึงให้ใช้ตำแหน่งของอักษรตัวสุดท้าย
5. Upper case และ Lower case
เป็นการเปลี่ยนให้เป็นอักษรตัวใหญ่และเล็ก โดยใช้ upper() และ lower() ตามลำดับ เช่น
>>>txt = "Foreign travellers"
>>>print txt.upper()
>>>FOREIGN TRAVELLERS
>>>txt = "Foreign travellers"
>>>print txt.lower()
>>>foreign travellers
6. การแยกกลุ่มตัวอักษร (Split)
String.split(delimiter)
ใช้ " " (วรรค) เป็น delimiter
>>>txt = "Foreign travellers"
>>>a = txt.split(" ")
>>>print a
>>>['Foreign','travellers']
ใช้ "e" เป็น delimiter
>>>txt = "Foreign travellers"
>>>a = txt.split("e")
>>>print a
>>>['For','ign trav','ll','rs']
ใช้ "s" เป็น delimiter
>>>txt = "Foreign travellers"
>>>a = txt.split("e")
>>>print a
>>>['Foreign traveller','']
7. Stipping Whitespace
บ่อยครั้งที่อาจจะมีช่องว่างหรือ Whitespace มาอยู่ที่หัวหรือท้ายของ String จะด้วยสาเหตุใดก็แล้วแต่ ซึ่งอาจส่งผลต่อการทำงานบางอย่าง เช่น การเปรียบเทียบข้อควา หรือการนับจำนวนตัวอักษร
String.strip() การ Strip ทั้งหัวและท้าย
String.rstrip() การ Strip ทางด้านขวาสุด
String.lstrip() การ Strip ทางด้านซ้ายสุด
เช่น
>>>a = " python "
>>>b = a.strip()
>>>c = a.rstrip()
>>>d = a.lstrip()
>>>print len(a)
>>>print len(b)
>>>print len(c)
>>>print len(d)
>>>8
>>>6
>>>7
>>>7
8. การทำ Title
ในการพิมพ์ชื่อด้วยอักษรภาษาอังกฤษอักษรตัวแรกจะเป็นอักษรตัวใหญ่เสมอ ใน Python เรียกว่าการทำ title เราสามารถทำ title ได้ด้วย
String.title()
เช่น
>>> name = "john legend"
>>> print name.title()
>>> John Legend
9. การรับข้อมูลจากผู้ใช้
ในภาษา Python มี raw_input() เพื่อใช้เก็บข้อมูลจากผู้ใช้ผ่านหน้าจอ ข้อมูลที่ได้จะเป็นอยู่ในรูปของ String เช่น>>> user_in = raw_input("Enter Name :")
>>> print user_in
10. อื่น ๆ อีกมากมาย
ยังมีการทำงานกับ String อีกเยอะแยะที่ไม่ได้กล่าวถึง ท่านที่สนใจว่ามีอะไรอีกบ้างและมี Python IDE ไว้แล้ว (ในกรณีที่ใช้ Linux จะมี Python IDE ติดตั้งมาเรียบร้อยแล้ว) สามารถพิมพ์คำสั่ง>>> dir(str)
เพื่อดูว่ามีอะไรที่เกี่ยวกับ String อีก
แบบฝึกหัด
1. ใชัตัวแปรเก็บชื่อของเพื่อน (ใช้อักษรภาษาอังกฤษ) แล้วพิมพ์ข้อความ
"Hello <ตัวแปร> . How do you think about Python ? "
2. เก็บ ชื่อ, ที่อยู่ ไว้ในตัวแปรแยกกัน แล้วพิมพ์ข้อมูลออกมาในรูปแบบคล้ายนามบัตร
Sign up here with your email
ConversionConversion EmoticonEmoticon