Hosszú szövegek írása több sorban Pythonban

Üzleti

Ha egy PEP8-kompatibilis kódellenőrzőt, például a flake8-at használja Pythonban, a következő hibát kapja, ha egy sor meghaladja a 80 karaktert.
E501 line too long

Megmutatom, hogyan lehet egy hosszú, több mint 80 karakteres karakterláncot, például egy URL-t, több kódsorra bontani.

  • A backslashes sortörések figyelmen kívül hagyása (\)
  • A sortöréseket szabadon zárójelbe lehet tenni.

A textwrap modul akkor is hasznos, ha hosszú karakterláncokat akarsz kiadni és megjeleníteni úgy, hogy felgöngyölíted vagy lerövidíted őket.

Ha egy metódusláncban a sorban lévő karakterek száma hosszabb, mint egy hosszú karakterláncban, akkor a sor a kódban is megszakítható.

A backslashes sortörések figyelmen kívül hagyása (\)

A Pythonban a backslash (\) egy folytatás karakter, és ha a sor végére kerül, akkor figyelmen kívül hagyja a későbbi sortöréseket, és azt feltételezi, hogy a sor folytatódik.

n = 1 + 2 \
    + 3

print(n)
# 6

Továbbá, ha több karakterlánc literált írunk egymás után, akkor az alábbiakban látható módon egyetlen karakterláncot alkotnak.

s = 'aaa' 'bbb'

print(s)
# aaabbb

A kettő kombinálásával egy hosszú karakterlánc több sornyi kóddal írható meg, ahogy az alábbiakban látható.

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

Ne feledje, hogy csak a karakterláncok (' vagy “” keretbe zárva) kapcsolhatók össze, és a karakterláncokat tartalmazó változók hibát fognak eredményezni.

s_var = 'xxx'

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

A változók egymáshoz vagy a változók string literálokhoz való kapcsolásához használja a + operátort.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

A változók összekapcsolásához a + operátorra akkor is szükség van, ha a változókat backslash (\) választja el.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

A sortöréseket szabadon zárójelbe lehet tenni.

Pythonban a sorokat a következő zárójeleken belül szabadon megszakíthatjuk. Ezt a szabályt használhatja hosszú szövegsorok zárójelbe zárására.

  • ()
  • {}
  • []

Vegye figyelembe, hogy néhány zárójelet más módon is használnak, ahogy az alább látható, ezért az ilyen használathoz kerek zárójeleket () használjon.

  • {}Kész: …
  • []: Lista

Ismét felhasználva azt a tényt, hogy több karakterláncot is össze lehet fűzni egyetlen karakterláncot alkotva, a következőt írhatjuk le

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

Ahogy a backslash példában, a + operátorra akkor van szükség, ha változókat tartalmaz.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL