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