Przejdź do głównej treści
eLearner.app
Moduł 1 · Lekcja 4 z 44/36 w kursie~8 min
Lekcje modułu (4/4)

Wypisywanie i f-stringi

Aby przekazać coś użytkownikowi (lub zobaczyć, co dzieje się wewnątrz naszego programu), używamy wbudowanej funkcji print(...). Do tworzenia tekstu z wielu wartości nowoczesną i preferowaną składnią jest f-string.

print(...)

Python
print("Ciao, mondo!")           # Ciao, mondo!
print("a", "b", "c")            # a b c       (separati da spazio)
print(2 + 2)                    # 4
print("riga 1", "riga 2")       # riga 1 riga 2

print może przyjąć dowolną liczbę argumentów: łączy je spacją (domyślnie) i dodaje znak nowej linii na końcu. Możesz zmienić oba zachowania za pomocą parametrów sep i end:

Python
print("a", "b", "c", sep="-")   # a-b-c
print("senza newline", end="")  # niente \n dopo

f-string: nowoczesna interpolacja

Wyrażenie f-string to ciąg znaków poprzedzony literą f: wewnątrz nawiasów klamrowych {...} możesz wstawić dowolne wyrażenie Pythona, które zostanie ocenione i wstawione do wyniku:

Python
nome = "Ada"
anni = 30
print(f"Mi chiamo {nome} e ho {anni} anni.")
# Mi chiamo Ada e ho 30 anni.

Wewnątrz nawiasów klamrowych możesz umieszczać wywołania, operacje, dostępy do obiektów — pod każdym względem jest to kod Pythona:

Python
prezzo = 12.5
quantita = 3
print(f"Totale: {prezzo * quantita:.2f} €")
# Totale: 37.50 €

Zapis :.2f po dwukropku to specyfikacja formatu (format spec): w tym przypadku "dwa miejsca po przecinku, stały punkt". Najbardziej przydatne specyfikacje formatu:

  • :.Nf — N miejsc po przecinku (f"{pi:.4f}"3.1416).
  • :N / :>N / :<N / :^N — szerokość N, wyrównanie do prawej/lewej/środka.
  • :_ lub :, — separator tysięcy (f"{1000000:,}"1,000,000).

Alternatywne składnie (dla odniesienia)

Przed f-stringami (wprowadzonymi w Pythonie 3.6) stosowano dwie formy, na które nadal można natknąć się w starszym kodzie:

Python
# stile .format() — verboso ma esplicito
"{} ha {} anni".format("Ada", 30)

# stile %-formatting — molto vecchio
"%s ha %d anni" % ("Ada", 30)

W nowym kodzie zawsze używaj f-stringów: są krótsze, bardziej czytelne i szybsze.

Zaawansowane formatowanie z f-stringami

F-stringi obsługują bogate specyfikacje formatowania bezpośrednio wewnątrz nawiasów klamrowych. Na przykład, aby sformatować liczbę dziesiętną z dokładnie dwoma miejscami po przecinku, możesz napisać:

Python
price = 19.99
print(f"Price: {price:.2f} $")

Specyfikator :.2f wskazuje, że chcemy przedstawić liczbę zmiennoprzecinkową z dokładnie dwoma miejscami po przecinku.

Spróbuj sam

Ćwiczenie#python.m1.l4.e1
Próby: 0Ładowanie...

Mając dane `name = 'Ada'` i `age = 30`, utwórz ciąg znaków 'Ada ha 30 anni' za pomocą f-stringa i przypisz go do `line`. Oceń `line`.

Ładowanie edytora...
Pokaż wskazówkę

Składnia: f"coś {variable} coś innego"

Rozwiązanie dostępne po 3 próbach

Ćwiczenie powtórzeniowe

Ćwiczenie#python.m1.l4.e2
Próby: 0Ładowanie...

Wypisz za pomocą print() ciąg znaków 'pi greco vale 3.14' zaczynając od `pi = 3.14159`, używając f-stringa ze specyfikacją formatu z 2 miejscami po przecinku.

Ładowanie edytora...
Pokaż wskazówkę

Specyfikacja formatu znajduje się po dwukropku wewnątrz nawiasów klamrowych: {pi:.2f}.

Rozwiązanie dostępne po 3 próbach

Dodatkowe wyzwanie

Ćwiczenie#python.m1.l4.e3
Próby: 0Ładowanie...

Mając daną zmienną `price` ustawioną na `19.99`, użyj f-stringa do utworzenia ciągu znaków `'Price: 19.99 €'` i zapisz go w `receipt_line`. Na koniec oceń zmienną.

Ładowanie edytora...
Pokaż wskazówkę

Użyj f"Price: {price} €" i przypisz wynik do receipt_line.

Rozwiązanie dostępne po 3 próbach