Python - wprowadzenie



Już od dawna przymierzam się do napisania artukułu, a nawet serii artykułów o pythonie. Osobiście bardzo lubię ten język programowania, w moim odczuciu jest dość przejrzysty, prosty i intuicyjny. Można szybko nauczyć się podstaw i ma ogromne możliwości. Nie jest to tylko język skryptowy (spotkałem się z wieloma takimi opiniami), jest to język uniwersalny, oczywiście wiele osób używa go do pisania skryptów, ale nie tylko. W pythonie można także bezproblemowo napisać graficzne aplikacje desktopowe i webowe. Jest to język ogólnego przeznaczenia, jako projekt open source rozwija się bardzo szybko i pomimo, że w naszym kraju nie jest aż tak popularny, to w innych krajach jest zdecydowanie inaczej. Python jest językiem w pełni obiektowym, ma wiele implementacji (np. CPython, Jython, IronPython) i ogromną ilość bibliotek, które rozszerzają jego zastosowanie. Python jest także językiem multiplatformowym. Programy w pythonie mozna pisać za równo na windowsa, jak i dowolną inną platformę. Z ciekawostek, które przemawiają za tym językiem programowania mogę napisać, że na jego podstawie w mniejszej lub większej części bazują:
- wyszukiwarka google (powtała na bazie pythona),
- YouTube,
- p2p i bittorrenty,
- Google App Engine,
- EVE Online,
- API w programie Maya,
- wiele obecnych gigantów tworzących sprzęt komputerowy korzysta z pythona przy testach urządzeń,
- wytwórnie filmowe (np Pixar), - JPMorgan i nietylko w prognozach finansowych,
- NASA,
- iRobot przy budowie robotów,
- mapy GIS,
- NSA w kryptografii.


Odrobina historii

Python został stworzony w latach 90-tych (w styczniu 1991 pojawił się oficjalnie) przez Guido van Rossum'a jako następca języka ABC, który był skolei następcą takich języków jak BASIC, Pascal, czy AWK. Niektórzy jeszcze pamiętają jak nie tak dawno temu Pascal był nauczany w szkołach średnich, ach ten poziom nauczania informatyki w Polsce. Natomiast AWK wiele osób używa do dziś w systemach unix'owych i linux'owych, w tym także i ja. Wracając do python'a, język swoją nazwę zawdzięcza Monty Pythonowi. Twórca języka jest wielkim fanem tego serialu. Python jak wiele języków ma własną filozofie, która zakłąda minimalizm i prostota. Poniżej zamieszczam kolejną ciekawostkę w wierszu poleceń. Wpisujemy polecenie import this i wciskamy ENTER

>>> import this 

The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

Co jest, a czego nie widać

Aby zacząć programowac w pythonie wystarczy nam działający komputer. Nie ma konieczności istalowania dodatkowych rzeczy, bo zazwyczaj python jest już wśród składników systemu. Jeżeli tak nie jest to wystarczy ściągnąć plik instalacyjny i go zainstalować. Biorąc jednak pod uwagę ciągły rozwój pythona to warto zaaktualizować go w systemie. Obecnie są dostępne dwie wersje pythona 2.x i 3.x. Nie wszystko napisane na wersji 2.x będzie działało na wersji 3.x. Oczywiście starano się zachowac wstęczną kompatybilność, ale zmiany w stosunku do wersji są na tyle istotne, że nie w każdej sytuacji będzie tak pięknie. Programy napisane w pythonie można oczywiście przerabiać bez problemu, gdyż przypominają pliki tekstowe, mamy nawet napisane konwertery z wersji 2.x do 3.x. Nie są to programy po kompilacji jak w przypadku niektórych innych języków programowania. Python składa się z interpretera, który jest odpowiedzialny za wykonanie naszych programów. Mozna powiedzieć, że interpreter jest wartwą logiczną odpowiedzialną za przetłumaczenie naszych intrukcji na język zrozumiały dla naszego komputera. Cały ten proces jest dla nas praktycznie nie widoczny. Jeżeli python ma prawa do zapisu to czasami będziemy mogli dostrzec tworzenie się plików z rozszerzeniem .pyc. Sa to pliki z kodem bytowym zapisane u nas na dysku. Pliki usprawniają szybkośc wykonywania kodu, gdyż przy kolejnych uruchomieniach (jeżeli nie było zmian w kodzie) python zamiast na nowo kompilować program, pominie ten etap. Po procesie kompilacji następuje proces wykonania programy. Odpowiada za to PVM (Python Virtual Machine).


Implementacje pythona

Poniżej wymianiam kilka podstawowych implementacji pythona, o których warto wiedzieć.
CPython - oryginalna i standowa implementacja pythona. Nazwa pochodzi od ANSI C, w którym została napisana.
Jython (znany wcześniej jako JPython) jest alternatywną implementacją stworzoną do integracji z językiem programowania Java.
IronPython - ta implemetacja odpowiada za integracje programów napisanych w pythonie z aplikacjami .NET.
Implementacji jest oczywiście więcej. Python ma także alternatywy dla aternatyw ;) Przykładem moga być chociazby JPype i Python for .NET, które pozwalają uzyskać dostęp do danych platform bezpośrednio ze standardowej implementacji pythona.


Wykonywanie programów

Jest kilka sposobów na wykonywanie programów w pythonie. Jednym z nich jest interaktywny wiersz poleceń. Możemy dostac się do niego w IDE lub w systemowym wierszu poleceń. W tym drugim wystarczy wpisać polecenie python. Wygląda to mniej więcej tak:

python 
Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:27:37) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Jeżeli w naszym systemie katalog pythona nie znajduje się w ścieżce zmiennej środowiska powłoki, to do uruchomienia interaktywnego wiersza poleceń pythona będziemy mysieli wpisać pełną ścieżkę. W windowsie można także uruchomić IDLE (Start -> Wszystkie programy -> Python -> IDLE). W IDLE także mamy dostęp do interaktywnego wiesza poleceń.
Drugim sposobem na uruchomienie programu python'owego jest dwuklik na ikonie programu. W windowsie może być problem z podglądem przebiegu wykonywania programu jak we wszystkich innych językach programowania, gdyż windows automatycznie zamyka okno konsoli po wykonaniu programu. W pythonie aby temu zaradzić wystarczy na końcu programu dodać funkcję input() lub dla wersji 2.x raw_input(), która będzie czekała na dane wejściowe do wykoniania.
Jeżeli chodzi o wprowadzenieto, to będzie chyba na tyle. W razie pytań służę pomocą.