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-.
Okej aby poprawnie zrozumieć co dzieje się
we flasku i w jaki sposób działają adnotację chciałbym
porozmawiać z tobą na temat funkcji w pythonie to
co bardzo istotne nie każdy wie że funkcja może
zostać przekazana do innej funkcji jako
argument zobaczmy na przykładzie napiszmy bardzo prosty kod i
podstawową funkcję teraz
napiszmy funkcję
nadrzędną która jako argument
będzie przyjmowała funkcje pamiętaj
ta nazwa nic nie znaczy moglibyśmy zrobić tak
naprawdę coś takiego ale dla kogoś kto czyta twój kod będzie
o wiele bardziej zrozumiałe że dana funkcja jako argument powinna przyjąć funkcję
to
co należy tutaj zrobić to wykorzystanie tego
argumentu w ten sposób że podajemy tutaj
nawiasy otwarte czyli tak jakbyśmy
wywoływali naszą funkcję bezpośrednio zobaczmy teraz w jaki
sposób wykorzystać to w pythonie wywołajmy naszą
funkcję parent której wewnątrz
użyjemy inner function taki zapis
pozwoli nam na uruchomienie tych
dwóch funkcji oraz przekazaniu do funkcji parent naszej
funkcji która powinna być wewnątrz zobaczymy teraz jak to zadziała najpierw
dostaliśmy informację że funkcja parent została wywołana a
następnie za pomocą przekazanego argumentu jesteśmy
w stanie wywołać funkcje wewnętrzną która spowoduje wyświetlenie
tego oto ciągu
znaków więc jest to kluczowe aby
przejść do następnego kroku upewnij się że rozumiesz co się tutaj
stało i w jaki sposób będziemy to wykorzystywać okej
zaprojektujemy funkcję której zadaniem będzie sprawdzenie czy konkretna
godzina mieści się w podanym zakresie być może będziesz tworzył jaki system alarmowy
i będziemy chcieli żeby nasza funkcja uruchamiala się tylko w określonych
godzinach okej zacznijmy od
deklaracji naszej funkcji nazwijmy ją nadrzędnej
i tak jak w poprzednim przypadku będziemy przekazywać argument
określony jako func do
naszej funkcji teraz wystarczy
proste sprawdzenie instrukcja warunkowa dzięki
której będziemy w stanie sprawdzić czy aktualna godzina mieści się w przedziale od
22:00 do 7:00 pamiętajmy o tym żeby zaimportować moduł datetime
pycharm pomoże nam to zrobić i
będziemy mogli uruchomić naszą funkcję w przeciwnym
wypadku możemy podać
użytkownikowi jakąś informację że
alarm nie powinien się uruchomić okej
zobaczymy teraz jak z tego korzystać dodatkowa
funkcja pozwoli nam na sprecyzowanie co tak naprawdę
potrzebujemy nazwijmy funkcję invoke alarm
i sprawdźmy dla przykładu bardzo
prosty print aby stwierdzić
czy wszystko działa poprawnie i tak jak poprzednio
możemy włożyć naszą funkcje podrzędną
invoke alarm do funkcji lights out czyli funkcji
która będzie nadrzędna tak zwanym rodzicem naszej
funkcji okej wywołajmy i sprawdźmy co się stanie okej
mimo że zaimportowaliśmy moduł import datetime niestety
nie udało nam się uzyskać bezpośrednio dostępu do funkcji
now należy uważać w jaki sposób pycharm importuje
nasze moduły poprawnym importem będzie taki
oto zapis czy zauważyłeś gdzie popełniłem błąd tobie
też może się to przydarzyć zobacz że w linii dwudziestej czwartej użyłem
tutaj nawiasów otwartych czyli spowodowałem natychmiastowe wywołanie
tej funkcji aby wszystko zadziałało poprawnie należy
przekazać tylko i wyłącznie nazwy naszej funkcji która będzie wykorzystywana
już wewnątrz funkcji lights out w tym wypadku uruchomiliśmy
naszą funkcję alarm ringing bez względu na to w jakiej
godzinie się znajdujemy poprawmy nasz błąd i
zobaczymy co się stanie okej dostaliśmy informację że nasz alarm
nie powinien zostać wywołany ponieważ znajdujemy
się w innych godzinach niż te przewidziane przez nas w
programie dzięki takiemu zapisowi możemy
utworzyć nieskończoną ilość tych funkcji i
wrzucić je wewnątrz tutaj lights out w
której będziemy mieć informację odnośnie konkretnych
godzin jeżeli chcielibyśmy zmodyfikować nasze godziny to wystarczy w
jednym miejscu zmodyfikować nasz kod i wszystkie funkcje które korzystają
z niego będą zmodyfikowane czyli w moim
przypadku jeżeli chcielibyśmy zmienić zakres powiedzmy od
7:00 do 22:00 możemy
zobaczyć że mieścimy się w tym zakresie i nasza funkcja została poprawnie wykonana
mimo że ten mechanizm jest identyczny jak
we flasku być może nie jest jeszcze dla ciebie dostatecznie widoczny
w jaki sposób przetwarzane są adnotacje które
widzisz właśnie w tym miejscu teraz zajmiemy się tym aby zrozumieć
co dokładnie znajduje się w tym elemencie kodu i
w jaki sposób my sami możemy stworzyć własne adnotacje okej
stwórzmy funkcję rozwińmy
ją w wrapper i umieszczamy w niej logikę którą wcześniej wykorzystywaliśmy
w tym momencie będziemy zwracać
naszą funkcję i
będziemy mogli ją wykorzystywać w następujący sposób do
zmiennej night time przypiszmy wartość
która zostanie zwrócona z tej funkcji i
pamiętając że tak naprawdę jest to funkcja możemy ją w tym miejscu wywołać
okej logika jest identyczna jednak
przygotowaliśmy się do tego żeby użyć adnotacji w bardzo prosty sposób wystarczy
utworzyć nową funkcję
trzymajmy się
alarmów i
obłożyć ją adnotacją którą wcześniej stworzyliśmy do
tego służy operator małpki i
wpiszemy lights out zobaczmy
przeszliśmy z takiego oto zapisu który
widzisz tutaj w bezpośrednią adnotację
i w tym momencie cała ta metoda invoke multiple
alarm uruchomi się tylko i wyłącznie jeżeli zostaną określone
warunki które znajdują się funkcji lights out zobaczmy czy wszystko
działa poprawnie okej
teraz wywołajmy naszą
funkcje multiple
i tak jak poprzednio nasz alarm nie powinien
zostać uruchomiony jeżeli zmienimy godziny
w jakich powinniśmy pracować to dla
obu przypadków i pojedynczy alarm i alarm nazwany
multiple został uruchomiony zobaczymy skończyliśmy
właśnie z takim zapisem który widzimy we flasku i
tak naprawdę tutaj obkładamy naszą metodę hello world w
taki sposób abyśmy byli w stanie traktować
naszą metodę jako road czyli aby mieć dostęp
do tej metody bezpośrednio z naszej przeglądarki