Python:
Interpolacja łańcucha znaków
Jak to zrobić:
W Pythonie 3.6 i nowszych można interpolować ciągi znaków używając f-stringów. Oto jak:
name = 'Alice'
age = 30
greeting = f"Witaj, {name}. Masz {age} lat."
print(greeting)
Wynik:
Witaj, Alice. Masz 30 lat.
Możesz również użyć wyrażeń wewnątrz nawiasów klamrowych:
a = 5
b = 10
info = f"Pięć plus dziesięć to {a + b}, a nie {2 * (a + b)}."
print(info)
Wynik:
Pięć plus dziesięć to 15, a nie 30.
Dogłębna analiza
Przed Pythonem 3.6, do interpolacji ciągów znaków używano metody .format()
:
name = 'Bob'
age = 25
greeting = "Witaj, {}. Masz {} lat.".format(name, age)
print(greeting)
Stary Python (wersje < 2.6) używał operatora %
do interpolacji, co jest mniej intuicyjne i może stać się bałaganem przy wielu zmiennych:
name = 'Carol'
age = 35
greeting = "Witaj, %s. Masz %d lat." % (name, age)
print(greeting)
Oprócz czystszej składni, f-stringi są szybsze, ponieważ są oceniane w czasie wykonania, a następnie bezpośrednio przekształcane w efektywną operację formatowania ciągu znaków. Metoda .format()
i operator %
wiążą się z większą liczbą kroków i są wolniejsze.
Zobacz także
- PEP 498 – Interpolacja Literałów Napisów dla oficjalnej dokumentacji f-stringów.
- Python f-stringi na Real Python dla tutorialu o używaniu f-stringów.
- Metoda .format() w dokumentacji Pythona, aby zrozumieć starszą metodę formatowania napisów.