Viết chuỗi văn bản dài trên nhiều dòng bằng Python

Kinh doanh

Nếu bạn sử dụng trình kiểm tra mã tuân thủ PEP8 chẳng hạn như flake8 trong Python, bạn sẽ gặp lỗi sau khi một dòng vượt quá 80 ký tự.
E501 line too long

Tôi sẽ chỉ cho bạn cách ngắt một chuỗi dài hơn 80 ký tự, chẳng hạn như URL, thành nhiều dòng mã.

  • Bỏ qua các ngắt dòng có dấu gạch chéo ngược (\)
  • Các dấu ngắt dòng có thể được đặt tự do trong dấu ngoặc đơn

Ngoài ra, mô-đun textwrap rất hữu ích nếu bạn muốn xuất và hiển thị các chuỗi dài bằng cách gói hoặc viết tắt chúng.

Nếu số ký tự trong một dòng trong chuỗi phương thức dài hơn trong một chuỗi dài, thì dòng đó cũng có thể bị ngắt trong mã.

Bỏ qua các ngắt dòng có dấu gạch chéo ngược (\)

Trong Python, dấu gạch chéo ngược (\) là một ký tự tiếp tục và khi được đặt ở cuối dòng, nó sẽ bỏ qua các ngắt dòng tiếp theo và giả sử dòng đang tiếp tục.

n = 1 + 2 \
    + 3

print(n)
# 6

Ngoài ra, khi nhiều ký tự chuỗi được viết liên tiếp, chúng sẽ được nối với nhau để tạo thành một chuỗi duy nhất như hình dưới đây.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Kết hợp cả hai, một chuỗi dài có thể được viết thành nhiều dòng mã, như hình dưới đây.

s = 'https://ja.wikipedia.org/wiki/'\
    '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'\
    '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E'

print(s)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Lưu ý rằng chỉ có thể nối các ký tự của chuỗi (nằm trong ‘hoặc “”) và các biến có chứa chuỗi sẽ dẫn đến lỗi.

s_var = 'xxx'

# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax

Để nối các biến với nhau hoặc các biến với chuỗi ký tự, hãy sử dụng toán tử +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Ngay cả khi được phân tách bằng dấu gạch chéo ngược (\), toán tử + vẫn được yêu cầu để nối các biến.

s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
    + s_var\
    + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Các dấu ngắt dòng có thể được đặt tự do trong dấu ngoặc đơn

Trong Python, bạn có thể tự do ngắt dòng trong các dấu ngoặc đơn sau. Bạn có thể sử dụng quy tắc này để đặt các chuỗi văn bản dài trong dấu ngoặc đơn.

  • ()
  • {}
  • []

Lưu ý rằng một số dấu ngoặc đơn được sử dụng theo những cách khác, như được hiển thị bên dưới, vì vậy hãy sử dụng dấu ngoặc tròn () cho cách sử dụng như vậy.

  • {}Đặt: Đặt
  • []: Danh sách

Một lần nữa, sử dụng thực tế là nhiều chuỗi có thể được nối với nhau để tạo thành một chuỗi duy nhất, chúng ta có thể viết như sau

s = ('https://ja.wikipedia.org/wiki/'
     '%E3%83%97%E3%83%AD%E3%82%B0%E3%83'
     '%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E')

print(s)
# https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E

Như trong ví dụ với dấu gạch chéo ngược, toán tử + là bắt buộc khi các biến được đưa vào.

s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
     + s_var
     + 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb