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 long
Ukáž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