Kodokon kodokon.com

สายอักขระเชิงลึก: slicing, f-strings, เมท็อด

ดึงข้อมูล จัดรูปแบบ และทำความสะอาดข้อความเหมือนในโปรเจกต์จริง ด้วย slicing, f-strings และเมท็อดของสายอักขระ

8 นาที · 3 คำถาม

เปิดบทเรียนนี้ใน Kodokon

ในโปรเจกต์จริง คุณจัดการกับสายอักขระอยู่ตลอดเวลา ไม่ว่าจะเป็นเลขที่คำสั่งซื้อ ที่อยู่อีเมล หรือบรรทัดในไฟล์ การตัดส่วน (slicing) ดึงสายอักขระย่อยออกมาด้วยไวยากรณ์ [start:stop:step] โดยดัชนี stop จะ ไม่ถูกรวม ดัชนีติดลบนับย้อนจากท้าย และการละขอบเขตไว้หมายถึง "ตั้งแต่ต้น" หรือ "จนถึงท้าย"

PYTHON
reference = "ORD-2026-00042"

print(reference[:3])    # ORD
print(reference[4:8])   # 2026
print(reference[-5:])   # 00042
print(reference[::-1])  # 24000-6202-DRO
การตัดส่วนแยกเลขที่อ้างอิงออกมาได้โดยไม่ต้องเขียนลูปแม้แต่บรรทัดเดียว

F-strings คือวิธีสมัยใหม่ในการประกอบข้อความ เพียงเติม f นำหน้าสายอักขระ แล้วแทรกนิพจน์ไว้ในวงเล็บปีกกา ข้อกำหนดรูปแบบที่อยู่หลังทวิภาคจะควบคุมการแสดงผล :.2f ปัดเป็นทศนิยมสองตำแหน่ง :03d เติมศูนย์ด้านหน้า ในทางปฏิบัติ จงเลิกต่อข้อความด้วย + ได้เลย เพราะ f-string อ่านง่ายกว่าและช่วยเลี่ยงข้อผิดพลาดเรื่องชนิดข้อมูล

PYTHON
product = "wireless keyboard"
price = 49.9
stock = 3

print(f"{product} : {price:.2f} EUR")
print(f"Stock : {stock:03d} units")
total = price * stock
print(f"Total : {total:.2f} EUR")
ข้อกำหนดรูปแบบรับประกันการแสดงผลตัวเลขที่สะอาดตา

เมท็อดของสายอักขระครอบคลุมงานทำความสะอาดข้อมูลที่จำเป็นแทบทั้งหมด strip ตัดช่องว่างหัวท้ายออก split แยกออกเป็นลิสต์ join เชื่อมกลับเข้าด้วยกัน lower และ upper ปรับตัวพิมพ์ให้เป็นมาตรฐาน replace แทนที่ข้อความ ส่วน startswith และ endswith ตรวจสอบส่วนต้นและส่วนท้าย ประเด็นสำคัญคือ สายอักขระ เปลี่ยนแปลงไม่ได้ (immutable) เมท็อดแต่ละตัวจะคืนสายอักขระ ตัวใหม่ ออกมาโดยไม่แก้ไขตัวเดิม

PYTHON
raw = "  Alice.Martin@Example.COM ; ADMIN "

email, role = raw.split(";")
email = email.strip().lower()
role = role.strip().lower()

print(email)  # alice.martin@example.com
print(role)   # admin
print(email.endswith("@example.com"))  # True
การเชื่อม strip, lower และ split เข้าด้วยกัน คือสามประสานแห่งการทำความสะอาดข้อมูล

ทดสอบความรู้

ตรวจสอบว่าคุณจำประเด็นสำคัญของบทเรียนนี้ได้ครบถ้วน

  1. ค่าของ "python"[1:4] คืออะไร?
    • pyt
    • yth
    • ytho
    • pyth
  2. print(f"{3.14159:.2f}") แสดงผลอะไร?
    • 3.14
    • 3.1415
    • 3,14
    • 0.14
  3. "a,b,c".split(",") คืนค่าอะไร?
    • สายอักขระ 'abc'
    • ลิสต์ ['a', 'b', 'c']
    • ทูเพิล ('a', 'b', 'c')