Cách định dạng chuỗi trong Python (chuỗi f & định dạng)

Tìm hiểu các kỹ thuật định dạng chuỗi tốt nhất trong Python. So sánh các chuỗi f, định dạng() và định dạng phần trăm hiện đại với các ví dụ về mã.

Hãy thử Giải pháp này trong Trình chỉnh sửa

Tổng quan

Chuỗi định dạng là điều cần thiết hàng ngày để hiển thị các biến bên trong tin nhắn, xuất nhật ký, in các bản gỡ lỗi trên bảng điều khiển và xây dựng trang web. Python đã phát triển định dạng chuỗi một cách đáng kể trong nhiều năm qua, cung cấp nhiều tùy chọn để xây dựng cách trình bày văn bản động một cách an toàn và dễ đọc.

Trong Python hiện đại (3.6+), cách tiếp cận tiêu chuẩn và phổ biến nhất là định dạng bằng chuỗi f (Chuỗi ký tự được định dạng). Bằng cách thêm tiền tố `f` hoặc `F` vào một chuỗi, bạn có thể nhúng các biểu thức hoặc biến Python trực tiếp bên trong dấu ngoặc nhọn `{}`. Các biểu thức này được đánh giá trong thời gian chạy, làm cho chuỗi f nhanh hơn và dễ đọc hơn đáng kể so với các phương pháp định dạng cũ.

Các cơ sở mã Python cũ hơn có thể sử dụng phương thức `.format()` hoặc định dạng phần trăm `%`. Mặc dù vẫn được hỗ trợ nhưng nhìn chung chúng không được khuyến khích sử dụng mã mới. chuỗi f cũng hỗ trợ các công cụ xác định định dạng nội tuyến mạnh mẽ, cho phép bạn kiểm soát độ chính xác thập phân (ví dụ: `{value:.2f}`), căn chỉnh văn bản hoặc định dạng ngày tháng trực tiếp bên trong các biến chuỗi.

Đầu ra mã & thực thi

Tập lệnh này minh họa việc in các khối văn bản động bằng cách sử dụng chuỗi f, định dạng dấu phẩy động và sử dụng .format().

name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
Đầu ra thiết bị đầu cuối
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

Triển khai từng bước

  • Tiền tố chuỗi ký tự của bạn bằng ký tự f (ví dụ: f'Xin chào...').
  • Chèn biến hoặc biểu thức trực tiếp vào dấu ngoặc nhọn {} trong chuỗi.
  • Sử dụng các thông số định dạng như :.2f để xử lý định dạng thập phân bên trong dấu ngoặc nhọn.

Câu hỏi thường gặp

Chuỗi f có nhanh hơn định dạng .format() và % không?

Có, chuỗi f được đánh giá trong thời gian chạy dưới dạng các thao tác mã byte được tối ưu hóa, làm cho chúng nhanh hơn cả toán tử .format() và %.

Tôi có thể chạy các hàm hoặc đánh giá các biểu thức bên trong chuỗi f không?

Có, mọi biểu thức Python hợp lệ (bao gồm các phép toán, lệnh gọi hàm và tra cứu từ điển) đều có thể được đánh giá bên trong dấu ngoặc nhọn.

Chủ đề liên quan

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.