od Podstaw
4 godz. 14 min · Python · Full-stack i Programowanie
Rafał Stępień.NET, JS, Java, PythonZaczniemy spokojnie, od konfiguracji Pythona oraz środowiska programistycznego. Nie tracąc czasu uzbroję Cię w zestaw podstawowych instrukcji, za pomocą których stworzymy pierwsze praktyczne programy komputerowe. Zobaczysz na czym polega logika tworzenia aplikacji, jak poprawnie wykorzystywać typy zmiennych udostępnione przez twórców Pythona oraz jak poradzić sobie z obsługą błędów. Na końcu tej sekcji dowiesz się w jaki sposób dbać o wygląd naszego kodu oraz zaoszczędzić czas stosując funkcję.
Żeby zrozumieć i wykorzystywać pracę innych programistów pragnę pokazać Ci czym są moduły i w jaki sposób możesz je tworzyć w Twoim programie. To częsta praktyka pozwalająca na zachowanie przejrzystości kodu wraz z możliwością jego powtórnego wykorzystania w innych częściach naszej aplikacji. Zaznajomimy się z narzędziem PIP, dzięki któremu z łatwością zainstalujesz jeden z ponad 200 000 projektów (bibliotek). Korzystając z pracy wykonanej dzięki tysiącom innych programistów zaoszczędzisz czas oraz zminimalizujesz ilość popełnianych błędów. Na koniec sekcji dowiesz się czym jest virtualenv i dlaczego warto korzystać z niego w każdym projekcie.
W tej sekcji wejdziemy do świata programowania obiektowego - najczęściej wykorzystywanego sposobu w jaki formuje się programy komputerowe w dzisiejszym świecie. Dowiesz się czym jest klasa oraz jak utworzyć ją w Pythonie. Zobaczysz że programiści starają się odzwierciedlić otaczający nasz świat w postać kodu na wszystkie możliwe sposoby. Zapoznam Cię z głównymi nurtami w programowaniu obiektowym, aby zrozumieć w jaki sposób napisać dobrej jakości kod. W każdej części w praktyce wykorzystamy wiedzę teoretyczną zamieniając ją na postać kodu Python-a. Na koniec pokaże Ci jak można obsługiwać niestandardowe zachowania programu w taki sposób, aby nie przestraszyć użytkownika naszej aplikacji :)
Jeśli masz dosyć tworzenia aplikacji konsolowych...wreszcie możesz odetchnąć. Wkraczamy w świat internetu! Twoim celem jest napisanie kolejnego Facebook, utworzenie własnej strony internetowej lub serwera do gier? Czas wykorzystać wiedzę zgromadzoną podczas tego kursu. Pokaże Ci w jaki sposób zainstalować oraz skonfigurować mikroframework Flask do tworzenia aplikacji internetowych. Krok po kroku pomogę Ci w utworzeniu pierwszej aplikacji internetowej wraz z pokazaniem narzędzi takich jak Jinja, sesji oraz techniki Blueprint. Na koniec sekcji pokażę Ci w jaki sposób wgrać swoją aplikację na zewnętrzny serwer i pokazać się światu!
Podczas mojej nauki, pracy oraz pomocy innymi natknąłem się na wiele problemów, które blokowały początkujących adeptów programowania przed dalszą pracą. Być może utkniesz na jakimś błędzie, usuniesz niepoprawną część kodu lub nie będziesz wiedzieć co dzieje się z Twoim programem. Miałem wiele takich chwil, dlatego specjalnie na taką okazję utworzyłem dla Ciebie skrzynkę z narzędziami. Znajdziesz tam sposoby-wytrychy na poradzenie sobie w sytuacjach kryzysowych. Dowiesz się między innymi jak krok po kroku zobaczyć w jaki sposób komputer uruchamia Twój kod, czym mogą być spowodowane niespodziewane błędy oraz w jaki sposób poprawić jakość Twojej aplikacji.
Utworzyłem ten kurs dla osób, które są na początku swojej drogi z programowaniem oraz językiem Python. Jeśli posiadasz już doświadczenie w innych językach programowania z pewnością dużo łatwiej będzie Ci przyswoić wiedzę zawartą w tym kursie, niemniej zakładam, że nie masz pojęcia o programowaniu. W kursie stawiam na praktykę i chcę Ci pokazać jak szybko wykorzystać nabytą wiedzę, dlatego też po bardziej zaawansowaną część teoretyczną odsyłam do blogów, artykułów online oraz książek ze środowiska Pythona-.
Cześć witaj w kolejnej lekcji w
tej lekcji chciałbym pokazać ci sposób rozwiązania następującego problemu
nasz kolega poprosił nas o możliwość nie tylko dodawania posiłków
ale również usług serwisowych na przykład w przypadku gdy przyjdzie
duża liczba gości to co należy zrobić
na samym początku to przeanalizować naszą klasę posiłek
i zastanowić się czy możemy ją jakkolwiek wykorzystać do tego aby utworzyć
klasę serwis nasza klasa serwis będzie różniła się tylko tym że będziemy mieli
dodatkowy parametr a tak naprawdę logika
przypisywania będzie taka sama z pomocą przychodzi
nam tutaj mechanizm o nazwie dziedziczenia będziemy
na samym początku potrzebować klasy bazowej która będzie na
samej górze naszej hierarchii dziedziczenia ja
nazwę sobie tą klasę entry to
będzie nasza główna klasa z której możemy przekopiować tą
część kodu odpowiedzialną za inicjalizację teraz możemy
wykorzystać naszą klasę entry do tego aby dziedziczyć
po niej naszej klasie posiłek
aby to zrobić wystarczy wstawić tutaj nawiasy i
napisać entry python zaraz nam podpowie że będziemy musieli
zaimportować moduł okej dzięki
temu zobaczmy że ten kod i
ten jest praktycznie taki sam dlatego też w naszym konstruktorze
klasy meal możemy wykorzystać ten
kod z klasy bazowej aby to zrobić używamy słowa kluczowego super który
odnosi się do obiektu klasy wyżej
czyli w naszym przypadku entry i tutaj
wstawiając nawiasy po kropce możemy uruchomić
nasz konstruktor naszą metodę wewnętrzną
init i wystarczy tutaj wpisać name i price ten
zabieg utworzyliśmy dlatego że bardzo szybko jesteśmy teraz w
stanie utworzyć nowy plik o nazwie service i
tak naprawdę skopiować tą funkcjonalność do
naszej nowoutworzonej klasy która będzie odpowiedzialna za przechowywanie
usług serwisowych dla naszego kolegi dodatkowo
pojawi się tutaj pole guest number
jednak w naszej klasie bazowej ono nie występuje to co
jest ważne to musimy pamiętać żeby przypisać za pomocą słówka
self dostał tą informację
o liczbie gości przejdźmy do naszego rachunku i
sprawdźmy gdzie powinniśmy wykorzystać dodatkową informację
o naszych usługach mamy już listę która przechowuje posiłki
dzięki temu że użyliśmy mechanizmu dziedziczenia tak naprawdę
nie musimy robić osobnej listy która będzie zawierała
usługi ale możemy tak
naprawdę wykorzystać tą listę główną ponieważ prawdopodobnie będziemy robić na niej te same
operacje takie jak na przykład obliczanie jakiejś zniżki czy
sumowanie całościowe naszego zamówienia w
takim układzie także wystarczy że zmienimy nazwę możemy
manualnie tutaj zmieniać nazwę w każdym punkcie ale najlepiej
wykorzystać tak zwany refactoring kodu czyli używając
skrótu shift f6
jesteśmy w stanie zmienić naszą listę meals na po
prostu słówko entries i automatycznie w każdym miejscu zostanie
podmieniona ta nazwa mocno sugeruję żeby używać tej funkcjonalności zamiast
normalnie wymieniać nazwę naszych zmiennych w klasie dodatkowo
potrzebujemy nową metodę alt
enter podpowiada nam abyśmy zaimportowali
nasz moduł naszą klasę która będzie zawierała nasze
usługi teraz wystarczy do tej samej listy którą
mieliśmy wcześniej dodać
nową usługę okej delikatne
zmodyfikowaliśmy nasz kod już nie będzie tylko jednego polecenia
add ale mieliśmy to na add meal i add service i w przypadku
add service on będzie wywołać metodę add service
naszej klasy bill tak naprawdę tak jak widzisz tworzenie
nowych metod czy cała obsługa jest bardzo podobna
różni się tylko ilość parametrów na przykład w naszej
metodzie sprawdźmy teraz czy wszystko działa dodaliśmy
naszą usługę następnie dodaliśmy produkt pytanie
czemu nie zrobiliśmy tego tak na prawdę w add meal
oczywiście moglibyśmy jednak różnice pojawią
się później na przykład przy wypisywaniu do pliku ponieważ w zestawieniu
na paragonie chcielibyśmy powiedzmy dowiedzieć
się jak dużo było gości a gdybyśmy użyli tak naprawdę klasę
meal to ta informacja ona by przepadła dlatego
też to jest wymaganie biznesowe które mamy na samym początku ustalić i
tak naprawdę się tego trzymać tutaj ten mechanizm dziedziczenia idealnie
pomógł nam wykorzystać tak naprawdę jedną kolekcję z naszej klasy bill do
tego żeby przetrzymywać wszystkie informacje które powinny zostać ujęte na
rachunku i wspólnie obliczane i mimo że dodaliśmy nową
klasę usług to ona dalej bardzo dobrze współgra
z na przykład z naszą metodą do obliczania całkowitego kosztu naszego zamówienia