Ciągi szablonów i str.format
Poznaj inne narzędzia formatowania
Ciągi szablonów i str.format to bezpłatna lekcja Python Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Python Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Python Academy zawiera 4 lekcji w sumie.
Inne narzędzia do formatowania
Oprócz f-stringów Python oferuje dwa dodatkowe narzędzia do formatowania: metodę str.format() oraz klasę string.Template. Każde z nich sprawdza się w innych sytuacjach.
print('Hello, {}!'.format('World'))Podstawy str.format
str.format() zastępuje symbole zastępcze {} argumentami, zgodnie z ich kolejnością. Narzędzie to powstało przed f-stringami, ale nadal często występuje w kodzie.
msg = '{} is {} years old'.format('Ada', 36)
print(msg)Indeksy pozycyjne
W nawiasach klamrowych można umieścić liczby, aby ponownie używać argumentów lub zmieniać ich kolejność na podstawie pozycji.
print('{0} {1} {0}'.format('echo', 'once'))Nazwane symbole zastępcze
W nawiasach klamrowych należy użyć nazw, a następnie przekazać argumenty nazwane. Dzięki temu szablony same opisują swoje przeznaczenie.
print('{name} scored {score}'.format(name='Lin', score=95))Specyfikatory formatu nadal działają
Ten sam mini-język działa po dwukropku w str.format, dzięki czemu można kontrolować szerokość, precyzję i wyrównanie.
print('{:.2f}'.format(3.14159))
print('{:>8}'.format('hi'))Formatowanie na podstawie słownika
Aby wypełnić nazwane symbole zastępcze, należy rozpakować słownik w wywołaniu str.format za pomocą **.
data = {'city': 'Rome', 'temp': 27}
print('{city}: {temp} C'.format(**data))Wprowadzenie do napisów Template
string.Template używa symboli zastępczych opartych na znaku $. Jest celowo prosty i bezpieczniejszy w przypadku szablonów dostarczanych przez użytkownika, ponieważ nie może wykonywać dowolnych wyrażeń.
from string import Template
t = Template('Hello, $name!')
print(t.substitute(name='World'))Nawiasy klamrowe dla większej czytelności
Nazwę symbolu zastępczego należy ująć w nawiasy klamrowe, na przykład ${name}, gdy znajduje się ona obok innego tekstu.
from string import Template
t = Template('${item}s cost $$5')
print(t.substitute(item='apple'))safe_substitute
substitute zgłasza KeyError w przypadku brakujących nazw. Zamiast tego safe_substitute pozostawia nieznane symbole zastępcze bez zmian.
from string import Template
t = Template('$greeting, $name')
print(t.safe_substitute(greeting='Hi'))Kiedy używać poszczególnych narzędzi
Wskazówki: w codziennym kodzie najlepiej używać f-stringów. str.format warto stosować, gdy szablon jest oddzielony od danych. Template sprawdzi się w przypadku niezaufanych szablonów dostarczanych przez użytkownika.
name = 'Sam'
print(f'f-string: {name}')
print('format: {}'.format(name))Szablony z zewnętrznego tekstu
Ponieważ tekst szablonu jest po prostu ciągiem znaków, można wczytać go z pliku konfiguracyjnego lub bazy danych, a następnie podstawić wartości w czasie działania programu.
from string import Template
stored = 'Order $id ships to $city'
t = Template(stored)
print(t.substitute(id=7, city='Oslo'))Szybki test
Które narzędzie jest najbezpieczniejsze do podstawiania wartości do szablonu dostarczonego przez niezaufanego użytkownika?
Podsumowanie: napisy szablonów i str.format
Podsumowanie alternatyw dla f-stringów:
str.format()używa symboli zastępczych{}i obsługuje argumenty pozycyjne, nazwane oraz pełną specyfikację formatu.string.Templateużywa symboli zastępczych$namei jest bezpieczny dla niezaufanych danych wejściowych.safe_substitutepozostawia nieznane symbole zastępcze bez zmian.- W zwykłym kodzie należy preferować f-stringi, a tych narzędzi używać wtedy, gdy szablony pochodzą z zewnątrz lub są niezaufane.
from string import Template
print(Template('Bye, $who').substitute(who='all'))
print('Done: {}'.format(True))Często zadawane pytania
Czy lekcja „Ciągi szablonów i str.format” jest bezpłatna?
Tak — pełny tekst „Ciągi szablonów i str.format” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Python Academy, przejdź na CoddyKit PRO. Kurs Python Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Ciągi szablonów i str.format”?
Poznaj inne narzędzia formatowania Ćwiczysz Python Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Python Academy?
Nie wymagamy żadnego doświadczenia. Python Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Ciągi szablonów i str.format”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Python Academy?
Tak. Każda lekcja Python Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wyrażenia f-string
- Specyfikatory formatowania
- Mini-język formatowania
- Ciągi szablonów i str.format