Python có nhiều cách để xây dựng chuỗi với các giá trị động. Cách tiếp cận hiện đại, được khuyến nghị là f-string (formatted string literal), được giới thiệu trong Python 3.6.
f-string — mặc định hiện đại
name =
age =
msg =
Tiền tố f cho phép bạn nhúng biểu thức trực tiếp vào {} — súc tích, dễ đọc và nhanh. Đây là cách được ưu tiên trong Python hiện đại.
f"{3.14159:.2f}" # "3.14" — 2 chữ số thập phân
f"{1000000:,}" # "1,000,000" — dấu phân cách hàng nghìn
f"{0.85:.1%}" # "85.0%" — phần trăm
f"{42:05d}" # "00042" — đệm số 0 đến độ rộng 5
f"{'hi':>10}" # " hi" — căn phải trong độ rộng 10
f"{'hi':^10}" # " hi " — căn giữa
Phần :spec sau giá trị kiểm soát độ chính xác, đệm, căn lề và định dạng số — mạnh mẽ cho đầu ra gọn gàng.
f"{name=}" # "name='Ann'" — in cả biểu thức VÀ giá trị
Ký hiệu = tiện lợi cho việc gỡ lỗi nhanh — nó hiển thị tên biến và giá trị của nó.
"{} is {}".format(name, age) # str.format() — tiêu chuẩn trước f-string
"%s is %d" % (name, age) # định dạng % — kiểu C cũ (tránh dùng trong code mới)
name + " is " + str(age) # nối chuỗi — dài dòng, dễ lỗi
.format() vẫn phổ biến trong code cũ; định dạng % là kiểu cũ; nối chuỗi thô không được khuyến khích (dài dòng và cần chuyển đổi str() thủ công).
Định dạng chuỗi cần đến liên tục — xây dựng thông điệp, log, đầu ra, truy vấn.
F-string là tiêu chuẩn hiện đại, dễ đọc và hiệu quả, và biết các format specifier của chúng (độ chính xác, đệm, căn lề, dấu phân cách) cho phép bạn tạo ra đầu ra gọn gàng, chuyên nghiệp mà không cần code dài dòng.
Nhận biết các kiểu cũ hơn .format() và % giúp ích khi đọc các codebase hiện có.
Dùng f-string tốt là một phần nhỏ nhưng phổ biến của việc viết Python rõ ràng, đúng phong cách.