Zápis dlouhých textových řetězců na více řádků v jazyce Python

Podnikání

Používáte-li v jazyce Python program pro kontrolu kódu kompatibilní s PEP8, například flake8, zobrazí se následující chyba, pokud řádek překročí 80 znaků.
E501 line too long

Ukážu vám, jak rozdělit dlouhý řetězec o více než 80 znacích, například adresu URL, na více řádků kódu.

  • Ignorování zlomů řádků se zpětnými lomítky (\)
  • Zlomy řádků lze libovolně uzavírat do závorek.

Modul textwrap je také užitečný, pokud chcete vypisovat a zobrazovat dlouhé řetězce tak, že je zabalíte nebo zkrátíte.

Pokud je počet znaků v řádku v řetězci metod delší než v dlouhém řetězci, může být řádek přerušen i v kódu.

Ignorování zlomů řádků se zpětnými lomítky (\)

V jazyce Python je zpětné lomítko (\) znakem pokračování, a pokud je umístěno na konec řádku, ignoruje následné zalomení řádku a předpokládá, že řádek pokračuje.

n = 1 + 2 \
    + 3

print(n)
# 6

Pokud je zapsáno více řetězcových literálů za sebou, jsou spojeny do jednoho řetězce, jak je znázorněno níže.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Jejich kombinací lze zapsat dlouhý řetězec na více řádcích kódu, jak je uvedeno níže.

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

Všimněte si, že spojovat lze pouze řetězcové literály (uzavřené v ' nebo „“) a proměnné obsahující řetězce budou chybné.

s_var = 'xxx'

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

Chcete-li spojit proměnné mezi sebou nebo proměnné do řetězcových literálů, použijte operátor +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

I když jsou odděleny zpětným lomítkem (\), je pro spojování proměnných vyžadován operátor +.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Zlomy řádků lze libovolně uzavírat do závorek.

V jazyce Python můžete libovolně lámat řádky v následujících závorkách. Toto pravidlo můžete použít k uzavření dlouhých textových řetězců do závorek.

  • ()
  • {}
  • []

Všimněte si, že některé závorky se používají i jinými způsoby, jak je uvedeno níže, takže pro takové použití použijte kulaté závorky ().

  • {}Sada: Sada
  • []: Seznam

Opět s využitím skutečnosti, že více řetězců lze spojit do jednoho řetězce, můžeme zapsat následující text

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

Stejně jako v příkladu se zpětným lomítkem je operátor + vyžadován, pokud jsou zahrnuty proměnné.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb