5

f-stringi – wartość zmiennej w środku zdania

Materiały tej lekcji są na razie tylko do czytania na stronie. Kod przepisz albo skopiuj do swojego edytora.

Czego się nauczysz

Wypisanie print(imie, wiek) daje suchy wynik: Anna 17. Zwykle chcesz zdania: Anna ma 17 lat. F-string pozwala wstawić wartość zmiennej w środek tekstu – i od tej lekcji wszystkie wyniki wypisujemy właśnie tak.

Po tej lekcji:

Problem, który trzeba rozwiązać

imie = "Anna"
wiek = 17
print("Wiek: " + wiek)        # TypeError!
print("Wiek: " + str(wiek))   # działa, ale niewygodnie

Sklejanie plusem nie działa, bo nie da się dodać liczby do tekstu. Trzeba by przy każdej wartości wywoływać str(). Rozwiązanie jest krótsze i wygodniejsze.

f-string – litera f przed cudzysłowem

Dwa kroki i gotowe:

  1. Przed otwierającym cudzysłowem dopisujesz małą literę f.
  2. Nazwę zmiennej wstawiasz w tekst, ujmując ją w klamry { }.
print(f"{imie} ma {wiek} lat")   # Anna ma 17 lat
print("{imie} ma {wiek} lat")    # {imie} ma {wiek} lat – bez f klamry zostają

Python w miejscu klamer podstawi aktualną wartość zmiennej i sam zamieni ją na tekst. Nic nie musisz konwertować. W jednym f-stringu może być dowolnie wiele klamer.

Litera f musi stać przed cudzysłowem, nie w środku. Bez niej klamry zostaną wypisane dosłownie.

W klamrach może być całe obliczenie

Python najpierw policzy to, co jest w klamrach, a dopiero wynik wstawi do tekstu.

print(f"Za rok: {wiek + 1}")          # Za rok: 18
print(f"Dwa bilety: {cena * 2} zl")   # Dwa bilety: 40 zl
print(f"Liter: {len(imie)}")          # Liter: 4

Nie przesadzaj z długością wyrażeń w klamrach. Jeśli obliczenie jest skomplikowane, policz je wcześniej do osobnej zmiennej – kod będzie czytelniejszy.

Formatowanie liczb – miejsca po przecinku

Średnia z trzech ocen może wyjść jako 3.6666666666666665. Na ekranie wygląda to źle. W klamrach po nazwie zmiennej dopisujesz dwukropek i sposób wyświetlenia:

srednia = 11 / 3
print(f"{srednia:.2f}")   # 3.67
print(f"{srednia:.1f}")   # 3.7

Ten zapis przyda ci się przy każdej średniej, cenie i procentach.

W kodzie z lekcji jest więcej: operacje na tekście

Demo do tej lekcji idzie dalej niż slajdy. Tekst w Pythonie to nie tylko coś do wypisania – ma własne operacje, które wrócą przy szyfrze Cezara i walidacji numeru PESEL:

Uruchom demo i przejdź je sekcja po sekcji – każda wypisuje, co robi.

Spróbuj sam

Zadania z lekcji:

  1. Utwórz zmienne z imieniem, wiekiem i średnią ocen. Wypisz jednym f-stringiem zdanie w rodzaju: Anna ma 17 lat i średnią 4.25 – średnia z dokładnością do dwóch miejsc.
  2. Utwórz zmienną cena o wartości 19.99. Wypisz f-stringiem: cenę jednej sztuki, cenę trzech sztuk i cenę powiększoną o 23 procent podatku. Wszystko z dwoma miejscami po przecinku.
  3. Dla trzech ocen policz średnią i wypisz zdanie zawierające wszystkie trzy oceny oraz średnią z jednym miejscem po przecinku.

Sprawdź się

Na następnej lekcji: warunki. Program przestanie wykonywać wszystko po kolei i zacznie podejmować decyzje.

Notatki

PDF
Zadania utrwalające Karta pracy do tej lekcji: zadania sprawdzające i domowe do samodzielnego zrobienia w swoim edytorze · 4 strony.
Zadania utrwalające – f-stringi – wartość zmiennej w środku zdania
Strona 1 z 4 Strona 2 z 4 Strona 3 z 4 Strona 4 z 4

Prezentacja

Slajd 1 z 7
1 / 7

Kod

Otwórz kod, zmieniaj go i uruchamiaj na stronie – np. usuń # z linii oznaczonej jako błąd i zobacz, co się stanie. „Przywróć” wraca do wersji z lekcji.

PY
demo_05_f-stringi-i-operacje-na-stringach.py Kod z lekcji – otwórz, zmieniaj i uruchamiaj; wynik zobaczysz obok kodu.
demo_05_f-stringi-i-operacje-na-stringach.py
Wynik programu
Kliknij „Uruchom”, żeby zobaczyć tutaj wynik programu.