Jak pisać ciągi wielowierszowe w Pythonie (potrójne cudzysłowy i łączenia)

Poznaj najlepsze sposoby pisania ciągów wielowierszowych w Pythonie. Poznaj potrójne cudzysłowy, łączenie nawiasów, metody łączenia nowej linii i kontrolę formatu.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Podczas pisania bloków tekstowych w aplikacji — takich jak zapytania SQL, szablony HTML, instrukcje CLI lub długie komunikaty debugowania — często konieczne będzie rozciągnięcie wartości łańcuchowych na wiele wierszy. Python oferuje kilka sposobów definiowania ciągów wielowierszowych, każdy z różnymi konsekwencjami formatowania.

Najbardziej bezpośrednim i powszechnym sposobem pisania ciągu wielowierszowego jest użycie składni z potrójnym cudzysłowem (albo ``'''' albo ``'''`). Ciągi z potrójnymi cudzysłowami dosłownie zachowują wszystkie wprowadzone znaki, łącznie z nieprzetworzonymi znakami nowej linii i wcięciami. Sprawia to, że formatowanie jest bardzo wizualne, ale ma tę wadę: wszelkie początkowe tabulatory lub spacje używane do wyrównywania kodu w zagnieżdżonych pętlach lub klasach staną się częścią rzeczywistej wartości ciągu.

Aby zdefiniować ciąg wielowierszowy, który wizualnie rozciąga się na wiele wierszy kodu źródłowego, ale jest skompilowany w jedną długą linię (lub nie przechwytuje białych znaków wcięcia kodu), można ująć w nawiasy standardowe ciągi z pojedynczym cudzysłowem. Python automatycznie łączy sąsiednie literały ciągu w nawiasach, dzięki czemu Twój kod jest przejrzysty i bardzo czytelny.

Dane wyjściowe kodu i wykonania

Ten skrypt demonstruje pisanie tekstu wielowierszowego przy użyciu potrójnych cudzysłowów, łączenia ciągów w nawiasach i czystych wcięć.

multiline_strings.py
Spróbuj w Edytorze
# 1. Triple Quote Syntax (preserves all newlines and indentation)
sql_query = """SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;"""

print("--- Triple Quotes Query ---")
print(sql_query)

# 2. Parentheses Concatenation (splits code line, compiles into single line)
long_message = (
    "This is a long message that we split "
    "across multiple lines in our editor, "
    "but it compiles into a single text block."
)
print("\n--- Parentheses Concatenation ---")
print(long_message)

# 3. Joining list elements for clean line breaks
lines = [
    "First instruction line.",
    "Second instruction line.",
    "Third instruction line."
]
joined_text = "\n".join(lines)
print("\n--- Joined Lines ---")
print(joined_text)
Wyjście terminala
--- Triple Quotes Query ---
SELECT id, username, email
FROM users
WHERE active = True
ORDER BY id DESC;

--- Parentheses Concatenation ---
This is a long message that we split across multiple lines in our editor, but it compiles into a single text block.

--- Joined Lines ---
First instruction line.
Second instruction line.
Third instruction line.

Wdrażanie krok po kroku

  • Używaj potrójnych cudzysłowów („” lub „”), aby pisać długie bloki tekstu, które zachowują dosłowne znaki nowej linii.
  • Zawijaj kolejne ciągi w nawiasach ( ) bez przecinków, aby wizualnie podzielić kod bez dodawania znaków nowej linii do danych wyjściowych.
  • Użyj metody textwrap.dedent() podczas pracy z potrójnymi cudzysłowami wewnątrz klas lub funkcji, aby wyczyścić wcięcia początkowe.

Często zadawane pytania

Jak usunąć wcięcie początkowe z zagnieżdżonego ciągu z potrójnym cudzysłowem?

Zaimportuj wbudowany moduł zawijania tekstu i przekaż ciąg znaków do metody textwrap.dedent(text), aby wyczyścić spacje wiodące.

Jaka jest różnica między pojedynczymi i podwójnymi potrójnymi cudzysłowami?

Nie ma funkcjonalnej różnicy pomiędzy „” i „”. Wybierz jedną konwencję i trzymaj się jej konsekwentnie w całym projekcie.

Powiązane tematy

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.