0Pricing
Python Academy · Lekcja

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.Template używa symboli zastępczych $name i jest bezpieczny dla niezaufanych danych wejściowych.
  • safe_substitute pozostawia 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

  1. Wyrażenia f-string
  2. Specyfikatory formatowania
  3. Mini-język formatowania
  4. Ciągi szablonów i str.format
← Powrót do Python Academy