Cách viết chuỗi nhiều dòng trong Python (Ba dấu ngoặc kép và nối)

Tìm hiểu những cách tốt nhất để viết chuỗi nhiều dòng trong Python. Khám phá dấu ngoặc kép, nối dấu ngoặc đơn, phương thức nối dòng mới và điều khiển định dạng.

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

Tổng quan

Khi viết các khối văn bản bên trong ứng dụng của bạn—chẳng hạn như truy vấn SQL, mẫu HTML, hướng dẫn CLI hoặc thông báo gỡ lỗi dài—bạn thường sẽ cần trải dài các giá trị chuỗi trên nhiều dòng. Python cung cấp một số cách để xác định các chuỗi nhiều dòng, mỗi cách có ý nghĩa định dạng riêng biệt.

Cách trực tiếp và phổ biến nhất để viết một chuỗi nhiều dòng là sử dụng cú pháp dấu ngoặc kép (`'''` hoặc `"""`). Chuỗi dấu ngoặc kép ba giữ nguyên tất cả ký tự đầu vào theo nghĩa đen, bao gồm cả dòng mới thô và thụt lề. Điều này giúp định dạng có tính trực quan cao nhưng có một nhược điểm: mọi tab hoặc dấu cách ở đầu được dùng để căn chỉnh mã bên trong các vòng lặp hoặc lớp lồng nhau sẽ trở thành một phần của giá trị chuỗi thực tế.

Để xác định một chuỗi nhiều dòng trải dài nhiều dòng trong mã nguồn của bạn một cách trực quan nhưng được biên dịch thành một dòng dài duy nhất (hoặc không nắm bắt được khoảng trắng thụt lề mã), bạn có thể gói các chuỗi trích dẫn đơn tiêu chuẩn trong dấu ngoặc đơn. Python tự động ghép các chuỗi ký tự liền kề bên trong dấu ngoặc đơn, giúp mã của bạn rõ ràng và dễ đọc hơn.

Đầu ra mã & thực thi

Tập lệnh này minh họa cách viết văn bản nhiều dòng bằng cách sử dụng dấu ngoặc kép, nối chuỗi dấu ngoặc đơn và thụt lề rõ ràng.

# 1. Triple Quote Syntax (preserves all newlines and indentation)
sql_query = """SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;"""

print("--- Triple Quotes Query ---")
print(sql_query)

# 2. Parentheses Concatenation (splits code line, compiles into single line)
long_message = (
    "This is a long message that we split "
    "across multiple lines in our editor, "
    "but it compiles into a single text block."
)
print("\n--- Parentheses Concatenation ---")
print(long_message)

# 3. Joining list elements for clean line breaks
lines = [
    "First instruction line.",
    "Second instruction line.",
    "Third instruction line."
]
joined_text = "\n".join(lines)
print("\n--- Joined Lines ---")
print(joined_text)
Đầu ra thiết bị đầu cuối
--- Triple Quotes Query ---
SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;

--- Parentheses Concatenation ---
This is a long message that we split across multiple lines in our editor, but it compiles into a single text block.

--- Joined Lines ---
First instruction line.
Second instruction line.
Third instruction line.

Triển khai từng bước

  • Sử dụng dấu ngoặc kép (''' hoặc """) để viết các khối văn bản dài giúp giữ nguyên các dòng mới.
  • Gói các chuỗi liên tiếp trong dấu ngoặc đơn ( ) không có dấu phẩy để phân tách mã một cách trực quan mà không cần thêm dòng mới vào đầu ra.
  • Sử dụng textwrap.dedent() khi làm việc với ba dấu ngoặc kép bên trong các lớp hoặc hàm để dọn sạch phần thụt đầu dòng.

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

Làm cách nào để xóa thụt đầu dòng khỏi chuỗi trích dẫn ba lồng nhau?

Nhập mô-đun textwrap tích hợp sẵn và chuyển chuỗi tới textwrap.dedent(text) để xóa khoảng trắng ở đầu.

Sự khác biệt giữa dấu ngoặc đơn và dấu ngoặc kép là gì?

Không có sự khác biệt về chức năng giữa ''' và """. Hãy chọn một quy ước và tuân thủ nó một cách nhất quán trong toàn bộ dự án của bạ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.