Skrivning af lange tekststrenge på flere linjer i Python

Forretning

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 longJeg 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 udelade dem.
Hvis du har en metodekæde, der er længere end en enkelt linje af tegn, i stedet for en lang streng, kan du også bryde linjen 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://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

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 de følgende parenteser har en betydning.

  • {} = set
  • [] = list

Når du skriver en lang streng på flere linjer, skal du derfor bruge runde parenteser ().
Igen ved at bruge det faktum, at flere strenge kan sammenkædes til en enkelt streng, kan vi skrive følgende.

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

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
Copied title and URL