Lange reeksen tekst op meerdere regels schrijven in Python

Bedrijf

Als je een PEP8-compatibele code checker gebruikt, zoals flake8 in Python, krijg je de volgende foutmelding als een regel langer is dan 80 karakters.
E501 line too long

Ik zal je laten zien hoe je een lange string van meer dan 80 karakters, zoals een URL, kunt opdelen in meerdere regels code.

  • Negeer regeleindes met backslashes (spaties)
  • Regeleinden kunnen vrij tussen haakjes worden geplaatst

De textwrap module is ook nuttig als u lange reeksen wilt uitvoeren en weergeven door ze te omwikkelen of af te korten.

Indien het aantal karakters in een regel langer is in een method chain dan in een lange string, kan de regel ook in de code worden afgebroken.

Negeer regeleindes met backslashes (spaties)

In Python is de backslash (\) een voortzettingsteken, en wanneer deze aan het eind van een regel wordt geplaatst, worden volgende regeleindes genegeerd en wordt aangenomen dat de regel wordt voortgezet.

n = 1 + 2 \
    + 3

print(n)
# 6

Ook wanneer meerdere string-literals achter elkaar worden geschreven, worden ze aaneengeschakeld om één string te vormen, zoals hieronder wordt getoond.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Door de twee te combineren kan een lange string in meerdere regels code worden geschreven, zoals hieronder wordt getoond.

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

Merk op dat alleen string-literals (ingesloten door ' of “”) kunnen worden samengevoegd, en dat variabelen die strings bevatten een fout zullen opleveren.

s_var = 'xxx'

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

Om variabelen aan elkaar te koppelen of variabelen aan string-literalen, gebruik je de + operator.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Zelfs indien gescheiden door een backslash (\), is de + operator vereist om variabelen aan elkaar te koppelen.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Regeleinden kunnen vrij tussen haakjes worden geplaatst

In Python kun je regels vrij breken binnen de volgende haakjes. U kunt deze regel gebruiken om lange reeksen tekst tussen haakjes te zetten.

  • ()
  • {}
  • []

Merk op dat sommige haakjes op andere manieren worden gebruikt, zoals hieronder, dus gebruik ronde haakjes () voor dergelijk gebruik.

  • {}Set: Set
  • []: Lijst

Opnieuw, gebruikmakend van het feit dat meerdere strings aan elkaar kunnen worden gekoppeld om één enkele string te vormen, kunnen we het volgende schrijven

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

Net als in het voorbeeld met de backslash, is de + operator vereist wanneer variabelen worden opgenomen.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb