Nauka Pythona

Artykuł składa się z trzech części:

  • podanie źródeł do nauki oraz podstawowych narzędzi pod Windows
  • kilka ćwiczeń na start
  • pokazanie Pythona pod AmigaOS 4

Jak zacząć z Pythonem

Dlaczego Python? Dlatego że jest to najlepszy język na start do nauki programowania. Oficjalnie zastąpił Pascala w szkołach. Jest przejrzysty, tworzy krótki kod, i daje dobre podstawy do nauki innych języków.

Jest wiele źródeł do nauki, w tym za darmo. Nie ma najlepszego, ja sam szukałem kilka dni w internecie aż trafiłem na „swojego” nauczyciela. W tym czasie dużo czytałem – o narzędziach do programowania, jakie są polecane książki, oglądałem wideo różnych instruktorów.

Z kursami wideo jest tak, że jest w Polsce kilka firm które specjalizują się w kursach wideo, i dostępne są zawsze darmowe odcinki i rozpiska co w którym odcinku. YouTube roi się od darmowych materiałów. Wybierałem długo, bo każdy tłumaczy trochę inaczej. Wybierasz gościa, który będzie „ględził” godzinami, wszystko jest ważne, bo jak będzie cię lektor drażnił to będzie gorzej szła nauka. I też nie jest tak, że jak cykl filmów trwa kilka godzin to nauczysz się w kilka godzin. Nauka to nie zaliczanie filmów. Nie mam tu na myśli tylko zapauzowania na czas pisania kodu; nieraz trzeba cofnąć i oglądnąć kilka razy. Nauka to powolny proces, trzeba być wytrwałym.

Z książkami też jest dobrze, wybór jest duży. Jeżeli chodzi o zapoznanie się z zawartością, to na stronie Helionu prawie przy każdej pozycji można pobrać darmowy fragment.

Książki możesz kupić w profit24 – to jest tania księgarnia.

Jeżeli miałbym wskazać jakiś prosty kurs na początek, po polsku i darmowy to polecam cykl artykułów Python kurs online na blogu Fly Nerd.

Mój plan nauki jest następujący:

1. Najpierw kurs wideo na platformie Udemy „Python dla początkujących” (7 godzin wykładów plus ćwiczenia); jest tutaj https://www.udemy.com/python-dla-poczatkujacych/
Kursy tam są w nieustającej obniżce, kosztują ok. 38 zł. Wybrałem naukę wideo dlatego, że było taniej niż książka, poza tym miałem już doświadczenia z uczeniem się z filmów i dla mnie takie rozwiązanie jest szybsze do przyswajania wiedzy

Kurs opiera się na narzędziach:
– zwykła instalacja Pythona z opcjonalnym powiązaniem go z powłoką Windows (można wtedy z linii poleceń działać), do tego jest proste środowisko IDLE; to jest dobre na początek – pracuje się na dwóch okienkach w jednym pisze się, w drugim jest rezultat działań w konsoli


Anaconda będąca zbiorem kilku narzędzi, z menadżerem pakietów; główne do nauki jest Jupyter Notebook
Wspomniany Jupyter Notebook jest dostępny także online z poziomu przeglądarki, ale lepszym rozwiązaniem jest instalacja tego przez Anacondę; wtedy pracuje to jak lokalny serwer – też w przeglądarce, ale jest pewność, że się nie wysypie bo serwer przeciążony.
Anaconda udostępnia też inne środowiska pracy – spyder, a do dociągnięcia R studio czy Visual Studio Code.

Anaconda Navigator
Jupyter Notebook

2. Następnie książki „Twórz własne gry komputerowe w Pythonie” (Sweigart Al) i „Automatyzacja nudnych zadań z Pythonem. Nauka programowania” (Sweigart Al).
Ta o pisaniu gier pokazuje tylko gry tekstowe. Dla mnie mimo tego jest istotna, bo pokazuje „jak to działa”. Na nic wykucie na pamięć poleceń jak nie będziesz wiedział jak tworzyć interakcje. Ta druga jest często wymieniana wśród polecanych i najlepszych (dla mnie ta książka jest za trudna i polecam ja osobom znającym Pythona).

Warto wspomnieć o tym czym się różni kodowanie od programowania. Kodowanie to jest np. tworzenie strony internetowej. W swojej podstawowej formie kodowanie strony internetowej to formatowanie tekstu, umieszczanie ilustracji, czyli właściwie jest to tworzenie wyglądu dokumentu (co prawda interaktywnego). W programowaniu trzeba główkować od samego początku, i to dużo, trzeba samemu wymyślić nieraz jak zrobić żeby coś uzyskać.

Powyżej podałem swój plan działania, możesz zrobić inaczej.
Może się okazać, że ci nie idzie. Ciężko coś doradzić wtedy. Może nie każdy może być programistą? Najniższy próg wejścia jaki odnalazłem to książka o nauce programowania dla dzieci poprzez Pythona „Uczymy dzieci programowania” – autor to Bryson Payne. Tam jest pokazana nauka z użyciem gołego Pythona plus biblioteka do gier PyGame. Większość materiału to użycie biblioteki żółwia i rysuje się (jak w Logo) różne kolorowe spirale, potem tworzy proste gry. Jeszcze lepsza jest, bazująca na Pythonie z gałęzi 2.x (ale są podane różnice do wersji 3.x) „Hello World! Przygoda z programowaniem dla dzieci i absolutnie początkujących. Wydanie II”, Autorzy: Warren Sande, Carter Sande. Jest to najlepsza książka dla początkującego jaką widziałem w życiu, nie ma już łatwiej.

Nie trać zbyt wiele czasu na wybór narzędzia (tak jak ja to zrobiłem). W Polsce większość używa narzędzi spyder albo PyCharm, ja bym się skłaniał do Visual Studio Code od Microsoftu. Ale to jak będziesz znał język. Na początkowym etapie nie ma znaczenia w czym piszesz, bo nie wykorzystasz nawet ułamka możliwości tych narzędzi.

Python jest przyszłościowym językiem – wciąż zyskuje na popularności. Dobrze pasuje nie tylko do nauki programowania i zabawy z Raspberry Pi ale wogóle do IoT (internet rzeczy).

Samodzielne ćwiczenia

Pierwsze ćwiczenie

Pierwszym poleceniem jakie poznaje każdy jest print. To nie dotyczy drukowania, print powoduje wyświetlenie czegoś na ekranie.

Na przykład po wpisaniu:

print('Hello')

wciśnij Shift + Enter (właśnie te dwa klawisze, nie sam Enter) to zwróci ci wartość:

Hello

Co tu się wydarzyło? Tekst który ma być wyświetlany musi być nie tylko w nawiasie ale w apostrofach, nie ma znaczenia jakich, mają być jednakowe przed i po. Czyli ‘Hello’ i “Hello” da ten sam rezultat.

W kolejnych przykładach juz nie będe pisał „wciśnij Shift + Enter” – jeżeli będę pisał „dało ci wartość” i podobne sformułowanie, to znaczy że to było zrobione własnie tak.

Bardzo ważne jest żeby pilnować wielkości liter – duże i małe, wogóle to wiele błędów bierze się z literówek.

DRUGIE ĆWICZENIE

Można wykonywac działania matematyczne, na przykład:

4*3/12

i to da ci wynik

1.0

Można wykonywać praktyczne obliczenia, na przykład przeliczenie 23 stopni Celsjusza na stopnie Fahrenheita.

Wzór wygląda tak: Temperatura w stopniach Fahrenheita = 32+9/5*temperatura w stopniach Celsjusza

Czyli:

32+9/5*23

da:

73,4

Właśnie ustaliłeś, że 23 stopnie Celsjusza to 73,4 stopnie Fahrenheita.

TRZECIE ĆWICZENIE

Już wiesz jak podać tekst do wyświetlenia na ekran, dokonać prostych obliczeń matematycznych, czas na zmienne.

Zmienna z kolei powstaje w prosty sposób – jeśli napiszemy coś i nadamy temu wartość. Nadawanie wartości odbywa się przez =. Nazwy zmiennych najlepiej pisać bez polskich znaków (ale nie jest to konieczne), łącznie, i każde słowo z dużej litery (może z wyjątkiem pierwszego).

Przykład:

NazwaObiektu=kwadrat

„NazwaObiektu” to będzie zmienna o tej nazwie, a „kwadrat” to będzie wartość tej zmiennej.
Działa to tak, że jak napiszesz:

NazwaObiektu

to uzyskasz wartość:

kwadrat

No dobrze, ale po co nam to jest potrzebne? Jedna zmienna to za mało żeby zobaczyć. Więc zrobimy zadanie, w którym utworzymy kilka zmiennych o różnych wartościach i wykorzystamy do obliczeń.

WartoscPi=3.14
PromienOkregu=5
PoleKola=WartośćPi*PromienOkregu**2
print('Pole koła wynosi',PoleKola)

Co tu się wydarzyło? Zdefiniowaliśmy dwie zmienne – WartoscPI i PromienOkregu. Następnie stworzyliśmy trzecią zmienną PoleKola której wartość była obliczana na podstawie dwóch poprzednich. Wzór na pole koła to P=πr2 (liczba Pi pomnożona przez promień okręgu i podniesiona do potęgi drugiej, czyli jak to się potocznie mówi „do kwadratu”). Jak widzisz potęgowanie zapisujemy podwójnym znakiem mnożenia. Ostatnia linijka to określenie jaki tekst ma wyświetlać się przed prezentacją wyniku. No i rezultat:

Pole koła wynosi 78.5

Teraz pokażę częsty błąd początkujących. Załóżmy że działasz po prostu w konsoli, i wpisujesz – jako że wzór na pole prostokąta to a*b – coś takiego:

PoleProstokata=Wysokosc*Dlugosc

i dostajesz błąd:

Traceback (most recent call last):
File "<pyshell#0>", line 1, in 
PoleProstokata=Wysokosc*Dlugosc
NameError: name 'Wysokosc' is not defined

Dlaczego tak się stało? Dlatego że zacząłeś operować na zmiennych, dla których nie utworzyłeś wartości. Bo nie podałeś ile wynosi Wysokosc a ile Dlugosc a już chcesz liczyć. Prawidłowy kod wyglądałby tak:

Wysokosc=3
Dlugosc=4
PoleProstokata=Wysokosc*Dlugosc
print('Pole prostokąta wynosi',PoleProstokata)
Pole prostokąta wynosi 12

Właśnie nauczyłeś się tworzyć zmienne i używać je do tworzenia kolejnych. Zapewne zajęło ci to mniej czasu niż mi. Nie ma to jak laik laikowi wytłumaczy ;) Te proste ćwiczenia opierają się o pierwsze zadania z wspomnianego na początku kursu. No tak, ale to są dopiero pierwsze kroczki w zmiennych. Są jeszcze funkcje, pętle i masa rzeczy. Na przykład jak dojść do programu, który otwiera własne okienko. Wzorując się na przykładzie wyżej – można zrobić program, który oblicza powierzchnie figur. Byłyby pola na wpisanie wartości. To wszystko przed nami ;)

Jeśli masz za sobą „Hello” i chcesz iść już teraz dalej – zajrzyj na ten film Python od podstaw – 05 – typy danych, zmienne. Są tam pokazane absolutne podstawy Pythona.

Bardzo ważne jest, żebyś samodzielnie rozwiązywał różne zadania. I pisał, nie kopiuj-wklej. Bardzo wskazane jest znać język angielski, można się go uczyć równolegle z programowaniem. Jest po prostu niezbędny na dalszym etapie – zarówno polecenia języka, jak i dokumentacja jest po angielsku.

Do samodzielnego „googlania” musisz wiedzieć jeszcze, że jest coś takiego jak Pygame – biblioteka pomocna do tworzenia gier. Bo Python jest rozszerzalny o dodatkowe moduły. Z poziomu linii komend można użyć PIP (jest w Pythonie >2.7.9 oraz >3.3), rozbudowane środowiska mają wygodne zarządzanie paczkami w formie list. No i na koniec rzecz o której pisze wszędzie, a wspominam dla formalności – są dwie linie Pythona: 2.x i 3.x. Wersja 2.7 będzie mieć już tylko aktualizacje poprawkowe. Staraj się używać najnowszej wersji z gałęzi 3.x. Na tę chwilę stabilna wersja to jest 3.6.5, choć gdy zainstalujesz Anakondę – to ona ma własnego Pythona 3.6.4, już nie musisz doinstalowywać. No i pamiętaj – działając w Windows wszystko rób na prawach admina. W razie problemów – odpowiem w komentarzach. Nie chcę przeciążać artykułu tematami związanymi z Windows. Podane wyżej źródła nauki i przykłady użycia kodu są uniwersalne. Idziemy dalej.

Python pod AmigaOS 4

No, tu niestety nie ma tak łatwo i ładnie. Przede wszystkim zapomnij o historycznych wersjach hulających po internecie, takich jak AmiPython (wersja 2.3.3) czy to co leży na OS4 Depot (wersja 2.4.1). Interesuje cię tylko wersja dostarczona z systemem – znajdziesz ją w katalogu System.

Po uruchomieniu zobaczysz okno konsoli:

W AmigaOS 4.1 FE jest to Python w wersji 2.5.6. Przyznaję jestem zaskoczony, negatywnie. Staroć.

Jest do tego plik pomocy:

No i co dalej z tym? Wiki AmigaOS nie podaje informacji, a ledwie wzmianki, np. tutaj:  http://wiki.amigaos.net/wiki/AmigaOS_Manual:_Workbench_Using#Python_Drawer

Na blogu dewelopera systemu jest jeden artykuł: solie.ca/articles/pythonmod/pythonmod.html

Na OS 4 Depot jest Pygame:
http://os4depot.net/index.php?function=showfile&file=development/library/misc/pygame.lha

Przede wszystkim (jak może zauważyłeś) z systemem dostarczony jest tylko interpreter Pythona. Nie ma środowiska programistycznego Pythona, więc musisz pisać w jakimś edytorze programisty, najlepiej z kolorowaniem składni. Wybór jest niewielki.

Dobre wiadomości są takie, że Python jest zintegrowany z systemem tak jak ARexx. Oznacza to w praktyce, że twoje skrypty w Pythonie będą działać od razu bez dodatkowych zabiegów.

Poza tym Python jest używany przez program do grafiki 3D o nazwie Blender (darmowy, multiplatformowy, bardzo popularny). Tu będzie pomocna strona amigowej wersji Blendera, na której można znaleźć przykłady hybrydowych skryptów Python-Arexx: www.broad.ology.org.uk/amiga/blender/arexx_python.html

Ciąg dalszy nastąpi – bo musi :) Muszę najpierw poduczyć się, no i znaleźć rozwiązania problemów pod AmigaOS (np. nie działa zamknięcie okna powłoki). Wrócę do tematu jak będzie z czym.

Opublikowano: 04.06.2018
Ostatnia edycja: 16.02.2020