Python:
การแทรกค่าลงในสตริง
วิธีการ:
ใน Python 3.6 ขึ้นไป คุณสามารถแทรกสตริงโดยใช้ f-strings ดังนี้:
name = 'Alice'
age = 30
greeting = f"สวัสดี, {name}. คุณอายุ {age} ปีแล้ว."
print(greeting)
ผลลัพธ์:
สวัสดี, Alice. คุณอายุ 30 ปีแล้ว.
คุณยังสามารถใช้นิพจน์ภายในวงเล็บปีกกาได้:
a = 5
b = 10
info = f"ห้าบวกสิบเท่ากับ {a + b}, ไม่ใช่ {2 * (a + b)}."
print(info)
ผลลัพธ์:
ห้าบวกสิบเท่ากับ 15, ไม่ใช่ 30.
ดูให้ลึกลง
ก่อน Python 3.6, .format()
เป็นวิธีการที่คนนิยมใช้สำหรับการแทรกสตริง:
name = 'Bob'
age = 25
greeting = "สวัสดี, {}. คุณอายุ {} ปีแล้ว.".format(name, age)
print(greeting)
Python เวอร์ชันเก่า (เวอร์ชัน < 2.6) ใช้ตัวดำเนินการ %
สำหรับการแทรกสตริง ซึ่งน้อยความเข้าใจและอาจสร้างความยุ่งยากได้เมื่อมีตัวแปรหลายตัว:
name = 'Carol'
age = 35
greeting = "สวัสดี, %s. คุณอายุ %d ปีแล้ว." % (name, age)
print(greeting)
นอกจากไวยากรณ์ที่สะอาดกว่า f-strings ยังเร็วกว่าเพราะว่าถูกประเมินในเวลาที่โปรแกรมทำงานและจากนั้นจะถูกแปลงเป็นการดำเนินการรูปแบบสตริงที่มีประสิทธิภาพโดยตรง วิธี .format()
และตัวดำเนินการ %
มีขั้นตอนมากกว่าและช้ากว่า
ดูเพิ่มเติม
- PEP 498 – Literal String Interpolation สำหรับเอกสารการใช้งาน f-strings อย่างเป็นทางการ
- Python f-strings โดย Real Python เพื่อบทช่วยสอนเกี่ยวกับการใช้งาน f-strings
- วิธีการ .format() ในเอกสารการใช้งาน Python เพื่อเข้าใจวิธีการจัดรูปแบบสตริงแบบเก่า
.format()