10.1 format()
Często musimy wyświetlić dużo danych na konsoli (ekranie). Nie jesteśmy pierwsi, którzy się z tym spotkali — dlatego już dawno w Pythonie pojawiła się funkcja format()
, która pozwala łączyć stringi i wyświetlać dane na ekranie w prostszy i bardziej zrozumiały sposób.
Funkcja format()
jest używana do wstawiania wartości w string w określonych miejscach. Składnia funkcji wygląda następująco:
"Szablon stringa od {} do {}".format(wartość1, wartość2,…)
Fakt 1. Funkcja format()
— to podrzędna funkcja stringa, więc jest wywoływana dla stringa. Zamiast przekazywać string do funkcji, piszemy string, następnie stawiamy kropkę, a następnie wywołujemy funkcję format()
i dopiero do niej przekazujemy jej parametry.
Fakt 2. Funkcja format()
wypełnia string-szablon przekazanymi wartościami. Przekształca przekazane wartości w stringi (jeśli były tam liczby, na przykład) i wstawia je w miejsca oznaczone symbolami {}
. Takie miejsce do wstawienia wartości nazywa się placeholder
.
Podstawowe użycie:
welcome_message = "Cześć, {}, witamy w {}!"
print(welcome_message.format("Anna", "naszym sklepie"))
Wynik: "Cześć, Anna, witamy w naszym sklepie!"
Formatowanie liczb:
output = "Dane: {0:.2f} i {1:.2f}".format(3.1415926, 2.71828)
print(output)
Wynik: "Dane: 3.14 i 2.72"
— pokazuje ograniczenie wyjścia do dwóch miejsc dziesiętnych.
Użycie słów kluczowych:
output = "{name} pracuje w {company}"
print(output.format(name="Sergey", company="Google"))
Wynik: "Sergey pracuje w Google"
Użycie format()
poprawia czytelność i utrzymanie kodu, pozwalając łatwo zmieniać format bez konieczności edytowania całego stringa.
10.2 f-notation
Począwszy od wersji 3.6 w Pythonie pojawił się nowy typ stringów — f-stringi
, które dosłownie oznaczają „formatted string”. Te stringi poprawiają czytelność kodu, a także działają szybciej niż inne metody formatowania.
Aby używać f-stringów
, przed stringiem stawia się literę "f"
lub "F"
. Wyrażenia do wstawienia umieszczane są w nawiasach klamrowych {}
:
Przykład:
force = "Ciemna Strona"
message = f"Niech moc będzie z tobą {force}!"
print(message) # Wyświetli: Niech moc będzie z tobą Ciemna Strona!
Ważne! W nawiasach klamrowych można umieszczać zmienne, które są dostępne w bieżącym zasięgu (o tym później) i Python sam przekształci je w stringa i wstawi w odpowiednie miejsce.
Przykład:
age = 28
message = f"Mam {age} lat"
print(message) # Wyświetli: Mam 28 lat
Co więcej, w nawiasach klamrowych można używać wyrażeń z wieloma zmiennymi.
Przykład:
birth_year = 1985
current_year = 2024
message = f"Mam {current_year - birth_year} lat"
print(message) # Wyświetli: Mam 39 lat
Pod spodem wszystko to jest konwertowane na wywołanie funkcji format()
, ale nowe podejście jest naprawdę wygodniejsze.
Korzystaj z tego na zdrowie.
10.3 Parametry sep
i end
W Pythonie funkcja print()
udostępnia dwa przydatne parametry — sep
i end
, które pozwalają kontrolować wyjście danych. Te parametry czynią funkcję print()
bardziej elastyczną i mogą być używane do formatowania wyjścia bez konieczności stosowania dodatkowych funkcji lub skomplikowanych operacji stringowych.
Parametr sep
określa symbol lub string, który będzie używany do oddzielania kilku wartości przekazanych do print()
. Domyślnie sep jest ustawiony na spację. Oznacza to, że jeśli przekażesz kilka argumentów do print()
, zostaną one oddzielone spacją.
A jeśli chcesz, aby dane były oddzielone nie spacją, a na przykład przecinkiem, to musisz na samym końcu dodać parametr sep
i od razu przypisać mu nowy string-oddzielający.
Przykład:
print("Hello", "world") # Wyjście: Hello world
print("Hello", "world", sep=", ") # Wyjście: Hello, world
Można również zrobić tak, aby każda wartość była wyświetlana w nowej linii. Wtedy parametrowi sep
trzeba przypisać specjalny symbol nowej linii — jest oznaczany parą symboli “\n”
.
Przykład | Wyjaśnienie |
---|---|
|
|
Parametr end
określa, co zostanie wydrukowane po wszystkich przekazanych wartościach. Domyślna wartość end
— symbol nowej linii (\n)
, co oznacza przejście do nowej linii po wykonaniu print()
.
Zmieniaj end
, aby kontrolować jak wyświetlane są dane, na przykład, aby kontynuować wyjście w tej samej linii:
Przykład:
print("Hello", end=" ")
print("world") # Wyjście: Hello world
Użycie sep
i end
może być bardzo przydatne w scenariuszach, gdzie wymagana jest szczególna formatowanie wyjścia, na przykład przy tworzeniu tabel, raportów lub przy wyświetlaniu danych w jednej linii bez automatycznego przejścia do nowej.
Oprócz upraszczania kodu i unikania konieczności ręcznego dodawania separatorów lub zarządzania przejściami liniowymi, użycie sep
i end
zwiększa czytelność i utrzymanie kodu.
GO TO FULL VERSION