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 longIk 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 je lange reeksen wil uitvoeren en weergeven door ze te omwikkelen of weg te laten.
Indien je een method chain hebt die langer is dan een enkele lijn van karakters, in plaats van een lange string, kan je de lijn in de code ook afbreken.

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://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

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 de volgende haakjes een betekenis hebben.

  • {} = set
  • [] = list

Gebruik daarom ronde haakjes () als u een lange tekenreeks op meerdere regels schrijft.
Nogmaals, 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://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

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

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb