Python da się lubić


Jakiś czas temu musiałem przejrzeć w komputerze listę wielu folderów i pokasować ich podfoldery o określonych nazwach, wraz z zawartością. Niedługo potem musiałem tę czasochłonną operację powtórzyć i istniało ryzyko, że będę musiał to powielać jeszcze wiele razy. Pomyślałem zatem o zautomatyzowaniu tego procesu. Nie znałem żadnego gotowego narzędzia do tego typu rekurencyjnego przeglądania i kasowania folderów. Mogłem użyć do tego Powershella, z którym miałem pewne doświadczenia, ale za którym generalnie nie przepadam. Mogłem tez użyć C#, w którym na co dzień programuję zdecydowanie bardziej złożone rzeczy. Ostatecznie zdecydowałem się potraktować swój problem jako okazję do nauczenia się podstaw nowego dla mnie języka Python. Choćby po to, by sprawdzić, czy jest on rzeczywiście tak prosty i szybki do nauki, jak mówią „na mieście”, i przekonać się na własne oczy, dlaczego ten język pnie się w górę w rankingach popularności.

Nie żałuję wyboru i jestem pod wrażeniem prostoty i logiki Phytona.

Kodując w językach C#, Java, JavaScript, Powershell, wiele razy zastanawiałem się, dlaczego do prostych rzeczy potrzebujemy aż tyle kodu. Niekiedy ów nadmiarowy kod ma swoje uzasadnienie i daje określone korzyści, w szczególności przy budowaniu złożonych systemów. Czasem jednak zbyt komplikowane konstrukcje językowe wynikają z niedopracowania technologii lub z podejścia twórców języka, dla których prostota kodu znalazła się na samym dole listy priorytetów.

W Pythonie jest wręcz przeciwnie! Proste rzeczy wykonuje się zazwyczaj za pomocą jednego prostego polecenia. Nadmiarowość jest ograniczana do minimum, co widać od razu, gdy zerkniemy na jakikolwiek kawałek kodu. W innych językach, wywodzących się z C, do separacji bloków kodu wykorzystujemy nawiasy klamrowe (bo tego wymaga konstrukcja języka), a dodatkowo korzystamy z wcięć, aby kod był bardziej uporządkowany i czytelny. Skoro zatem wcięcia są dla nas lepszym rozwiązaniem, aby w przejrzysty sposób ustrukturyzować kod, dlaczego nie poprzestać wyłącznie na nich, całkowicie pozbywając się stosowanych równolegle klamr? Tak właśnie jest w Pythonie – korzystamy wyłącznie z wcięć, bez żadnych nawiasów, bo tak jest prosto i logicznie.

Jak zatem rozpocząć przygodę z tym sympatycznym tworem?

Instalacja środowiska

Python ma już 30 lat i jest dostępny w ramach wszystkich wiodących systemów operacyjnych. W systemie Windows 10 najprostszym sposobem jest instalacja poprzez Microsoft Store:

Alternatywnie program instalacyjny można pobrać z strony https://www.python.org/downloads/,  dodatkowo możemy wybrać wersję. Może to być najnowsza wersja, niedostępna jeszcze w sklepie Microsoft.

Po prawidłowo przeprowadzonym procesie instalacji, wywołanie komendy python z poziomu linii poleceń lub z poziomu Powershella spowoduje uruchomienie interaktywnego interpretera Pythona (z którego następnie możemy wyjść poleceniem exit() lub poprzez Ctrl+Z.

Jak rozpocząć naukę

Łatwość języka w połączeniu z ogromną ilością dostępnych tutoriali sprawia, że efektywna nauka Phytona nie stanowi żadnego wyzwania.

Warto poczytać na stronach https://www.python.org/ o tym, jakie możliwości oferuje ten język. Naukę najlepiej zaś rozpocząć od poznania składni i poleceń podstawowych bibliotek języka, np. korzystając z przejrzystego opisu poleceń dostępnego pod adresem https://www.programiz.com/python-programming lub z tutoriala, dostępnego również po polsku, pod adresem https://www.learnpython.org/pl/.

Do opanowania podstaw języka może wystarczyć jedno popołudnie. Znacznie więcej czasu natomiast potrzeba, by zapoznać się z bogactwem możliwości, jakie oferują dodatkowe specjalistyczne biblioteki – ogólnodostępne rozszerzenia języka Python. Wykorzystując na przykład potężną bibliotekę Django ( https://www.djangoproject.com/ ) lub nieco prostszy Flask ( https://flask.palletsprojects.com/en/1.1.x/), możemy stworzyć webserwis lub microserwis. Z kolei w postaci biblioteki PyTorch ( https://pytorch.org/) dostajemy wiodące narzędzie do uczenia maszynowego.

Pierwsza aplikacja

Pisać skrypty Python można w dowolnym edytorze tekstowym. Wygodniej jednak skorzystać z dołączonego do instalacji Pythona małego IDE o nazwie IDLE, który oferuje kolorowanie kodu, podpowiadanie oraz umożliwia uruchomienie stworzonego skryptu poprzez kliknięcie F5.

Podobne wsparcie dla języka Python oferuje również Visual Studio. Ciekawą alternatywą jest także rozbudowane IDE PyCharm od JetBrains ( https://www.jetbrains.com/pycharm/download ) i kilka innych aplikacji, których porównanie można znaleźć na przykład tutaj: https://www.softwaretestinghelp.com/python-ide-code-editors/.

Plik z naszym skryptem powinien mieć rozszerzenie .py. Python jest językiem interpretowanym, a zatem nie musimy przejmować się procesem kompilacji.

W swojej pierwszej aplikacji na początku zdefiniowałem dwie zmienne, które równie dobrze mogłyby być stałymi, gdyby nie fakt, że w Pythonie stałe nie występują. Istnieje co prawda konwencja definiowania nazw stałych wielkimi literami, ale z technicznego punktu widzenia są to nadal zmienne, czyli ich wartość może być dowolnie modyfikowana:

Jak widać, nie definiujemy typu. Jest on automatycznie określany na podstawie przypisywanej wartości. Do oznaczenia wartości tekstowych możemy wykorzystać apostrofy lub cudzysłów.

Następnie importuję biblioteki, z których metod będę korzystał.

‘Def’ odpowiada za definicję funkcji, której ciało podajemy po dwukropku, pamiętając o obowiązkowym wcięciu. Znak # natomiast oznacza początek komentarza, kończącego się wraz z końcem linii.

Pozostaje tylko wywołać powyższą funkcję dla zdefiniowanej ścieżki:

Cały skrypt prezentuje się następująco, w postaci 16 krótkich linii kodu:

Podsumowanie

Python z pewnością nie jest idealnym rozwiązaniem do wszelkiego typu zastosowań. Nie ma w nim chociażby silnego typowania, a napisanych skryptów nie kompilujemy przed ich uruchomieniem. Zatem na rozwijanie dużych monolitycznych systemów lub tworzenie aplikacji, w przypadku których krytyczne znaczenie ma szybkość działania, lepiej znaleźć w inny sposób. Tym niemniej wszędzie tam, gdzie zależy nam przede wszystkim na prostocie i przejrzystości kodu, warto rozważyć użycie tego sympatycznego języka. Przekonuje do tego dodatkowo jego ugruntowana pozycja, popularność wykładniczo rosnąca od dłuższego czasu, a także ogrom łatwo dostępnej – i przystępnej! – dokumentacji.


Piotr Zyśk

O Piotr Zyśk

Od 2019 roku jako programista fullstack w Atenie zgłębiam głównie technologie .Net i Angular. Wcześniej przez kilkanaście lat zajmowałem się szeroko pojętym wsparciem administracyjno-programistycznym w dla dużej sieci call-center. W wolnym czasie lubię wykorzystywać swój komputer na różne sposoby, np. jako studio do tworzenia muzyki lub urządzenie do symulacji rajdów i wyścigów samochodowych. Często również można spotkać mnie w podolsztyńskich lasach na rowerze, z aparatem fotograficznym.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *