สตริงแม่แบบและ str.format
เครื่องมือจัดรูปแบบอื่น ๆ
สตริงแม่แบบและ str.format เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
เครื่องมือจัดรูปแบบอื่น
นอกจากสตริงแบบ f แล้ว Python ยังมีเครื่องมือจัดรูปแบบอีกสองชนิด ได้แก่ เมธอด str.format() และคลาส string.Template แต่ละชนิดเหมาะกับสถานการณ์ที่แตกต่างกัน
print('Hello, {}!'.format('World'))พื้นฐานของ str.format
str.format() จะแทนที่ตัวยึดตำแหน่ง {} ด้วยอาร์กิวเมนต์ตามลำดับ ฟังก์ชันนี้มีมาก่อนสตริงแบบ f และยังพบได้ในโค้ดจำนวนมาก
msg = '{} is {} years old'.format('Ada', 36)
print(msg)ดัชนีตามตำแหน่ง
ใส่ตัวเลขไว้ในวงเล็บปีกกาเพื่อใช้อาร์กิวเมนต์ซ้ำหรือเปลี่ยนลำดับตามตำแหน่ง
print('{0} {1} {0}'.format('echo', 'once'))ตัวยึดตำแหน่งที่มีชื่อ
ใช้ชื่อภายในวงเล็บปีกกาและส่งอาร์กิวเมนต์แบบคีย์เวิร์ด วิธีนี้ทำให้แม่แบบอธิบายตัวเองได้
print('{name} scored {score}'.format(name='Lin', score=95))ข้อกำหนดรูปแบบยังคงใช้ได้
ภาษาขนาดเล็กเดียวกันยังใช้หลังเครื่องหมายโคลอนใน str.format ได้ คุณจึงควบคุมความกว้าง ความแม่นยำ และการจัดแนวได้
print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))การจัดรูปแบบจากพจนานุกรม
แยกข้อมูลจากพจนานุกรมเข้า str.format ด้วย ** เพื่อเติมค่าลงในตัวยึดตำแหน่งที่มีชื่อ
data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))แนะนำสตริงแบบแม่แบบ
string.Template ใช้ตัวยึดตำแหน่งที่มี $ เป็นพื้นฐาน โดยตั้งใจออกแบบให้เรียบง่ายและปลอดภัยกว่าสำหรับแม่แบบที่ผู้ใช้จัดเตรียม เพราะไม่สามารถเรียกใช้นิพจน์ใด ๆ ตามอำเภอใจได้
from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))วงเล็บปีกกาเพื่อความชัดเจน
ครอบชื่อของตัวยึดตำแหน่งด้วยวงเล็บปีกกา เช่น ${name} เมื่อชื่อนั้นอยู่ติดกับข้อความอื่น
from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))safe_substitute
substitute จะส่งข้อผิดพลาด KeyError เมื่อไม่พบชื่อ ส่วน safe_substitute จะปล่อยตัวยึดตำแหน่งที่ไม่รู้จักไว้เหมือนเดิมแทน
from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))ควรใช้แบบใดเมื่อใด
แนวทางมีดังนี้: ควรใช้สตริงแบบ fสำหรับโค้ดทั่วไป ใช้ str.format เมื่อแม่แบบแยกออกจากข้อมูล และใช้แม่แบบสำหรับแม่แบบที่ผู้ใช้จัดเตรียมซึ่งไม่น่าเชื่อถือ
name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))แม่แบบจากข้อความภายนอก
เนื่องจากข้อความของแม่แบบเป็นเพียงสตริง คุณจึงโหลดข้อความนั้นจากไฟล์การตั้งค่าหรือฐานข้อมูล แล้วแทนค่าขณะทำงานได้
from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))ตรวจสอบความเข้าใจ
เครื่องมือใดปลอดภัยที่สุดสำหรับการแทนค่าลงในแม่แบบที่ผู้ใช้ไม่น่าเชื่อถือเป็นผู้จัดเตรียม
สรุปทบทวน: สตริงแม่แบบและ str.format
สรุปทางเลือกอื่นนอกจากสตริงแบบ f:
str.format()ใช้ช่องแทนค่า{}โดยรองรับอาร์กิวเมนต์ตามตำแหน่ง ตามชื่อ และข้อกำหนดรูปแบบทั้งหมดstring.Templateใช้ช่องแทนค่า$nameและปลอดภัยสำหรับข้อมูลนำเข้าที่ไม่น่าเชื่อถือsafe_substituteจะคงช่องแทนค่าที่ไม่รู้จักไว้ที่เดิม- ควรใช้สตริงแบบ f สำหรับโค้ดทั่วไป และใช้เครื่องมือเหล่านี้เมื่อแม่แบบมาจากภายนอกหรือไม่น่าเชื่อถือ
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))คำถามที่พบบ่อย
บทเรียน “สตริงแม่แบบและ str.format” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “สตริงแม่แบบและ str.format” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “สตริงแม่แบบและ str.format”
เครื่องมือจัดรูปแบบอื่น ๆ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “สตริงแม่แบบและ str.format” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- นิพจน์ f-string
- ตัวระบุรูปแบบ
- ภาษาขนาดเล็กสำหรับการจัดรูปแบบ
- สตริงแม่แบบและ str.format