Blog JSystems - uwalniamy wiedzę!

Szukaj
Animacja f-string - wstawianie zmiennych do tekstu
f-string - w klamrach { } wpisujesz zmienne, które Python wstawia do tekstu

W skróciePierwszy program w Pythonie sprowadza się do jednej instrukcji: funkcja print wypisuje na konsoli to, co podasz jej w nawiasie. Może to być tekst, liczba albo data, a sam tekst obejmujesz cudzysłowem pojedynczym lub podwójnym, bo Python traktuje je tak samo.

Zwykle naukę dowolnego języka programowania rozpoczyna się od wyświetlenia "Hello world" na konsoli. Do pisania na konsoli służy funkcja "print". Przyjmuje ona przez parametr dane do wyświetlenia. Dane te mogą być tekstem, liczbą, datą lub typem złożony. Najprostszy wariant wyglądałby tak:

print('Hello world!')

Nie ma znaczenia czy użyjesz znaków ", czy ' do objęcia tekstu. Równie dobrze ta instrukcja mogłaby wyglądać tak:

print("Hello world!")

Jeśli programowałeś w innym języku, zwróć uwagę że na końcu linii w Pythonie nie dajemy średnika, co często czynimy w innych językach programowania.

Wydrukować możesz również liczbę, lub wynik jakiegoś działania matematycznego:

print(30)
print(30/10)

W drugim przykładzie zadziała to w ten sposób, że najpierw zostanie wykonane działanie matematyczne, a następnie jego wynik zostanie wyświetlony. Print można wykorzystać również do wyświetlania danych typów złożonych:

t=[1,2,3,4,5,'nietoperz']
print(t)

Powyżej przykład wyświetlania listy. Sczegółami działania list będziemy zajmować się nieco później, na razie nie przejmuj się jeśli nie rozumiesz linii powyżej instrukcji print.

Bywają sytuacje w których musimy wyświetlić jednocześnie tekst i wynik jakiejś operacji matematycznej lub liczbę:

print('1/3='+(1/3))

Taka próba zakończy się błędem jak poniżej:

print('1/3='+(1/3))
TypeError: can only concatenate str (not "float") to str

Problem tkwi w łączeniu 2 różnych typów danych, tekstu i liczby zmiennoprzecinkowej. Aby ten problem rozwiązać, należy zastosować rzutowanie liczby na tekst:

print('1/3='+str(1/3))

Tym razem instrukcja działa poprawnie. To za sprawą funkcji str, która przyjmuje dowolny typ danych a zwraca tekst. Pierwotny typ danych jest rzutowany na typ STRING - czyli typ tekstowy.

Taka konkatenacja i rzutowanie typów może być bardzo niewygodne, zwłaszcza przy dłuższych ciągach tekstowych. Istnieje wygodniejsza forma:

x=123
y=67
print('x={}, y={}'.format(x,y))

Przyjrzyj się trzeciej linii. Drukujemy na konsoli ciąg tekstowy i tutaj nie ma nic nowego. Zagadkowa może się wydać końcówka ".format(x,y)". Otóż wszystko w Pythonie jest obiektem. Obiekty mogą mieć wbudowane funkcje. Ciąg tekstowy jest obiektem klasy "string", a ta ma między innymi wbudowaną funkcję format. Posiada też wbudowane funkcje do powiększania i pomniejszania tekstu, zamiany jego fragmentów i wiele innych, ale zajmiemy się nimi w rozdziale "łańcuchy znaków". Z pomocą funkcji format możemy podstawić zmienne w miejsce znaczników {} w tekście. Ponieważ użyliśmy takich znaczników dwa razy, parser będzie oczekiwał dwóch wartości które zostaną podstawione w ich miejsce. Właśnie to robi funkcja format. X trafia w miejsce pierwszego, a Y w miejsce drugiego wystąpienia znaczników. Gdybyśmy nie użyli funkcji format, parser wyświetliłby na konsoli po prostu:

x={}, y={}

Ponieważ użyliśmy funkcji format, znaczniki {} zostały potraktowane jako elementy dynamiczne. Jeśli zdecydowaliśmy się na użycie tej funkcji, to teraz musimy podać tyle wartości ile razy te znaczniki występują. Gdybyśmy podali ich mniej, dostalibysmy komunikat:

print('x={}, y={}'.format(x))
IndexError: tuple index out of range

Jeśli damy ich więcej, zostaną użyte tylko pierwsze dwie wartości z podanej listy wartości.

Od wersji Pythona 3.6 można także stosować taki format:

x=10
print(f'x={x}')

Dodanie "f" przed ciągiem tekstowym powoduje że w ramach tego ciągu tekstowego możesz w nawiasach klamrowych umieścić wartość lub zmienną która ma zostać wydrukowana. Nie muszę tutaj zastanawiać się nad typem wstawianej wartości, zostanie automatycznie skonwertowany do str.

Szkolenie Python od podstaw, przez analizę danych, do machine learning w JSystems

Szkolenie Python od podstaw, przez analizę danych, do machine learning -->

Ten kurs daje Ci solidne podstawy Pythona. Jeśli chcesz pójść dalej i pod okiem trenera dojść od pierwszej linijki kodu do własnego modelu uczenia maszynowego, sprawdź nasze pięciodniowe szkolenie Python od podstaw, przez analizę danych, do machine learning. Pierwsze trzy dni to Python w praktyce: typy i kolekcje, instrukcje warunkowe i pętle, funkcje, moduły i pakiety, pliki tekstowe, usługi sieciowe oraz praca z bazą PostgreSQL. Czwarty dzień to analiza danych w pandas (wczytywanie CSV, TSV i XLS, filtrowanie, agregacje, statystyki) i wizualizacja w Matplotlib, Seaborn oraz Plotly. Piąty dzień to uczenie maszynowe w scikit-learn: regresja liniowa i logistyczna, drzewa decyzyjne, las losowy, XGBoost, walidacja predykcji, dobór hiperparametrów i przeciwdziałanie przeuczeniu. Szkolenie ma terminy gwarantowane, czyli odbywa się niezależnie od wielkości grupy.

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Do czego służy funkcja print w Pythonie?
Funkcja print wypisuje dane na konsoli. Przez parametr przyjmuje to, co chcesz wyświetlić: tekst, liczbę, datę albo typ złożony, na przykład listę. Najprostsze wywołanie to print z tekstem ujętym w apostrofy lub cudzysłowy.
Czy w Pythonie tekst obejmuję apostrofami czy cudzysłowami?
Nie ma to znaczenia, print zadziała tak samo z apostrofami i z cudzysłowami. Warto też pamiętać, że w Pythonie nie stawiamy średnika na końcu linii, co bywa nawykiem przeniesionym z innych języków.
Dlaczego łączenie tekstu z liczbą przez plus zgłasza błąd?
Python nie potrafi połączyć tekstu z liczbą operatorem plus i zwraca TypeError o możliwości łączenia tylko tekstu z tekstem. Rozwiązaniem jest rzutowanie liczby na tekst funkcją str, która przyjmuje dowolny typ i zwraca łańcuch znaków.
Czym różni się metoda format od f-stringa?
W metodzie format podajesz w tekście znaczniki w nawiasach klamrowych, a wartości przekazujesz jako argumenty i musi być ich tyle, ile znaczników. F-string, dostępny od Pythona 3.6, pozwala wpisać zmienną wprost w klamry wewnątrz tekstu poprzedzonego literą f, bez ręcznego rzutowania na tekst.
Co się stanie, gdy podam za mało wartości do funkcji format?
Jeśli w tekście jest więcej znaczników klamrowych niż podanych wartości, dostaniesz błąd IndexError o wykroczeniu poza zakres krotki. Gdy wartości podasz za dużo, użyte zostaną tylko pierwsze, pasujące do liczby znaczników.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...