Pisanje dugih nizova teksta u više redaka u Pythonu

Poslovanje

Ako koristite provjeru koda usklađenog s PEP8, kao što je flake8 u Pythonu, dobit ćete sljedeću pogrešku kada redak premaši 80 znakova.
E501 line too long

Pokazat ću vam kako razbiti dugi niz od više od 80 znakova, kao što je URL, u više redaka koda.

  • Zanemarite prijelome reda s obrnutim crtama (\)
  • Prijelomi redaka mogu se slobodno staviti u zagrade

Također, modul textwrap je koristan ako želite ispisati i prikazati duge nizove prelamanjem ili skraćenjem.

Ako je broj znakova u retku duži u lancu metoda nego u dugom nizu, redak se također može prekinuti u kodu.

Zanemarite prijelome reda s obrnutim crtama (\)

U Pythonu, obrnuta kosa crta (\) je znak za nastavak, a kada se stavi na kraj retka, zanemaruje naknadne prijelome reda i pretpostavlja da se red nastavlja.

n = 1 + 2 \
    + 3

print(n)
# 6

Također, kada se uzastopno napiše više literala niza, oni se spajaju u jedan niz kao što je prikazano u nastavku.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Kombinirajući to dvoje, dugi niz može se napisati u više redaka koda, kao što je prikazano u nastavku.

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

Imajte na umu da se samo literali niza (ograđeni u ‘ ili “”) mogu spojiti, a varijable koje sadrže nizove rezultirat će pogreškom.

s_var = 'xxx'

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

Da spojite varijable jedne s drugima ili varijable u literale niza, koristite operator +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Čak i kada je odvojen obrnutom kosom crtom (\), operator + je potreban za spajanje varijabli.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Prijelomi redaka mogu se slobodno staviti u zagrade

U Pythonu možete slobodno lomiti retke unutar sljedećih zagrada. Ovo pravilo možete koristiti za stavljanje dugih nizova teksta u zagrade.

  • ()
  • {}
  • []

Imajte na umu da sljedeće zagrade imaju značenje.

  • {} = set
  • [] = list

Iz tog razloga koristite okrugle zagrade () kada pišete dugački niz u više redaka.

Opet, koristeći činjenicu da se višestruki nizovi mogu spojiti zajedno u jedan niz, možemo napisati sljedeće

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

Kao u primjeru s obrnutom kosom crtom, operator + je obavezan kada su varijable uključene.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb