Pisanje dugih nizova teksta u više redova u Python-u

Бусинесс

Ako koristite program za proveru koda usklađen sa PEP8, kao što je flake8 u Python-u, dobićete sledeću grešku kada linija premaši 80 znakova.
E501 line too long

Pokazaću vam kako da razbijete dugačak niz od više od 80 znakova, kao što je URL, u više redova koda.

  • Zanemarite prelome redova sa obrnutim kosim crtama (\)
  • Prelomi linija mogu se slobodno staviti u zagrade

Takođe, modul textwrap je koristan ako želite da ispišete i prikažete dugačke nizove tako što ćete ih premotati ili skraćivati.

Ako je broj znakova u liniji duži u lancu metoda nego u dugom nizu, linija može biti prekinuta i u kodu.

Zanemarite prelome redova sa obrnutim kosim crtama (\)

U Python-u, obrnuta kosa crta (\) je karakter za nastavak, a kada se postavi na kraj reda, ignoriše naredne prelome reda i pretpostavlja da se linija nastavlja.

n = 1 + 2 \
    + 3

print(n)
# 6

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

s = 'aaa' 'bbb'

print(s)
# aaabbb

Kombinujući to dvoje, dugačak niz se može napisati u više redova koda, kao što je prikazano ispod.

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 samo literali stringova (ograđeni u ‘ ili „“) mogu biti spojeni, a promenljive koje sadrže nizove će dovesti do greške.

s_var = 'xxx'

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

Da biste povezali promenljive jedne sa drugima ili promenljive sa string literalima, koristite operator +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

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

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Prelomi linija mogu se slobodno staviti u zagrade

U Python-u možete slobodno prelomiti linije unutar sledećih zagrada. Možete koristiti ovo pravilo da stavite dugačke nizove teksta u zagrade.

  • ()
  • {}
  • []

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

  • {} = set
  • [] = list

Iz tog razloga, koristite okrugle zagrade () kada pišete dugačak niz u više redova.

Opet, koristeći činjenicu da se više stringova može spojiti zajedno da formiraju jedan niz, možemo napisati sledeć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 primeru sa obrnutom kosom crtom, operator + je obavezan kada su promenljive uključene.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL