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:
- napiszesz f-string z dwiema zmiennymi w środku zdania,
- wstawisz w klamry obliczenie, a nie tylko nazwę,
- wypiszesz liczbę z dokładnością do dwóch miejsc po przecinku,
- wyjaśnisz, dlaczego
"Wiek: " + wieknie działa.
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:
- Przed otwierającym cudzysłowem dopisujesz małą literę
f. - 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:
:.2f– dwa miejsca po przecinku:.1f– jedno miejsce:.0f– bez miejsc po przecinku, zaokrąglone
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:
len(napis)– długość tekstu,napis[0],napis[-1]– pojedynczy znak, pierwszy i ostatni,napis[0:4]– wycinek tekstu,napis[::-1]– tekst odwrócony,upper(),lower(),strip(),replace()– zmiana wielkości liter, obcięcie spacji, podmiana fragmentu,split()ijoin()– zamiana tekstu na listę słów i z powrotem,find(),count(),in– szukanie w tekście,isdigit()– sprawdzenie, czy tekst składa się z samych cyfr.
Uruchom demo i przejdź je sekcja po sekcji – każda wypisuje, co robi.
Spróbuj sam
Zadania z lekcji:
- 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.
- Utwórz zmienną
cenao 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. - Dla trzech ocen policz średnią i wypisz zdanie zawierające wszystkie trzy oceny oraz średnią z jednym miejscem po przecinku.
Sprawdź się
- Napiszę f-string z dwiema zmiennymi w środku zdania.
- Wstawię w klamry obliczenie, a nie tylko nazwę.
- Wypiszę liczbę z dokładnością do dwóch miejsc po przecinku.
- Wyjaśnię, dlaczego
"Wiek: " + wieknie działa.
Na następnej lekcji: warunki. Program przestanie wykonywać wszystko po kolei i zacznie podejmować decyzje.
Notatki
Prezentacja
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.