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.
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().
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)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
Dowiedz się, jak uzyskać bieżącą datę i godzinę w Pythonie za pomocą modułu datetime. Formatuj daty na ciągi znaków za pomocą strftime i obsługuj strefy czasowe.
Jak przekonwertować ciąg na Int w PythonieDowiedz się, jak przekonwertować ciąg znaków na liczbę całkowitą w Pythonie za pomocą funkcji int(). Bezpiecznie obsługuj błędy i konwertuj liczby z formatu binarnego, ósemkowego lub szesnastkowego.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Ciągi Pythona
Manipulacja ciągami głównymi w Pythonie. Poznaj metody ciągów, wycinanie, łączenie i techniki formatowania dzięki przejrzystym, wykonywalnym przykładom kodu.
Ściągawka dotycząca formatowania DateTime w języku Python
Dowiedz się, jak analizować i formatować daty i godziny w Pythonie przy użyciu funkcji datetime, strftime i strptime.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.