Писане на дълги низове от текст на няколко реда в Python

Бизнес

Ако използвате съвместима с PEP8 програма за проверка на кода, като например flake8 в Python, ще получите следната грешка, когато даден ред надхвърля 80 символа.
E501 line too long

Ще ви покажа как да разделите дълъг низ от повече от 80 символа, например URL адрес, на няколко реда код.

  • Игнориране на прекъсванията на редовете с обратни наклонени черти (\)
  • Прекъсванията на редовете могат да бъдат свободно затворени в скоби.

Също така модулът textwrap е полезен, ако искате да извеждате и показвате дълги низове, като ги обвивате или съкращавате.

Ако броят на символите в един ред е по-голям във верига от методи, отколкото в дълъг низ, редът може да бъде прекъснат и в кода.

Игнориране на прекъсванията на редовете с обратни наклонени черти (\)

В езика Python обратната наклонена черта (\) е символ за продължение и когато е поставена в края на реда, тя игнорира последващите прекъсвания на реда и приема, че редът продължава.

n = 1 + 2 \
    + 3

print(n)
# 6

Също така, когато се записват последователно множество символни низове, те се конкатенират, за да образуват един низ, както е показано по-долу.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Комбинирайки двете, дълъг низ може да бъде записан в няколко реда код, както е показано по-долу.

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

Имайте предвид, че могат да се конкатенират само символни низове (затворени в ' или „“), а променливи, съдържащи низове, ще доведат до грешка.

s_var = 'xxx'

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

За конкатенация на променливи една към друга или на променливи към символни низове използвайте оператора +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Дори когато са разделени с обратна наклонена черта (\), операторът + е необходим за конкатенация на променливи.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Прекъсванията на редовете могат да бъдат свободно затворени в скоби.

В Python можете свободно да прекъсвате редове в рамките на следните скоби. Можете да използвате това правило, за да заграждате дълги низове от текст в скоби.

  • ()
  • {}
  • []

Имайте предвид, че някои скоби се използват и по други начини, както е показано по-долу, затова използвайте кръгли скоби () за такава употреба.

  • {}Комплект: Комплект
  • []: Списък

Отново използвайки факта, че множество низове могат да бъдат обединени в един низ, можем да напишем следното

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

Както в примера с обратната наклонена черта, операторът + е необходим, когато се включват променливи.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Copied title and URL