Hvis du bruger en PEP8-kompatibel kodekontrolprogram som f.eks. flake8 i Python, vil du få følgende fejl, når en linje overstiger 80 tegn.E501 line too long
Jeg vil vise dig, hvordan du kan opdele en lang streng på over 80 tegn, f.eks. en URL, i flere kodelinjer.
- Ignorer linjeskift med backslashes (\)
- Linjeskift kan frit omsluttes af parenteser
Textwrap-modulet er også nyttigt, hvis du ønsker at udskrive og vise lange strenge ved at ombryde eller forkortere dem.
Hvis antallet af tegn i en linje er længere i en metodekæde end i en lang streng, kan linjen også brydes i koden.
Ignorer linjeskift med backslashes (\)
I Python er backslash (\) et fortsættelsestegn, og når det er placeret i slutningen af en linje, ignorerer det efterfølgende linjeskift og antager, at linjen fortsætter.
n = 1 + 2 \
+ 3
print(n)
# 6
Når flere strengliteraler skrives efter hinanden, sammenkædes de også til en enkelt streng som vist nedenfor.
s = 'aaa' 'bbb'
print(s)
# aaabbb
Ved at kombinere de to metoder kan en lang streng skrives i flere linjer kode, som vist nedenfor.
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
Bemærk, at kun strenglitteraler (omsluttet af ' eller “”) kan sammenkædes, og at variabler, der indeholder strenge, vil resultere i en fejl.
s_var = 'xxx'
# s = 'aaa' s_var 'bbb'
# SyntaxError: invalid syntax
Brug operatoren + for at sammenkæde variabler med hinanden eller variabler med strengliteraler.
s = 'aaa' + s_var + 'bbb'
print(s)
# aaaxxxbbb
Selv når de er adskilt af en skråstreg (\), er operatoren + nødvendig for at sammenkæde variabler.
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'\
+ s_var\
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Linjeskift kan frit omsluttes af parenteser
I Python kan du frit bryde linjer inden for de følgende parenteser. Du kan bruge denne regel til at omslutte lange tekststrenge i parenteser.
()
{}
[]
Bemærk, at nogle parenteser bruges på andre måder, som vist nedenfor, så brug runde parenteser () til denne brug.
{}
Sæt: Sæt[]
: Liste
Igen ved at bruge det faktum, at flere strenge kan sammenkædes til en enkelt streng, kan vi skrive følgende
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
Som i eksemplet med skråstregen er operatoren + påkrævet, når der indgår variabler.
s = ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ s_var
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb