Python มีหลายวิธีในการสร้าง string ที่มีค่าแบบไดนามิก วิธีที่ทันสมัยและแนะนำให้ใช้คือ f-string (formatted string literal) ซึ่งเปิดตัวใน Python 3.6
f-strings — ค่าเริ่มต้นแบบทันสมัย
name =
age =
msg =
prefix f ช่วยให้คุณฝัง expression ลงใน {} ได้โดยตรง — กระชับ อ่านง่าย และรวดเร็ว นี่คือวิธีที่แนะนำใน Python สมัยใหม่
f"{3.14159:.2f}" # "3.14" — 2 decimal places
f"{1000000:,}" # "1,000,000" — thousands separator
f"{0.85:.1%}" # "85.0%" — percentage
f"{42:05d}" # "00042" — pad with zeros to width 5
f"{'hi':>10}" # " hi" — right-align in width 10
f"{'hi':^10}" # " hi " — center
:spec ที่อยู่หลังค่าจะควบคุมความละเอียด (precision) การเติมช่องว่าง (padding) การจัดแนว (alignment) และการจัดรูปแบบตัวเลข — ทรงพลังสำหรับผลลัพธ์ที่สะอาดเรียบร้อย
f"{name=}" # "name='Ann'" — prints both the expression AND value
= มีประโยชน์สำหรับการ debug อย่างรวดเร็ว — มันจะแสดงทั้งชื่อตัวแปรและค่าของมัน
"{} is {}".format(name, age) # str.format() — pre-f-string standard
"%s is %d" % (name, age) # %-formatting — old C-style (avoid in new code)
name + " is " + str(age) # concatenation — verbose, error-prone
.format() ยังพบได้บ่อยในโค้ดเก่า; %-formatting เป็นของเดิม (legacy); การต่อ string แบบดิบไม่แนะนำให้ใช้ (เยิ่นเย้อและต้องแปลงด้วย str() เอง)
การจัดรูปแบบ string จำเป็นต้องใช้อยู่ตลอดเวลา — ทั้งสร้างข้อความ บันทึก log ผลลัพธ์ และ query
f-strings เป็นมาตรฐานที่ทันสมัย อ่านง่าย และมีประสิทธิภาพ และการรู้จัก format specifiers ของมัน (ความละเอียด การเติมช่องว่าง การจัดแนว ตัวคั่น) ช่วยให้คุณสร้างผลลัพธ์ที่สะอาดและดูเป็นมืออาชีพได้โดยไม่ต้องเขียนโค้ดเยิ่นเย้อ
การรู้จักรูปแบบเก่าอย่าง .format() และ % ก็ช่วยได้เมื่อต้องอ่านโค้ดเบสที่มีอยู่เดิม
การใช้ f-strings ได้ดีเป็นส่วนเล็ก ๆ แต่แทรกซึมอยู่ทั่วไปในการเขียน Python ที่ชัดเจนและเป็นสำนวนที่ถูกต้อง