Ciągi F Pythona: zaawansowana interpolacja ciągów

Dowiedz się, jak formatować ciągi znaków w Pythonie za pomocą ciągów F. Ocena wyrażeń głównych, precyzyjne formatowanie zmiennoprzecinkowe, drukowanie daty i godziny oraz składnia samodokumentująca.

Spróbuj w Edytorze

Przegląd

Formatowanie ciągów to zadanie, które programiści wykonują codziennie. Historycznie rzecz biorąc, formatowanie w Pythonie opierało się na formatowaniu `%` w stylu C lub metodzie `.format()`. Chociaż te starsze style składni są funkcjonalne, często prowadzą do szczegółowego i trudnego do odczytania kodu.Python 3.6 wprowadził sformatowane literały ciągu, powszechnie znane jako ciągi F. Ciągi F zapewniają zwięzłą, czytelną i wysoce zoptymalizowaną składnię do wstawiania zmiennych i wyrażeń bezpośrednio do literałów łańcuchowych.

Aby utworzyć ciąg F, należy poprzedzić literał ciągu znakiem `f` lub `F` (np. `f"Hello {name}"`). Każda zmienna lub wyrażenie Pythona umieszczone w nawiasach klamrowych „{...}” jest oceniane w czasie wykonywania i automatycznie konwertowane na ciąg znaków. Ciągi F służą nie tylko do zmiennych; możesz wywoływać funkcje, wykonywać obliczenia matematyczne, a nawet uzyskiwać dostęp do wartości słownikowych zawartych w nawiasach klamrowych, eliminując potrzebę stosowania zmiennych tymczasowych.

Struny F charakteryzują się także bogatym językiem formatowania. Dodając dwukropek „:” wewnątrz nawiasów klamrowych, możesz określić reguły formatowania. Na przykład `{value:.2f}` zaokrągla liczbę zmiennoprzecinkową do dwóch miejsc po przecinku, `{num:03d}` uzupełnia liczbę całkowitą zerami wiodącymi, a `{data:%Y-%m-%d}` formatuje obiekt typu datetime. W wersjiPython 3.8+ w F-strings wprowadzono składnię debugowania `{variable=}`, która automatycznie drukuje zarówno nazwę zmiennej, jak i jej wartość, dzięki czemu debugowanie jest szybkie i bezproblemowe.

Dane wyjściowe kodu i wykonania

Demonstracja formatowania zmiennoprzecinkowego, oceny wyrażeń i samodokumentującego debugowania znaku równości.

fstrings_demo.py
Spróbuj w Edytorze
name = "Charlie"
price = 19.995
quantity = 3

# Basic interpolation and math evaluation
receipt = f"Customer: {name} | Total: ${price * quantity:.2f}"
print(receipt)

# Padding and alignment
number = 42
padded = f"ID: {number:05d}"
print(padded)

# Self-documenting debugging syntax (Python 3.8+)
value = 100
print(f"Debug output: {value=}")
Wyjście terminala
Customer: Charlie | Total: $59.99
ID: 00042
Debug output: value=100

Wdrażanie krok po kroku

  • Upiększanie wyników numerycznych w raportach i dashboardach
  • Konstruowanie dynamicznych zapytań SQL lub ładunków żądań API
  • Drukowanie instrukcji szybkiego debugowania podczas testów lokalnych

Często zadawane pytania

Czy ciągi F są szybsze niż inne metody formatowania ciągów?

Tak, ciągi F są szybsze niż formatowanie % i .format(), ponieważ są oceniane w czasie wykonywania jako zoptymalizowany kod bajtowy, a nie analizowane podczas wykonywania.

Jak wydrukować dosłowne nawiasy klamrowe w ciągu F?

Możesz uniknąć dosłownych nawiasów klamrowych, podwajając je, np. f"{{Hello}}" wyświetli dosłowny tekst „{Hello}”.

Powiązane tematy

Polecane zasoby Pythona

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