การเขียนข้อความยาวๆ หลายบรรทัดใน Python

ธุรกิจ

หากคุณใช้ตัวตรวจสอบโค้ดที่สอดคล้องกับ PEP8 เช่น flake8 ใน Python คุณจะได้รับข้อผิดพลาดต่อไปนี้เมื่อบรรทัดยาวเกิน 80 อักขระ
E501 line too long

ฉันจะแสดงวิธีแยกสตริงที่ยาวกว่า 80 อักขระ เช่น URL ออกเป็นโค้ดหลายบรรทัด

  • ละเว้นการขึ้นบรรทัดใหม่ด้วยแบ็กสแลช (\)
  • ตัวแบ่งบรรทัดสามารถใส่ในวงเล็บได้อย่างอิสระ

นอกจากนี้ โมดูล textwrap ยังมีประโยชน์หากคุณต้องการส่งออกและแสดงสตริงที่ยาวโดยการตัดคำหรือย่อ

ถ้าจำนวนอักขระในบรรทัดยาวกว่าในสายยาวของเมธอด บรรทัดนั้นสามารถแตกในโค้ดได้เช่นกัน

ละเว้นการขึ้นบรรทัดใหม่ด้วยแบ็กสแลช (\)

ใน Python แบ็กสแลช (\) เป็นอักขระต่อเนื่อง และเมื่อวางไว้ที่ท้ายบรรทัด จะไม่สนใจการขึ้นบรรทัดใหม่ และถือว่าบรรทัดนั้นดำเนินต่อไป

n = 1 + 2 \
    + 3

print(n)
# 6

นอกจากนี้ เมื่อตัวอักษรสตริงหลายตัวเขียนต่อเนื่องกัน จะถูกต่อกันเพื่อสร้างสตริงเดียวดังที่แสดงด้านล่าง

s = 'aaa' 'bbb'

print(s)
# aaabbb

เมื่อรวมทั้งสองเข้าด้วยกันแล้ว สตริงที่ยาวสามารถเขียนเป็นโค้ดหลายบรรทัดได้ดังที่แสดงด้านล่าง

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

โปรดทราบว่าเฉพาะตัวอักษรสตริง (ที่อยู่ใน ‘ หรือ “”) เท่านั้นที่สามารถต่อกันได้ และตัวแปรที่มีสตริงจะส่งผลให้เกิดข้อผิดพลาด

s_var = 'xxx'

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

หากต้องการเชื่อมตัวแปรระหว่างกันหรือตัวแปรกับตัวอักษรสตริง ให้ใช้ตัวดำเนินการ +

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

แม้ว่าจะถูกคั่นด้วยแบ็กสแลช (\) ตัวดำเนินการ + ก็ยังจำเป็นในการเชื่อมโยงตัวแปรเข้าด้วยกัน

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

ตัวแบ่งบรรทัดสามารถใส่ในวงเล็บได้อย่างอิสระ

ใน Python คุณสามารถแบ่งบรรทัดได้อย่างอิสระภายในวงเล็บต่อไปนี้ คุณสามารถใช้กฎนี้เพื่อใส่สตริงข้อความยาวๆ ไว้ในวงเล็บ

  • ()
  • {}
  • []

โปรดทราบว่ามีการใช้วงเล็บในลักษณะอื่น ดังที่แสดงด้านล่าง ดังนั้นให้ใช้วงเล็บเหลี่ยม () สำหรับการใช้งานดังกล่าว

  • {}ชุด: Set
  • []: รายการ

อีกครั้งโดยใช้ข้อเท็จจริงที่ว่าหลายสตริงสามารถต่อกันเพื่อสร้างสตริงเดียว เราสามารถเขียนสิ่งต่อไปนี้

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

ในตัวอย่างที่มีแบ็กสแลช ตัวดำเนินการ + จำเป็นเมื่อรวมตัวแปร

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL