October 31, 2011

Python: เล่นกับข้อความขั้นพื้นฐาน

การอ้างตำแหน่ง string ใน Python จะเหมือนแนวคิดของ char array ในภาษาอื่นๆ ดังนั้น เราสามารถใช้ความรู้จากตอนที่แล้ว บวกกับการหาความยาว string ด้วย len() เพื่อวนเรียกตัวอักษรแต่ละตัวออกมาได้

หมายเหตุไว้ว่า string ของ Python เป็น immutable type คือเราจะไปเปลี่ยนค่า char บางตัวของ string ที่ถูกสร้างขึ้นมาแล้วไม่ได้ครับ (เพื่อป้องกัน segmentation fault) ครับ

อนึ่ง สำหรับการวน for ตามตัวอย่างข้างบน สามารถเขียนให้สั้นลงได้อีก เป็น

เราจะได้เห็นเทคนิคการวน for ในลักษณะนี้อีกเรื่อยๆ ครับ



แม้ว่า string จะเป็น immutable แต่ก็ไม่ต้องวิตกครับ เราสามารถสร้าง string ใหญ่จาก string เล็กๆ ได้อย่างนี้

ส่วนการแตก string ให้เล็กลงนั้น เราจะใช้เทคนิคการ slice ครับ แต่ก่อนอื่น ขอให้ดูแผนภาพนี้

การสไลด์ string ให้เล็กลงนั้น จะใช้ [begin:end] ตามหลัง string ครับ (จะได้ string ใหม่กลับมา) โดยที่ begin ต้องอยู่ก่อน end ถึงจะได้ผลลัพท์กลับมาครับ (แต่สามารถละ begin/end ได้)



ส่งท้ายนิดหน่อยด้วยการเล่นกับ print() เพื่อพิมพ์ข้อความออกมาครับ

หรือเราจะใช้ % (percent sign) ทำคล้ายๆ กับภาษา C ก็ได้

เพียงแต่ว่าวิธีนี้กำลังถูกเลิกสนับสนุน Python ครับ (อ้าว แล้วจะใช้วิธีไหนแทน? ขอยกยอดไปตอนหน้านะครับ)

4 comments:

  1. ตอนแรก msg[:] ได้ 'abcde' แล้วทำไมตอนท้าย msg[:] ถึงได้ '' ล่ะครับ???

    ส่วน print แปลก ๆ python 2.x ทำไม่ไดสินะ T-T

    ReplyDelete
  2. จริงด้วย ผม draft ไว้แล้วมันหลุดออกมาอะครับ ^^a

    ReplyDelete
  3. msg[:-2] #'abc'ใช่ไหมค่ะ

    ReplyDelete
    Replies
    1. จริงด้วย แก้แล้วครับ ^^"

      Delete