Jak formatować ciągi w Pythonie (ciągi f i format)

Poznaj najlepsze techniki formatowania ciągów w Pythonie. Porównaj nowoczesne f-stringi, format() i formatowanie procentowe z przykładami kodu.

Wypróbuj to rozwiązanie w Edytorze

Przegląd

Formatowanie ciągów znaków jest codzienną koniecznością przy renderowaniu zmiennych w wiadomościach, wysyłaniu dzienników, drukowaniu debugowań konsoli i tworzeniu stron internetowych. Na przestrzeni lat Python znacznie rozwinął formatowanie ciągów znaków, oferując wiele opcji bezpiecznego i czytelnego konstruowania dynamicznych reprezentacji tekstu.

We współczesnym Pythonie (3.6+) standardowym i najpopularniejszym podejściem jest formatowanie za pomocą f-stringów (sformatowanych literałów ciągów). Poprzedzając ciąg znakami „f” lub „F”, możesz osadzać wyrażenia lub zmienne Pythona bezpośrednio w nawiasach klamrowych „{}”. Wyrażenia te są oceniane w czasie wykonywania, dzięki czemu ciągi f są szybsze i znacznie bardziej czytelne niż starsze metody formatowania.

Starsze podstawy kodu Pythona mogą wykorzystywać metodę `.format()` lub formatowanie procentowe `%`. Chociaż są one nadal obsługiwane, generalnie nie zaleca się korzystania z nowego kodu. f-strings obsługują także zaawansowane specyfikatory formatu wbudowanego, umożliwiające kontrolowanie precyzji dziesiętnej (np. `{wartość:.2f}`), wyrównywanie tekstu lub formatowanie dat bezpośrednio w zmiennych łańcuchowych.

Dane wyjściowe kodu i wykonania

Ten skrypt demonstruje drukowanie dynamicznych bloków tekstu przy użyciu ciągów f, formatowanie liczb zmiennoprzecinkowych i użycie metody .format().

format_strings.py
Spróbuj w Edytorze
name = "Alice"
age = 30
pi = 3.14159

# 1. Using modern f-strings (Recommended)
greeting_f = f"Hello, my name is {name} and I am {age} years old."
print("f-string:", greeting_f)

# 2. formatting floats (2 decimal places precision)
precision_f = f"Pi rounded: {pi:.2f}"
print(precision_f)

# 3. Using the older .format() method
greeting_format = "Hello, my name is {} and I am {}.".format(name, age)
print(".format():", greeting_format)
Wyjście terminala
f-string: Hello, my name is Alice and I am 30 years old.
Pi rounded: 3.14
.format(): Hello, my name is Alice and I am 30.

Wdrażanie krok po kroku

  • Poprzedź literał ciągu znakiem f (np. f'Hello...').
  • Wstaw zmienne lub wyrażenia bezpośrednio w nawiasach klamrowych {} w ciągu.
  • Użyj specyfikacji formatu, takich jak :.2f, aby obsłużyć formatowanie dziesiętne wewnątrz nawiasów klamrowych.

Często zadawane pytania

Czy f-stringi są szybsze niż formatowanie .format() i%?

Tak, ciągi f są oceniane w czasie wykonywania jako zoptymalizowane operacje na kodzie bajtowym, dzięki czemu są szybsze niż operatory .format() i %.

Czy mogę uruchamiać funkcje lub oceniać wyrażenia wewnątrz ciągów f?

Tak, każde prawidłowe wyrażenie Pythona (w tym operacje matematyczne, wywołania funkcji i przeglądanie słownika) może być oceniane wewnątrz nawiasów klamrowych.

Powiązane tematy

Polecane zasoby Pythona

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