Wszystko jest obiektem #. Rzecz o Pythonie .

Rzecz o Pythonie 

Zasady w programowaniu zawsze są takie same – zawsze mamy zmienne, pętle, instrukcje warunkowe. Język programowania to tylko narzędzie do komunikacji z komputerem. Wydawane mu polecenia, dzięki ogromnemu postępowi technologicznemu coraz bardziej wydajnych podzespołów, wykonuje w mniej niż ułamku sekundy. Jak zatem wybrać język, na którego naukę trzeba przecież poświęcić lata energii i czasu? Kierować się pieniędzmi i wybrać tę technologię, dzięki której zarabia się najwięcej? Może, gdy pieniądz nie jest najważniejszy i chcemy uczestniczyć w ciekawych projektach, sprawdzamy to, jaka technologia jest tam wykorzystywana? A co, jeśli dopiero chcemy wejść do świata IT, zostać programistą, ale nie wiemy, jaki język wybrać? Po części odpowiedzią na te pytania jest on – Python.

Python to jeden z najpopularniejszych na świecie języków programowania na żądanie. Dzieje się tak z wielu powodów: łatwo się go nauczyć, jest super wszechstronny, posiada też szeroką gamę modułów i bibliotek.

Dawno, dawno temu…

W świecie Pythona dużo się dzieje. Python nie jest nowym językiem, nie został przedstawiony światu w ostatnich 10 ani nawet w ostatnich 20 latach. Pierwsza wersja 0.9.0 wyszła na świat w 1991, czyli 30 lat temu. Jego ojcem był Holender Guido van Rossum. Przyświecały mu dwa cele: stworzyć język programowania, który będzie następcą języka ABC i który będzie przyjazny w obsłudze dla zwykłego użytkownika. I tutaj Python wygrywa z konkurencją już na samym starcie. Podczas gdy w wielu językach do stworzenia prostego programu potrzeba wielu linijek kodu, w Pythonie wystarczy kilka, a czasem i mniej. Leży to w filozofii samego języka. W 1999 roku sformułowano zbiór zasad „Zen of Python” (które są swego rodzaju przewodnikiem zarówno dla twórców, którzy wciąż rozwijają tę technologię, jak również dla programistów), na przykład: Proste jest lepsze niż złożone, Czytelność się liczy, Piękne jest lepsze niż brzydkie.

Pomimo wielu lat na karku, Python obecnie przeżywa ogromny rozkwit – i to w wielu dziedzinach. Jest wykorzystywany do tworzenia stron internetowych, w świecie nauki data science, sztucznej inteligencji czy sieci neuronowych. Wszystko zawdzięcza swojej przejrzystości oraz temu, że jest darmowy i nie trzeba opłacać licencji za jego użytkowanie. Można go użytkować zarówno w środowisku Windows, mcOS czy Linux.

Ciekawostka: nazwa tego języka nie pochodzi od węża. Mimo że poruszanie się w Pythonie jest zwinne, Van Rossum inspirował się brytyjskim programem komediowym „Latający cyrk Monty Pythona”. Moim zdaniem jest to genialna inspiracja, bo zarówno oglądanie tego serialu, jak i praca z tym językiem są przyjemne i zaskakujące. Mamy nadzieję, że pomogę Ci w Twojej podróży do programowania w Pythonie!

Zmienne

W Pythonie niezwykle łatwo jest zdefiniować zmienną, a także ustawić jej wartość. Wyobraź sobie teraz, że chcesz przechowywać liczbę 7 w zmiennej. Zróbmy to!

(1) value1 = 7

Proste, prawda? Właśnie przypisaliśmy wartość 7 do zmiennej „value1”

(2) value2 = 8

(3) some_number = 10000

Możesz wyobrażać sobie zmienne jako pudełka, które przechowują wartość. Nie trzeba, jak w przypadku języka C++ czy Java, definiować typu zmiennej. To pudełko samo wie, jaki typ wartość ma w środku. A gdy chcemy zmienić jego zawartość, wystarczy go nadpisać.

(4) value1 = ”siedem”

I tak oto z zmienna „value1” zmieniła swój typ z liczby całkowitej na słowo. Równie dobrze możemy wykorzystać Pythona jako prosty kalkulator. Przypiszmy zmienne.

(5) wynik = 3 + 4

To da nam wynik 7. Ale możemy też dowolnie manipulować zmiennymi, mogą one stać się częścią innej zmiennej.

(6) value1 = 3

(7) value2 = 4

(8) wynik = value1 + value2

Co również da nam oczywisty wynik 7. Teraz pod zmienne możemy podstawiać dowolne liczby, a wynik zawsze będzie zgodny z prawdą. Możemy trzymać w zmiennej listy, np listę zakupów.

(9) lista1 = [“jajka”, “mleko”,

“chleb”, “karma dla psa”,

“proszek do prania”]

Możemy też tworzyć słowniki, gdy dla jednego obiektu, np. książki, chcemy przypisać kilka cech.

(10) some_book = {“autor”:

“Henryk Sienkiewicz”, “title”:

“Ogniem i mieczem”, “price”:

39.90}

Serwisy internetowe

Tworzenie dynamicznych stron internetowych jest bardzo łatwe i efektywne dzięki bardzo dobrym frameworkom, jak Django, Flask, czy kombajnowi aplikacji Zope/Plone/Pyramid. Python znalazł swoje zastosowanie przy efektywnym i szybkim tworzeniu nowoczesnych stron internetowych bogatych w funkcjonalności. Dzięki wszechstronnej kolekcji modułów czy też bibliotek, łatwości testowania oraz czytelności kodu, serwisy napisane w Pythonie mogą osiągnąć ten sam stan i zestaw funkcjonalności szybciej (czy też taniej) niż pozwalałyby na to języki i platformy stosowane wcześniej.

Usługi i serwisy społecznościowe to obecnie podstawa dla wielu serwisów www. Za pomocą Pythona bezproblemowo można wykorzystać API/usługi serwisów takich, jak Twitter, Facebook, aplikacji Google (Maps, Docs i innych), NASA, YouTube, serwisów pogodowych, giełdowych i wielu, wielu innych. Biblioteki implementujące logowanie pozwolą nam dodać logowanie za pomocą serwisów społecznościowych na naszej stronie.

Automatyzacja zadań

Skrypty napisane w Pythonie można wykorzystać do automatyzacji zadań takich, jak:

odczytywanie, zmiana i zapisywanie plików na dysku – przykładowo można automatycznie zmienić nazwy wielu plików poprzez dodanie do nich daty, przenieść wybrane pliki pomiędzy katalogami, wyodrębnić pliki z katalogów zarchiwizowanych w .zip, zarchiwizować pliki z określonymi rozszerzeniami lub utworzone w określonym przedziale czasu, usunąć wybrane pliki;

przeglądanie stron internetowych, pobieranie danych ze stron i ich zapisywanie na dysku, np. pobranie ze stron kursów walut, cen jednostek uczestnictwa;

praca z arkuszami MS Excel, np. porównywanie danych między wierszami w arkuszu lub między arkuszami, odczytywanie danych z Excela i wykorzystanie ich w programach Pythona;

wypełnianie formularzy na stronach internetowych, logowanie się do poczty, logowanie się do konta bankowego.

Python jest więc językiem „scalającym”. Jest on doskonałym spoiwem, służącym do tworzenia skryptów, za pomocą których można łatwo kontrolować zachowanie innych systemów i komponentów oprogramowania.

Data science

Praktycy sztucznej inteligencji i uczenia maszynowego często są tymi, którzy preferują używanie Pythona ze względu na czytelność kodu, intuicyjność oraz łatwość kodowania, którą zapewnia. Faktem jest też to, że świat coraz bardziej zarzucany jest ilością generowanych danych, praktycznie wszystkie nasze akcje są przekształcane do postaci danych, które mogą się do czegoś przydać. Począwszy od robienia zdjęć, przez zamieszczanie komentarzy w mediach społecznościowych, a skończywszy na wyszukiwaniu produktów czy usług w internecie, zakupach, a także notowaniach giełdowych czy raportach pogodowych. Te wszystkie dane są rejestrowane. Jednak, jak wiadomo, same dane są bezużyteczne, jeśli nie będą stosowane z korzyścią dla społeczeństwa, czyli zestawiane, analizowane i odpowiednio dostosowywane. Na szczęście tym zajmuje się właśnie nauka o danych (data science).

Społeczność Pythona stworzyła świetne biblioteki, wśród których można wymienić Numpy czy Pandas, służące właśnie do pracy z danymi. Python zapewnia bogaty zestaw funkcji, służących między innymi do gromadzenia danych, czyszczenia zbiorów danych, wyodrębniania ważnych funkcji, budowania modeli uczenia maszynowego czy do tworzenia wizualizacji wyników za pomocą wykresów.

Algorytmy

Sztuczna Inteligencja opiera się w dużej mierze na statystyce. Podobnie zresztą tak, jak działa ludzki mózg. Dane, jakie otrzymujemy z otoczenia, są często niepełne i niedokładne, a większość decyzji musimy podejmować w ułamku sekundy. Na tym też polega uczenie się – na popełnianiu błędów i wyciąganiu z nich wniosków. Algorytmy sztucznej inteligencji w podobny sposób uczą się, na przykład, rozpoznawać przedmioty na zdjęciach. Algorytmy, których używamy w kontekście uczenia maszynowego, nazywane są sieciami neuronowymi. Teraz przyjrzyjmy się, czym jest uczenie maszynowe .

Myślę, że najlepszym sposobem wyjaśnienia, czym jest uczenie maszynowe, byłoby podanie przykładu. Wyobraźmy więc sobie prostą drogę w modelu 2D, po której jedzie prostokątny model samochodu. Jego zadaniem jest przejechanie od linii startu do linii mety. Napisanie takiego algorytmu jest proste i program zawsze się wykona. Co jednak, gdy droga będzie miała zakręt? Lub wiele zakrętów? Nasz samochód zawsze będzie wjeżdżał w ścianę i nigdy nie dojedzie do celu. Natomiast gdy dodamy mu dodatkowe parametry, jak kontrolowanie prędkości i możliwość skręcania w prawo lub w lewo, po wielu próbach nasz samochód pokona tę trasę. Pozostaje pytanie o to, jak wielu prób potrzeba? 10? 50? 100? Otóż te próby liczone są w tysiącach, a w bardziej skomplikowanych problemach w milionach. A gdy samochód już nauczy się pokonywać wyznaczoną trasę w możliwie najkrótszym czasie, a później, po kolejnych milionach prób, zacznie dojeżdżać do mety po każdej wyznaczonej mu trasie, można spokojnie założyć firmę produkującą autonomiczne samochody. 

Jeżeli mamy do czynienia z tzw. sieciami wielowarstwowymi, wchodzimy w obszar sieci głębokich oraz głębokiego uczenia się. A więc podsumowując zależności: sztuczna inteligencja > uczenie maszynowe > głębokie uczenie.

Autonomiczne samochody, wirtualni asystenci, boty czy też doradcy w postaci na przykład Siri czy Asystenta Google, smart-domy, robotyka – w tych wszystkich narzędziach przyszłości (a nawet teraźniejszości) „palce maczają” właśnie programiści Pythona. Są oni „magikami”, dzięki którym spełniane są „życzenia” użytkownika.

Python wykorzystywany jest również w bankowości, przez firmy ubezpieczeniowe, fundusze inwestycyjne, domy maklerskie, fundusze hedgingowe. Nie tylko do przewidywania trendów, przygotowania się do odpowiednich inwestycji, ale również do obsługi klientów czy własnych baz danych.

QNIEC

Python przebył długą drogę, nastąpiło w nim wiele zmian. Dzięki założeniom jego twórcy i ogólnoświatowej społeczności jest to język bardzo przyjemny, gdy się go czyta, oraz bardzo satysfakcjonujący, gdy się go używa. Nie bez powodu jest tak chętnie wykorzystywany przez międzynarodowe korporacje jak Google, Facebook, Twitter, Microsoft, Netflix, Uber, Instagram, Youtube, Nokia czy NASA. Coraz więcej firm odwołuje się do języka Python w opisach zadań, ponieważ wciąż zyskuje on nowe biblioteki i większe wsparcie. A tych firm jest dużo więcej i z roku na rok ich lista się wydłuża. To tylko świadczy o potędze, jaka drzemie w Pythonie.