เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor วันนี้เราจะมาเข้าสู่บทString สตริงตัวอักษรหรือสายอักขระในภาษาไพธอน เป็นชนิดของตัวแปร สามารถกำหนดด้วยเครื่องหมาย single quotation ( ‘ ‘ ) หรือ double quotation ( ” ” ) ก็ได้ จะได้ผลลัพธ์ที่เหมือนกัน เช่น ‘Hello’ หรือ “Hello ” นักเรียนสามารถแสดงสตริงตัวอักษรด้วยฟังก์ชัน print ()
ตัวอย่าง
สามารถแสดงค่าของสตริงออกมาโดยการใชัฟังก์ชัน print() 
| print("Hello") | 
ผลลัพธ์
| Hello | 
กำหนดสตริงให้กับตัวแปร
การกำหนดสตริงให้กับตัวแปรนั้นทำด้วยการชื่อตัวแปรตามด้วยเครื่องหมาย = และ ข้อมูลประเภทstring
ตัวอย่าง
| a = "Hello" | 
ผลลัพธ์
| Hello | 
การกำหนดค่าข้อมูลประเภท String แบบหลายบรรทัดให้กับตัวแปร
นักเรียนสามารถกำหนดสตริงหลายบรรทัดให้กับตัวแปรโดยใช้เครื่องหมายคำพูดสามตัว (“””)
ตัวอย่าง
| a = """Lorem ipsum dolor sit amet, | 
ผลลัพธ์
| Lorem ipsum dolor sit amet, | 
หรือจะใช้เป็นเครื่องหมายซิงเกิ้ลโควทครอบแทนก็ได้ เช่น ”’ข้อความที่ต้องการกำหนด”’
ตัวอย่าง
| a = '''Lorem ipsum dolor sit amet, | 
ผลลัพธ์
| Lorem ipsum dolor sit amet, | 
String are Arrays
เช่นเดียวกับภาษาการเขียนโปรแกรมยอดนิยมอื่น ๆ สตริงใน Python เป็นอาร์เรย์ของไบต์ที่แสดงถึงอักขระ Unicode อย่างไรก็ตาม Python ไม่มีประเภทข้อมูลตัวอักษรอักขระเดียวเป็นเพียงสตริงที่มีความยาว 1 วงเล็บเหลี่ยมสามารถใช้เพื่อเข้าถึงองค์ประกอบของสตริง เช่น
ตัวอย่าง
บรรทัดที่ 1 เราสร้างตัวแปร a ขึ้นมา แล้วกำหนดค่าให้เป็นสตริง “Hello, World!” ตัวแปร a จะกลายเป็นข้อมูลชนิดอาเรย์โดยอัตโนมัติ
บรรทัดที่ 2 ใช้คำสั่ง print() เพื่อให้แสดงค่าในตัวแปร a โดยอ้างอิงอินเด็กซ์ลำดับที่ 1 จะได้ข้อมูลตัวสุดท้ายในอาเรย์ a นั่นก็คือตัวอักษร e
| a = "Hello, World!" | 
ผลลัพธ์
| e | 
Slicing เข้าถึงข้อมูลในสตริงแบบกำหนดช่วงข้อมูล
นักเรียนสามารถส่งกลับช่วงข้อมูลของอักขระโดยใช้ไวยากรณ์ slice ระบุดัชนีเริ่มต้นและดัชนีสิ้นสุดคั่นด้วยเครื่องหมายโคลอน(:)เพื่อส่งคืนส่วนของสตริง
ตัวอย่าง
บรรทัดที่ 1 สร้างตัวแปร b ขึ้นมา แล้วกำหนดค่าให้เป็นสตริง “Hello World!”
บรรทัดที่ 2 สั่งให้แสดงค่าในตัวแปร b โดยกำหนดช่วงข้อมูลลำดับที่ 2 ถึงลำดับที่ 5 โดยข้อมูลที่เราจะได้ ตัวแรกคือตัวอักษรลำดับที่ 3 นั่นคือตัวอักษร l (ไม่ใช่ e เพราะอินเด็กซ์เริ่มจาก 0) ตัวสุดท้ายคือตัวอักษรลำดับที่ 2-5 นั่นคือลำดับที่ 4 ได้แก่ตัวอักษร l ดังนั้น ข้อมูลที่เราจะได้จากคำสั่งนี้ก็คือ llo
| b = "Hello, World!" | 
ผลลัพธ์
| llo | 
Negative Indexing เข้าถึงข้อมูลโดยอินเด็กซ์ที่ติดลบ
นักเรียนสามารถเข้าถึงข้อมูลในสตริงอาเรย์โดยใช้ slice syntax ใช้ดัชนีเชิงลบเพื่อเริ่มจากจุดสิ้นสุดของสตริง 
ตัวอย่าง
บรรทัดที่ 1 สร้างตัวแปร b ขึ้นมา แล้วกำหนดค่าให้เป็นสตริง “Hello World!”
บรรทัดที่ 2 เข้าถึงข้อมูลในสตริงแบบ slice syntax โดยระบุค่าอินเด็กซ์ติดลบ ในตัวอย่างระบุค่าเริ่มต้นเป็น -5 (หมายถึง ตัวอักขระตัวที่ 5 นับมาจากตัวสุดท้าย นั่นคือตัว o) และระบุค่าสิ้นสุดเป็น -2 (หมายถึง ตัวอักขระตัวที่ 1 นับจากตัวสุดท้าย (เริ่มที่ 0) นั่นคือตัว l)
| b = "Hello, World!" | 
ผลลัพธ์
| orl | 
String Length ความยาวของสตริง
การรับความยาวของสตริงให้ใช้ฟังก์ชัน len ()
ตัวอย่าง
| a = "Hello, World!" print(len(a)) | 
ผลลัพธ์
| 13 | 
String Methods เมธอดของสตริง
ในภาษาไพธอน มี built-in methods ของข้อมูลประเภทสตริง เช่น
ตัวอย่าง
เมธอด strip() สำหรับตัดช่องว่าง whitespace ด้านหน้าและด้านหลังสตริง
| a = " Hello, World! " | 
ผลลัพธ์
| Hello, World! | 
lower() จะคืนค่าสตริงเป็นตัวพิมพ์เล็ก
ตัวอย่าง
| a = "Hello, World!" | 
ผลลัพธ์
| hello, world! | 
upper() สำหรับแปลงอักขระภาษาอังกฤษให้เป็นตัวพิมพ์ใหญ่
ตัวอย่าง
| a = "Hello, World!" | 
ผลลัพธ์
| HELLO, WORLD! | 
replace () จะแทนที่สตริงด้วยสตริงอื่น
ตัวอย่าง
| a = "Hello, World!" | 
ผลลัพธ์
| Jello, World! | 
split () จะแยกสตริงออกเป็นสตริงย่อยหากพบอินสแตนซ์ของตัวคั่น
ตัวอย่าง
| a = "Hello, World!" | 
ผลลัพธ์
| ['Hello', ' World!'] | 
การตรวจสอบสตริงด้วยคีย์เวิร์ด in และ not in
ในการตรวจสอบว่ามีคำหรืออักขระบางตัวอยู่ในสตริงหรือเปล่า เราสามารถใช้ in หรือ not in โดยจะให้ผลลัพธ์ออกมาเป็น True หรือ False ดังตัวอย่าง
ตัวอย่าง
บรรทัดที่ 1 สร้างตัวแปร txt และกำหนดค่าเป็นสตริง
บรรทัดที่ 2 ใช้คีย์เวิร์ด in ตรวจสอบว่ามีคำว่า “rain” อยู่ในตัวแปร txt หรือไม่
บรรทัดที่ 3 แสดงผลออกมาทางหน้าจอ ผลลัพธ์จะเป็น True เพราะมีคำว่า “rain” อยู่ในตัวแปร x จริง
| txt = "The rain in Spain stays mainly in the plain" | 
ผลลัพธ์
| True | 
ตัวอย่าง
บรรทัดที่ 1 สร้างตัวแปร txt และกำหนดค่าเป็นสตริง
บรรทัดที่ 2 ใช้คีย์เวิร์ด not in ตรวจสอบว่า ไม่มีคำว่า “rain” อยู่ในตัวแปร x ใช่หรือไม่
บรรทัดที่ 3 แสดงผลออกมา โดยผลลัพธ์จะเป็น False  เพราะไม่มีคำว่า “rain” อยู่ในตัวแปร x จริงๆ
| txt = "The rain in Spain stays mainly in the plain" | 
ผลลัพธ์
| False | 
String Concatenation
ในการต่อหรือรวมสองสตริงเข้าด้วยกัน นักเรียนสามารถใช้ +
ตัวอย่าง
บรรทัดที่ 1 สร้างตัวแปร a เพื่อเก็บข้อความ 
บรรทัดที่ 2 สร้างตัวแปร b เพื่อเก็บข้อความ พร้อมทั้ง
บรรทัดที่ 3 สร้างตัวแปร c เพื่อแทรกเครื่องหมาย “”สำหรับรับค่าจากตัวแปร a กับ b มาใช้งาน
บรรทัดที่ 4 เรียกใช้print เพื่อแทรกค่าจากตัวแปร 
| a = "Hello" | 
ผลลัพธ์
| HelloWorld | 
ตัวอย่าง
หากต้องการเพิ่มช่องว่างระหว่างกันให้เพิ่ม ""
| a = "Hello" | 
ผลลัพธ์
| Hello World | 
String Format แทรกค่าจากตัวแปรอื่น ๆ เข้าไปในสตริง
เมื่อเราเรียนรู้ในบท Python Variables เราไม่สามารถรวมสตริงและตัวเลขเช่นนี้ได้
| age = 36 | 
แต่เราสามารถรวมสตริงและตัวเลขโดยใช้ format()  ใช้เพื่อผ่านข้อขัดแย้งและแทรกเครื่องหมาย {} เพื่อรับค่าจากตัวแปร
ตัวอย่าง
บรรทัดที่ 1 สร้างตัวแปร age เพื่อเก็บอายุ
บรรทัดที่ 2 สร้างตัวแปร str เพื่อเก็บข้อความ พร้อมทั้งแทรกเครื่องหมาย {} สำหรับรับค่าจากตัวแปร age มาใช้งาน
บรรทัดที่ 3 เรียกใชัเมธอด format() เพื่อแทรกค่าจากตัวแปร age เข้าไปในสตริงต้นทาง
| age = 36 | 
ผลลัพธ์
| My name is John, and I am 36 | 
เมธอด format() สามารถรับอากิวเมนต์ได้ไม่จำกัด  คือเราสามารถแทรกค่าเข้าไปในสตริงด้วยเมธอด format()โดยไม่จำกัดจำนวน
ที่สำคัญเราแทรกเครื่องหมาย {} เข้าไปในสตริงต้นทางกี่จุด เราต้องกำหนดอากิวเมนต์ให้เมธอด format() เป็นจำนวนเท่ากัน 
ตัวอย่าง
จากตัวอย่าง เรากำหนดตัวเลขอินเด็กซ์ไว้ในเครื่องหมาย {} เพื่อระบุว่าให้นำอากิวเมนต์ตามเลขลำดับนี้มาแทรกในสตริง โดยตัวเลขอินเด็กซ์จะอ้างอิงตามอากิวเมนต์ที่เราระบุไว้ในเมธอด format เช่น myorder.format (quantity, itemno,my order) ในที่นี้ quanlity คืออากิวเมนต์ลำดับที่ 0 และ itemno คืออากิวเมนต์ลำดับที่ 1 ตามลำดับ
| quantity = 3 | 
ผลลัพธ์
| I want 3 pieces of item 567 for 49.95 dollars. | 
Escape Character การแทรกอักขระพิเศษในสตริง
ในการแทรกอักขระที่ผิดกฎของสตริงให้ใช้อักขระเลี่ยงอักขระ escape เป็นแบ็กสแลช \ ตามด้วยอักขระที่นักเรียนต้องการแทรก
ตัวอย่าง
จะเกิดError หากนักเรียนใช้เครื่องหมายคำพูดคู่("")ภายในสตริงที่ครอบด้วยเครื่องหมายคำพูดคู่("")
| txt = "We are the so-called "Vikings" from the north." | 
ในการแก้ไขปัญหานี้ให้ใช้ \ "
ตัวอย่าง
| txt = "We are the so-called \"Vikings\" from the north." | 
ผลลัพธ์
| We are the so-called "Vikings" from the north. | 
อักขระพิเศษอื่น ๆ ที่สามารถใช้ได้ในภาษาไพธอน
| โค้ด | ผลลัพธ์ | 
| \’ | เครื่องหมาย ‘ | 
| /” | เครื่องหมาย “ | 
| \\ | เครื่องหมาย \ | 
| /n | ขึ้นบรรทัดใหม่ New Line | 
| /r | ขึ้นบรรทัดใหม่ Carriage Return | 
| /t | แท็บ | 
| /b | Backspace | 
| /f | Form Feed | 
| /ooh | เลขฐานแปด | 
| /xhh | เลขฐานสิบหก | 
สรุปจากบทนี้ก็คือจะพูดถึง String หรือสายอักขระ ซึ่งเป็นชนิดของตัวแปร สามารถกำหนดด้วยเครื่องหมาย single quotation ( ‘ ‘ ) หรือ double quotation ( ” ” ) ก็ได้ เเละยังพูดถึง การเข้าถึงอาเรย์ เมธอดของสตริง การแทรกอักขระพิเศษในสตริง
แปลจาก https://www.w3schools.com/python/python_strings.asp
Tag ที่น่าสนใจ: python string programming variable data_type array indexing slicing single_quotation double_quotation multi-line_string character_array unicode programming_tutor print_function
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC) 
    084-88-00-255 (AIS) 
    026-111-618 
    หรือทาง EMAIL:  NTPRINTF@GMAIL.COM
 
    
