Chuỗi F Python: Nội suy chuỗi nâng cao

Tìm hiểu cách định dạng chuỗi trong Python bằng chuỗi F. Đánh giá biểu thức chính, định dạng chính xác float, in ngày giờ và cú pháp tự ghi tài liệu.

Thử trong Trình chỉnh sửa

Tổng quan

Định dạng chuỗi là công việc mà các nhà phát triển thực hiện hàng ngày. Về mặt lịch sử, định dạng Python dựa vào định dạng `%` kiểu C hoặc phương thức `.format()`. Về mặt chức năng, những kiểu cú pháp cũ này thường dẫn đến mã dài dòng, khó đọc.Python 3.6 đã giới thiệu Chuỗi ký tự được định dạng, thường được gọi là chuỗi F. Chuỗi F cung cấp cú pháp ngắn gọn, dễ đọc và được tối ưu hóa cao để chèn các biến và biểu thức trực tiếp vào chuỗi ký tự.

Để tạo một chuỗi F, bạn thêm `f` hoặc `F` vào tiền tố của chuỗi ký tự (ví dụ: `f"Xin chào {name}"`). Bất kỳ biến hoặc biểu thức Python nào được đặt bên trong dấu ngoặc nhọn `{...}` đều được đánh giá trong thời gian chạy và tự động chuyển đổi thành chuỗi. Chuỗi F không chỉ dành cho các biến; bạn có thể gọi các hàm, thực hiện các phép tính toán và thậm chí truy cập các giá trị từ điển bên trong dấu ngoặc nhọn, loại bỏ nhu cầu về các biến tạm thời.

Chuỗi F cũng có ngôn ngữ định dạng phong phú. Bằng cách thêm dấu hai chấm `:` bên trong dấu ngoặc nhọn, bạn có thể chỉ định quy tắc định dạng. Ví dụ: `{value:.2f}` làm tròn số float đến hai chữ số thập phân, `{num:03d}` đệm một số nguyên với các số 0 đứng đầu và `{date:%Y-%m-%d}` định dạng một đối tượng datetime. TrongPython 3.8+, chuỗi F đã giới thiệu cú pháp gỡ lỗi `{variable=}`, cú pháp này tự động in cả tên biến và giá trị của nó, giúp việc gỡ lỗi nhanh chóng và dễ dàng.

Đầu ra mã & thực thi

Thể hiện định dạng float, đánh giá biểu thức và tự ghi lại lỗi dấu bằng.

name = "Charlie"
price = 19.995
quantity = 3

# Basic interpolation and math evaluation
receipt = f"Customer: {name} | Total: ${price * quantity:.2f}"
print(receipt)

# Padding and alignment
number = 42
padded = f"ID: {number:05d}"
print(padded)

# Self-documenting debugging syntax (Python 3.8+)
value = 100
print(f"Debug output: {value=}")
Đầu ra thiết bị đầu cuối
Customer: Charlie | Total: $59.99
ID: 00042
Debug output: value=100

Triển khai từng bước

  • Làm đẹp các kết quả đầu ra bằng số trong báo cáo và bảng điều khiển
  • Xây dựng các truy vấn SQL động hoặc tải trọng yêu cầu API
  • In các câu lệnh gỡ lỗi nhanh trong quá trình thử nghiệm cục bộ

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

Chuỗi F có nhanh hơn các phương pháp định dạng chuỗi khác không?

Có, chuỗi F nhanh hơn định dạng % và .format() vì chúng được đánh giá trong thời gian chạy dưới dạng mã byte được tối ưu hóa thay vì được phân tích cú pháp khi thực thi.

Làm cách nào để in dấu ngoặc nhọn bằng chữ trong chuỗi F?

Bạn có thể thoát khỏi dấu ngoặc nhọn bằng cách nhân đôi chúng, ví dụ: f"{{Hello}}" sẽ in văn bản bằng chữ '{Hello}'.

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.