Pisanie długich ciągów tekstu w wielu liniach w Pythonie

Biznes

Jeśli używasz programu do sprawdzania kodu zgodnego z PEP8, takiego jak flake8 w Pythonie, otrzymasz następujący błąd, gdy linia przekroczy 80 znaków.E501 line too longPokażę Ci, jak rozbić długi ciąg powyżej 80 znaków, taki jak adres URL, na wiele linii kodu.

  • Ignoruj podziały wiersza za pomocą odwrotnych ukośników (\)
  • Przerwy między wierszami mogą być dowolnie ujęte w nawiasy

Moduł textwrap jest również przydatny, jeśli chcesz wyprowadzać i wyświetlać długie ciągi znaków poprzez ich zawijanie lub pomijanie.
Jeśli masz łańcuch metod, który jest dłuższy niż pojedynczy wiersz znaków, a nie długi łańcuch, możesz również złamać linię w kodzie.

Ignoruj podziały wiersza za pomocą odwrotnych ukośników (\)

W Pythonie odwrotny ukośnik (\) jest znakiem kontynuacji, a umieszczony na końcu wiersza ignoruje kolejne podziały wiersza i zakłada, że wiersz jest kontynuowany.

n = 1 + 2 \
    + 3

print(n)
# 6

Również, gdy wiele literałów łańcuchowych jest zapisanych po sobie, są one konkatenowane w celu utworzenia pojedynczego łańcucha, jak pokazano poniżej.

s = 'aaa' 'bbb'

print(s)
# aaabbb

Łącząc te dwie metody, długi ciąg znaków może być napisany w wielu liniach kodu, jak pokazano poniżej.

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

Zauważ, że tylko literały łańcuchowe (ujęte w ' lub „”) mogą być konkatenowane, a zmienne zawierające łańcuchy spowodują błąd.

s_var = 'xxx'

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

Do konkatenacji zmiennych ze sobą lub zmiennych z literałami łańcuchowymi służy operator +.

s = 'aaa' + s_var + 'bbb'

print(s)
# aaaxxxbbb

Nawet jeśli zmienne są oddzielone odwrotnym ukośnikiem (\), operator + jest wymagany do łączenia zmiennych.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Przerwy między wierszami mogą być dowolnie ujęte w nawiasy

W Pythonie można dowolnie łamać linie wewnątrz kolejnych nawiasów. Możesz użyć tej reguły do zamknięcia w nawiasach długich łańcuchów tekstu.

  • ()
  • {}
  • []

Zauważ, że poniższe nawiasy mają znaczenie.

  • {} = set
  • [] = list

Dlatego, kiedy piszemy długi łańcuch w wielu liniach, użyj nawiasów okrągłych ().
Ponownie, wykorzystując fakt, że wiele łańcuchów może być konkatenowanych razem w celu utworzenia pojedynczego łańcucha, możemy napisać, co następuje.

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

Podobnie jak w przykładzie z odwrotnym ukośnikiem, operator + jest wymagany, gdy dołączane są zmienne.

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

print(s)
# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxxxbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb