การแทรกค่าลงในสตริง

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()