Písanie dlhých textových reťazcov na viacerých riadkoch v jazyku Python

obchodné

Ak používate program na kontrolu kódu kompatibilný s PEP8, napríklad flake8 v jazyku Python, zobrazí sa nasledujúca chyba, keď riadok prekročí 80 znakov.E501 line too longUkážem vám, ako rozdeliť dlhý reťazec dlhší ako 80 znakov, napríklad adresu URL, na viac riadkov kódu.

  • Ignorovanie zlomov riadkov so spätným lomítkom (\)
  • Zlomy riadkov môžu byť voľne uzavreté v zátvorkách

Modul textwrap je užitočný aj vtedy, ak chcete vypisovať a zobrazovať dlhé reťazce ich zabalením alebo vynechaním.
Ak máte reťazec metód, ktorý je dlhší ako jeden riadok znakov, a nie ako dlhý reťazec, môžete ho v kóde tiež zalomiť.

Ignorovanie zlomov riadkov so spätným lomítkom (\)

V jazyku Python je spätné lomítko (\) znakom pokračovania, a keď je umiestnené na konci riadku, ignoruje následné zalomenie riadku a predpokladá, že riadok pokračuje.

n = 1 + 2 \
    + 3

print(n)
# 6

Keď sa zapíše viacero reťazcových literálov za sebou, spojia sa do jedného reťazca, ako je znázornené nižšie.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Kombináciou týchto dvoch možností možno dlhý reťazec zapísať vo viacerých riadkoch kódu, ako je znázornené nižšie.

s = 'https://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://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

Všimnite si, že spájať možno len reťazcové literály (uzavreté v ' alebo „“) a premenné obsahujúce reťazce budú mať za následok chybu.

s_var = 'xxx'

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

Ak chcete spojiť premenné navzájom alebo premenné do reťazcových literálov, použite operátor +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Aj keď sú premenné oddelené spätným lomítkom (\), na spojenie premenných sa vyžaduje operátor +.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Zlomy riadkov môžu byť voľne uzavreté v zátvorkách

V jazyku Python môžete ľubovoľne zalamovať riadky v nasledujúcich zátvorkách. Toto pravidlo môžete použiť na uzavretie dlhých textových reťazcov do zátvoriek.

  • ()
  • {}
  • []

Všimnite si, že nasledujúce zátvorky majú svoj význam.

  • {} = set
  • [] = list

Preto pri zápise dlhého reťazca na viacerých riadkoch používajte okrúhle zátvorky ().
Ak opäť využijeme skutočnosť, že viacero reťazcov možno spojiť do jedného reťazca, môžeme napísať nasledovné.

s = ('https://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://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

Rovnako ako v príklade so spätným lomítkom sa operátor + vyžaduje, keď sú zahrnuté premenné.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL