Python การจัดรูปแบบข้อความ

เทคนิคที่ช่วยในการจัดรูปแบบข้อความและแสดงผลข้อมูลให้อยู่ในรูปแบบที่ต้องการ สามารถทำได้หลายวิธี ดังนี้

การใช้ Percent Formatting (%)

รูปแบบเก่าที่มาจากภาษา C โดยใช้เครื่องหมาย % ในการกำหนดตำแหน่งที่จะใส่ค่าต่าง ๆ

ตัวอย่าง

Python
name = "John"
age = 30
print("My name is %s and I am %d years old." % (name, age))
  • %s สำหรับ string
  • %d สำหรับ integer
  • %f สำหรับ float

ผลลัพธ์

การใช้ str.format() Method

รูปแบบนี้ทำให้สามารถกำหนดตำแหน่งของค่าในสตริงได้สะดวกขึ้นโดยใช้วงเล็บปีกกา {} เป็นตำแหน่งที่ใส่ค่า

ตัวอย่าง

Python
name = "Alice"
age = 25
print("My name is {} and I am {} years old.".format(name, age))

สามารถใช้การกำหนดตำแหน่งของค่าหรือการจัดรูปแบบเพิ่มเติมได้

Python
print("I have {0} apples and {1} oranges.".format(3, 5))  # ใส่ตำแหน่ง 0, 1

ผลลัพธ์

นอกจากนี้ยังสามารถใช้ชื่อแทนได้

Python
print("My name is {name} and I am {age} years old.".format(name="Tom", age=28))

การใช้ f-strings (Formatted String Literals)

รูปแบบนี้เริ่มต้นใน Python 3.6 โดยใส่ค่าตัวแปรโดยตรงในสตริงโดยการนำหน้าด้วยตัว f

ตัวอย่าง

Python
name = "Bob"
age = 40
print(f"My name is {name} and I am {age} years old.")

ผลลัพธ์

นอกจากนี้สามารถใช้การคำนวณและฟังก์ชันภายใน {} ได้เลย

Python
print(f"Next year I will be {age + 1} years old.")

การใช้ Template Strings (จากโมดูล string)

เป็นรูปแบบที่ปลอดภัยสำหรับการใช้งานร่วมกับข้อมูลภายนอกหรือข้อมูลจากผู้ใช้ สามารถนำไปใช้ในการสร้างเทมเพลตสำหรับการแสดงผล

ตัวอย่าง

Python
from string import Template

template = Template("My name is $name and I am $age years old.")
result = template.substitute(name="Eve", age=22)
print(result)

ผลลัพธ์

การจัดรูปแบบตัวเลขและทศนิยม

สามารถใช้ f-string หรือ format() เพื่อจัดรูปแบบตัวเลขที่ต้องการแสดงทศนิยมเฉพาะตำแหน่งได้

ตัวอย่าง

Python
pi = 3.14159
print(f"The value of pi is approximately {pi:.2f}")  # แสดงทศนิยม 2 ตำแหน่ง

ผลลัพธ์

การจัดรูปแบบตามความกว้างและการจัดตำแหน่ง

สามารถจัดตำแหน่งข้อมูลและความกว้างได้โดยใช้ฟังก์ชันในรูปแบบต่าง ๆ เช่น ขวา ซ้าย และกลาง

ตัวอย่าง

Python
print(f"|{'left':<10}|{'center':^10}|{'right':>10}|")  # จัดซ้าย กลาง ขวา

ผลลัพธ์

|left      |  center  |     right|

สรุป

  • % Formatting: รูปแบบเก่า ใช้งานคล้ายภาษา C
  • str.format(): รูปแบบที่ยืดหยุ่น สามารถกำหนดตำแหน่งหรือชื่อแทนได้
  • f-strings: รูปแบบที่นิยมใน Python 3.6 ขึ้นไป สะดวกและอ่านง่าย
  • Template Strings: ใช้งานเมื่อมีความจำเป็นต้องรับข้อมูลจากภายนอกหรือมีความปลอดภัยในการจัดการสตริง

การเลือกใช้แต่ละแบบขึ้นอยู่กับความสะดวกและการใช้งานเฉพาะด้านของผู้พัฒนา

แชร์เรื่องนี้