Blog JSystems - z miłości do programowania

"Hello world" i pisanie na konsoli



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.

Przyjdź do nas na szkolenie z języka Python! Mamy szereg szkoleń w ofercie, od podstawowych po aplikacje webowe z użyciem Django, analizę danych, tesowanie, machine learning i wiele innych.
Sprawdź dostępne szkolenia Python
Zapisz się do newslettera aby otrzymywać najnowsze świeżynki pojawiające się na blogu!