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-.
Czas na dokończenie naszej implementacji pozostały
nam dwie metody jedna do dodawania naszego rabatu oraz
do zapisywania pliku jak możemy zauważyć tutaj
brakuje parametru który będzie odpowiadał wartości
naszego pola rabatowego teraz
musimy użyć metody calculate do tego aby obliczyć wartość
aktualną naszego rachunku używając słowa
kluczowego self możemy odnieść się do metody naszej klasy następnie
odejmujemy od niego znowuż
wartość naszego rachunku pomnożoną przez kod
rabatowy w naszym przypadku będzie on znajdował się
pod zmienną discount i jednak będziemy
przekazywać go w procentach więc musimy podzielić
go przez sto sprawdźmy teraz czy nasza metoda add discount
działa poprawnie zwróćmy jeszcze wartość naszego
rachunku po obniżce i
za pomocą naszego pliku main zobaczmy czy
prawidłowo obliczyliśmy naszą
zniżkę na
przykład 10% to by było prościej
daliśmy tutaj 5 5 więc w przypadku liczby 10
i 10% rabatu klient do
zapłaty ma 9 zł co
możemy zmodyfikować w naszej metodzie warto
zobaczyć że podwójnie tak naprawdę
liczymy wartość naszego koszyka jeżeli
jest to bardzo prosty algorytm to nie ma żadnego problemu ale zawsze
w takich przypadkach należy przypisać wynik
naszej kalkulacji do jakiejś zmiennej na przykład takiej i
używać właśnie tej zmiennej dzięki czemu będziemy w
stanie zaoszczędzić czas związany z obliczeniami dodatkowo
sama metoda nazywa się add discount moglibyśmy tutaj użyć
nazwy calculate with discount
żeby dokładnie powiedzieć co się stanie po
użyciu tej metody wszystko działa prawidłowo jednakże
dokonaliśmy tak zwanej refaktoryzacji kodu czyli
usprawniliśmy pewien wygląd
naszego kodu oraz szybkość jego wykonywania bez
zmiany jego funkcjonalności ostatnią metodą którą powinniśmy zaimplementować
jest print to file jednakże obsługę plików chciałbym ci pokazać w następnej lekcji
a w tej skupić się na tym w jaki sposób zrobić interfejs
użytkownika przejdźmy do pliku main wcześniej
przygotowałem dla ciebie pewną część kodu która będzie odpowiedzialna
za interakcje z użytkownikiem zobaczmy jak on wygląda na
początku tworzymy obiekt rachunku a następnie przypisujemy
do zmiennej action jakąś defaultową wartość za
pomocą pętli while będziemy oczekiwać wprowadzenia pewnych komend aż
do uzyskania ciągu znaków o nazwie end to
co może być nowego to konstrukcja elif zastępuje ona
konstrukcję else i if którą trzeba by
rozbić w taki właśnie sposób co
musimy przyznać nie byłoby dosyć wygodne ale twórcy pythona
postawili na konstrukcję elif niestety w pythonie
nie znajdziemy typowego dla takiego właśnie przypadku
słowa kluczowego switch następnie utworzyłem
dla ciebie plik widoku który będzie posiadał
metody związane z obsługą poleceń tak zwanego
wejścia-wyjścia czyli odczytywania danych od użytkownika
dlaczego to robimy ponieważ warto odizolować warstwę
związaną z bezpośrednią obsługą użytkownika tak jak
w tym wypadku odczytywaniem danych od niego samego lub
zwracaniem tych danych ponieważ kiedy będziemy robić aplikacje
na przykład webową to należy zmodyfikować tylko jeden plik odpowiedzialny za
tę operację a nie musimy tak naprawdę modyfikować żadnej
części logiki którą już przygotowaliśmy więc bardzo dobrą praktyką jest
oddzielenie to na chwilę obecną do oddzielnego pliku
i wykorzystywanie tego pliku jako taką
taką skrzynkę z zewnątrz której wywołujemy
tylko konkretne metody aby dostać dane to co
tutaj zastosowałem to również coś co bardzo
mało języków programowania posiada tak zwane zwracanie
wielu wartości wielu zmiennych zobaczmy tutaj posiadamy
możliwość wprowadzania przez użytkownika nazwy
i ceny danego posiłku a następnie od razu
zwracamy nazwę oraz cenę za pomocą
dwóch oddzielnych zmiennych w innych językach promowania należałoby utworzyć
na przykład ich słowniik jakąś listę i zwrócić konkretnie
jeden obiekt python umożliwia nam zwrócenie wielu zmiennych z
naszej funkcji wracając do samego maina zaimportujmy nasz
plik view i uruchommy nasz program tutaj
umieściłem taką legende podpowiedź dla użytkowników ponieważ jeżeli wpiszemy
cokolwiek innego to tak naprawdę nic się nie wydarzy aby wyjść z naszego programu wystarczy
wpisać end okej
dodajmy jakieś
produkty i
spróbujmy wypisać jaka jest ich konkretna wartość użytkownik
już widzi że jest to 5.33 spróbujmy zastosować nasz
kod rabatowy niestety nie udało się dlaczego
python mówi nam że ta
klasa bill nie posiada tego atrybutu discount nasza
klasa nie zawiera już naszej metody o nazwie discount
ale zmieniliśmy nazwę tej metody na calculate with discount przejdźmy
zatem do naszego pliku i pomińmy nazwę
wystąpił
błąd wszystkie wartości które są zwracane za
pomocą funkcji input są stringiem dlatego
też na tym poziomie warto dokonać konwersji wiedząc
że będzie to na przykład integer aby
wszystko działało poprawnie zobaczymy jeszcze raz
udało
się policzyć nam wartość naszego rachunku po zastosowaniu kodu
rabatowego aby wyjść z naszego programu
wystarczy użyć polecenia end