Z racji kolejnego dnia domowej kwarantanny postanowiłem trochę więcej popisać. W dzisiejszym wpisie poruszę następne cztery kwestie związane z naszą nauką języka Python.

Dodatkowo małe info. Kurs Python 3 by MR przybrał nową formę. Będą pojawiać się darmowe odcinki na kanale YouTube, a w nich między innymi kodowanie na ekranie! Wpadnij na kanał, jeżeli jeszcze Cię tam nie ma.

A teraz przejdźmy do pytań, na które odpowiem w dzisiejszym materiale:

  • Czym jest PyCharm i jak go zainstalować?
  • Co to są instrukcje warunkowe?
  • Jak wyglądają funkcję i jakie mają zadania?
  • Czym są biblioteki i jak wiele biblioteki posiada Python?

Niby tylko cztery pytania, ale wiedzy pod nimi kryje się cała masa.

Zaczynajmy!

Kurs Python — Wprowadzenie

Powiem Ci szczerze, że pisząc ten darmowy kurs Python oraz dobierając pytania do niego, spotkałem się z pewnym drobnym problemem. Chodzi mianowicie o dawkowanie wiedzy i kolejność jej przekazywania. Wydawać by się mogło, że jest to trywialne, ale dopiero w momencie rozpoczęcia tworzenia pojawia się problem — co, kiedy i jak szczegółowo omówić. Gdybyś miał/a jakieś sugestie co do poruszanych tematów to napisz w komentarzu. 

Zrobiłem w środowisku programistycznym małą ankietę (w zasadzie kilku osobom zadałem pytanie o to, w jakim narzędziu zwanym IDE na co dzień pracują). Jednogłośnie padło, że jest nim PyCharm. Sam tego narzędzia używam praktycznie od początku mojej przygody z programowaniem w Python, dlatego w dzisiejszym wpisie rozpocznę od jego konfiguracji i omówienia. Następnie płynnie przejdziemy do opisu instrukcji warunkowych, będzie tam też przykład z opisem.

Kolejno opisanie działania funkcji, a na koniec poruszę temat bibliotek — czym są i jak wiele ich znajdziemy w Python.

PyCharm

JetBrains to firma, dzięki której my, programiści mamy dużo łatwiej pisać kod. Stworzyła ona między innymi IntelliJ IDEA dla Javy, RubyMine dla RoR czy wreszcie IDE o nazwie PyCharm. Jest to jedno z podstawowych narzędzi, które programiści Python używają w swojej pracy. Czas więc i na nas, by skonfigurować je i zacząć używać w kurs Python. 

PyCharm jest wieloplatformowym narzędziem dostępnym na systemy takie jak Microsoft Windows, GNU/Linux oraz macOS. Wydawany jest na dwóch licencjach. Pierwsza darmowa, czyli ta, której my będziemy używać to Community Edition. Płatna wersja to Professional Edition. Edycja darmowa, jak można się spodziewać, nie posiada kilku udogodnień. Na ten etap naszej nauki wystarczy w pełni wersja darmowa.

Windows

Zacznijmy instalację od języka Windows. W tym celu wejdę na stronę https://www.jetbrains.com/pycharm/download/#section=windows i pobiorę wersję Community (na czas pisania artykułu jest to wersja 2019.3.4,
Build: 193.6911.25 z 18 marca 2020 dla każdego z systemów). Plik exe waży blisko 300 MB, więc to już dość spory potworek 

Proces instalacji jest dość standardowy, ale zatrzymajmy się na jednym z kroków.

Zaznaczone wszystkie opcje podczas instalacji PyCharm w wersji Community w Kurs Python.
Rysunek 1. Zaznaczone wszystkie opcje podczas instalacji PyCharm w wersji Community.

Trzy opcje po lewej stronie nie wymagają tłumaczenia. Opcja „Add launchers dir to the PATH” to opcja, o której wspominałem w drugim wpisie. Zachęcam Cię do zgłębienia tam tematu. Kolejne kroki standardowo przechodzimy dalej i na końcu restartujemy nasz komputer.

Po instalacji, restarcie i uruchomieniu aplikacji wyskoczy okno, które poinformuje o imporcie ustawień, a następnie akceptacji polityki prywatności. Po zaakceptowaniu pozostaje podjąć decyzję o wysyłaniu statystyk do twórcy oprogramowania i wybraniu motywu. Ja wybrałem motyw ciemny i taki też polecam. Ostatnim oknem, które wyskoczy, będzie informacja o instalacji dodatkowych pakietów. I to pomijamy, zajmiemy się ewentualną instalacją dodatkowych rzeczy później.

Linux

W przypadku Linux korzystam z dystrybucji Ubuntu w wersji 18.04. Proces instalacji będzie przebiegał identycznie. Po przejściu na stronę https://www.jetbrains.com/pycharm/download/#section=linux i zupełnie, jak w przypadku systemu Windows, tu też wybieramy wersję Community, która zacznie się pobierać na nasz dysk. Plik powinien pobrać się w rozszerzeniu tar.gz, które świadczy o tym, że plik jest spakowany. 

Kolejnym krokiem jest uruchomienie konsoli i przejście do folderu, w którym rozpakowaliśmy nasze pliki instalacyjne. 

Wchodzimy do katalogu bin i uruchamiamy plik pycharm.sh.

mateuszrus:~$ cd Pobrane/
mateuszrus:~/Pobrane$ cd pycharm-community-2019.3.4/bin/
mateuszrus:~/Pobrane/pycharm-community-2019.3.4/bin$ ./pycharm.sh

W tym przypadku od razu uruchomi się okno z informacją o imporcie ustawień, akceptacji polityki oraz wybraniu koloru motywu. Po wyborze możemy cieszyć się zainstalowanym (uruchomionym) IDE!

Jeszcze mała uwaga na koniec. Jeżeli jest to Twoje pierwsze starcie z programem PyCharm, to zachęcam do zapoznawania się z tak zwanymi Tip of the Day, które uruchamiają się podczas włączania oprogramowania. 

Tip of the Day podczas uruchamiania aplikacji PyCharm w Kurs Python.
Rysunek 2. Tip of the Day podczas uruchamiania aplikacji PyCharm.

Instrukcje warunkowe

Czas przejść do kolejnego elementu języka Python. Bez wątpienia, w każdym języku programowania jednym z najważniejszych „klocków”, z których programista buduje oprogramowanie, jest właśnie Instrukcja warunkowa.

Czym ona jest? To nic innego jak pewnego rodzaju rozkaz, który sprawdza, czy coś jest prawdą, czy nie.  Po tej operacji programista może zdecydować, który fragment kodu chce wykonać.

Pseudokod

Można to łatwo zobrazować za pomocą pseudokodu, czyli zapiszmy wszystkie kroki naszego małego algorytmu za pomocą formuł matematycznych lub zdań w języku naturalnym.

jeżeli wiek jest większy lub równy 18 lat to
jesteś osobą pełnoletnią
w przeciwnym razie
nie jesteś osobą pełnoletnią
koniec warunku

Widać powyżej, że podejmujemy jakieś kroki na podstawie tego, czy mamy 18 lat, czy nie. Warto nadmienić, że klauzula Else (w przeciwnym razie) jest opcjonalna. Równie dobrze moglibyśmy skupić się tylko na sprawdzeniu pierwszej części.

jeżeli wiek jest większy lub równy 18 lat to
jesteś osobą pełnoletnią
koniec warunku

Trzecią i najbardziej rozbudowaną możliwością jest dodatnie warunku ELIF (nastomiast, jeśli).

jeżeli wiek jest większy niż 18 lat to
jesteś osobą pełnoletnią i urodziny miałeś/aś ponad rok temu
natomiast jeżeli wiek jest równy 18 lat to
jesteś osobą pełnoletnią i urodziny miałeś/aś w tym roku
przeciwnym razie

nie jesteś osobą pełnoletnią
koniec warunku

Już widzimy jak dużą swobodę działania mamy dzięki takiemu rozgałęzieniu kodu. Przejdźmy dalej, zapoznajmy się z operatorami przypisania i przepiszmy powyższy pseudokod do PyCharm.

Operatory porównania

Bez omówienia operatorów przypisania bardzo ciężko będzie nam przejść dalej i zrozumieć kod poniżej. Operatory operują na zmiennych po swojej lewej i prawej stronie. Dzięki temu możemy sprawdzić, czy coś jest równe, różne bądź większe i podjąć decyzję co zrobić dalej. W języku Python operatorów takich mamy kilka:

  • > — większe od
  • < — mniejsze od 
  • >= — większy bądź równy
  • <= — mniejszy bądź równy
  • == — równy
  • != — różny

Warto też mieć na uwadze jedną rzecz. Wszystko, co jest różne od 0, jest prawdą. 

if 1 #prawda
if 0 #fałsz
if True #prawda
if False #fałsz
if "Test" #prawda
if 111 #prawda
Zaprezentowanie różnych opcji na pokazanie prawdy w Kurs Python.
Rysunek 3. Zaprezentowanie różnych opcji na pokazanie prawdy.

Implementacja

Zacznijmy od umieszczenia w komentarzu naszego pseudokodu, który pomoże nam w zbudowaniu naszej instrukcji warunkowej. 

Następnie deklaruję zmienną age i przypisuje do niej wiek — niech to będzie 27. Teraz skorzystajmy ze słowa kluczowego If, które odpowiada pierwszej linii pseudokodu. Ważne są tu dwie rzeczy. Po słowie kluczowym możemy dać nawias, ale ja dla czytelności kodu go pomijam. Drugim, bardziej znaczącym elementem jest znak : (dwukropek), który kończy instrukcję warunkową. Bez jego obecności kompilator zwróci błąd. Dalej przechodzimy do drugiej linii.

Tam w prosty sposób za pomocą funkcji print wypisujemy na konsoli informację o tym, że jesteśmy pełnoletni. 

Kolejna instrukcja to dodatkowe sprawdzenie, jeżeli mamy równe 18 lat, wtedy informujemy również o tym, że skończyliśmy 18 lat w danym roku.

Słowo kluczowe Else pozostawiamy na koniec i w przypadku, gdy żadne z powyższych warunków nie zostaną spełnione, wypisujemy na konsolę informację o tym, że nie jesteśmy pełnoletni. 

Prosty kod, który przedstawia instrukcję warunkową.
Rysunek 4. Prosty kod, który przedstawia instrukcję warunkową.

Celowo nie dodaję implementacji w formie prostej do przeklejenia, ponieważ nadszedł czas, gdzie lepiej będzie byś przepisywał pewne fragmenty kodu samodzielnie!

Wcięcia

To, co pierwsze rzuca się w oczy, to są wcięcie. Mogą one przeszkadzać w pierwszym etapie pracy z językiem Python, ale później docenia się ich piękno. Bez nich program nie zadziałałby prawidłowo. Zobacz pseudokod poniżej. Mimo że zapisany jest identycznie, jak poprzedni, to kompilator podczas implementacji zwróciłby błąd.

jeżeli wiek jest większy lub równy 18 lat to
jesteś osobą pełnoletnią
koniec warunku

Warto też w tym miejscu zatrzymać się przy wcięciach i wielu liniach. Wcięcia pod instrukcją warunkową muszą mieć ten sam poziom zagłębienia. Gdy wykonamy chociaż jedną spację więcej w drugiej linii, to nasz kod przestanie się wykonywać.

Pseudokod poniżej również wydaje się poprawny, jednak taki nie jest.

jeżeli wiek jest większy lub równy 18 lat to
jesteś osobą pełnoletnią
posiadasz dowód osobisty

Poniżej jeden i drugi błędny przypadek w IDE.

Błąd spowodowany brakiem wcięcia w kodzie.
Rysunek 5. Błąd spowodowany brakiem wcięcia w kodzie.

 

Błąd spowodowany nierównymi wcięciami.
Rysunek 6. Błąd spowodowany nierównymi wcięciami.

Pojawia się jednak pytanie — ile tych spacji powinno być? A może tabulator? Odpowiedź jest prosta, najlepiej używaj czterech spacji lub tabulatora, który przykładowo w PyCharm zamieniany jest automatycznie właśnie na cztery spacje. To tyle, jeżeli chodzi o temat wcięć.

Prosty kalkulator

Ok, mamy już na tyle dużo wiedzy na tym etapie nauki, że możemy przejść do implementacji prostego kalkulatora. Zrobimy obsługę dwóch liczb i wskazanie operacji. 

Pojawia nam się nowa funkcja input oraz int. Pierwsza z nich prosi użytkownika programu o podanie wartości w konsoli, a funkcja int podany napis zamienia na liczbę. 

Pierwsze trzy liczby to pobranie od użytkownika liczb, na których wykonamy działanie, a następnie znaku operacji. W kolejnej instrukcji warunkowej pozostaje nam dodać odpowiednie warunki, tak by obsłużyć każdą z operacji.

Kod i działanie przykładowego kalkulatora.
Rysunek 7. Kod i działanie przykładowego kalkulatora.

Jak widzisz, kod jest dość przyjemny. Mam dla Ciebie z tego miejsca dwa zadania. Po pierwsze, postaraj się dodać ostatni warunek, który obsłuży przypadek, gdy wybierzemy złą opcję w przypadku zmiennej operation. Drugim zadaniem natomiast jest zabezpieczenie się przed dzieleniem przez zero! W razie trudności pisz w komentarzu. Tam też możesz podzielić się poprawnym kodem!

Operatory logiczne

Czasami przychodzi taki moment, że musimy ograniczyć nasz warunek z dwóch stron. Wyobraź sobie, że chcesz sprawdzić, czy ktoś urodził się pomiędzy rokiem 1990 a 1995. 

Można to zrobić dwoma osobnymi warunkami, jednak jest to mało eleganckie rozwiązanie.

Przykład sprawdzenia wartości pomiędzy dwiema liczbami
Rysunek 8. Przykład sprawdzenia wartości pomiędzy dwiema liczbami.

Niby działa, ale jednak nie jest to jedyna możliwość rozwiązania problemu. Z pomocą przychodzą właśnie operatory logiczne. Zapoznajmy się z trzema rodzajami:

  • koniunkcja, czyli and. Prawdziwa jest wtedy i tylko wtedy, gdy oba wyrażenia dają wartość True w tym samym momencie. 
  • alternatywa, czyli or. Fałszywa jest wtedy i tylko wtedy, gdy oba wyrażenia dają wartość False w tym samym momencie.
  • zaprzeczenie, czyli not. Neguje prawdziwą wartość i odwraca negację w przypadku wartości fałszywej.

Jest to przykład tak zwanej algebry Boole’a. Temat jednak jest na tyle rozbudowany, że stworzę o nim osobny materiał za pewien czas!

Mając tak podstawową wiedzę, możemy nasz kod zrefaktoryzować. Będzie on już dużo bardziej czytelny.

Pokazanie działania operatorów logicznych
Rysunek 9. Pokazanie działania operatorów logicznych.

Funkcje

Czas zabrać się za coś, co w mojej opinii jest jedną z najważniejszych rzeczy, jeżeli chodzi o programowanie — już nawet nie chodzi o programowanie w języku Python. 

Z funkcjami w przypadku tego kursu już się zetknęliśmy, chociażby w przypadku funkcji print, input czy int do rzutowania. Funkcję łatwo sobie wyobrazić jako takie pudełko, często też nazywane czarną skrzynką. Wrzucamy tam jakieś dane na wejście, one są w pewien sposób przetwarzane (nie musi nas to interesować, jak to się dzieje), a następnie na wyjściu otrzymujemy jakiś zbiór informacji przetworzonych.

Dzięki takiej konstrukcji możemy stworzyć kod raz i używać go za każdym razem poprzez wywołanie funkcji. Ułatwia to pracę i powoduje, że jako programiści nie popełniamy błędu powielania kodu. 

Grupy funkcji są zebrane w tak zwane klasy, a następnie klasy w biblioteki. I te ostatnie omówię poniżej, ponieważ społeczność języka Python jest bardzo aktywna i udostępnia dziesiątki, jak nie setki tysięcy bibliotek!

Budowa funkcji

Powyżej napisaliśmy program, który odgrywał rolę małego kalkulatora. A gdyby go tak zamienić na funkcję, która przyjmie dwie liczby oraz rodzaj działania w postaci znaku?

Czemu nie! „Kurs Python 3 by MR” powstał po to, by eksperymentować.

Funkcję w Python deklarujemy poprzez słowo kluczowe def. Następnie podajemy nazwę funkcji — w naszym przypadku będzie to nazwa calculate. Kolejno w nawiasie podawane są parametry wejściowe, czyli u nas będzie to pierwsza i druga liczba oraz znak działania. W samej funkcji również widzimy drobną, lecz znaczącą różnicę. Zamiast wywołania funkcji print używane jest słowo kluczowe return, które po prostu zwraca dane wyjściowe.

Dalej praktycznie bez zmian. Pobieramy od użytkownika trzy wartości, a następnie w funkcji print wywołujemy z tymi trzema parametrami naszą funkcję calculate. Proste prawda?

Przedstawienie działania nowej funkcji calculate.
Rysunek 10. Przedstawienie działania nowej funkcji calculate.

Biblioteki

Zasadniczo naukę Python można podzielić na cztery główne sekcje:

  • nauka podstaw języka
  • zaawansowane opcje języka
  • umiejętności wokół języka, jak chociażby wzorce
  • pakiet bibliotek

Na tym ostatnim punkcie się skupimy w tej części kurs Python. Warto jednak zadać sobie pytanie, czym właściwie jest biblioteka w programowaniu? 

O bibliotekach wspomniałem wcześniej. Możemy ją przedstawić jako zbiór funkcji, danych oraz ich typów, które można w prosty sposób wykorzystać z poziomu aktualnie wykonywanego kodu. Dzięki bibliotekom mamy możliwość zastosowania tego samego kodu wiele razy, bez powtarzania go i kopiowania.

Pierwsze koncepcje bibliotek zostały zaprezentowane w roku 1951 przez trzech programistów — Maurice Wilkesa, David Wheelera oraz Stanley Gill.

Python jest językiem z ogromną ilością bibliotek. Jest ich na ten moment ponad 223 000 pakietów. Więcej informacji można znaleźć na stronie https://pypi.org/.

Przy tak wielkiej ilości bibliotek nie ma sensu selekcjonować ich i wybierać. Proponuję Ci zapoznać się z interesującymi Cię tematami i poszukanie odpowiednich ku temu narzędzi na wyżej wspomnianej stronie.

Chcę Ci nadmienić, że nikt na świecie nie jest w stanie zapamiętać wszystkich bibliotek i znać ich budowy. Dlatego w życiu programisty równie ważne co znajomość technologii jest też umiejętność szybkiego szukania wiedzy i odpowiedniego jej zastosowania w praktyce. 

Spróbujmy zrobić jakiś przykład z użyciem zewnętrzej biblioteki. Wiele bibliotek jest dostępnych od razu po instalacji Python w systemie. Zbiór tych bibliotek nazywa się Python Standard Library i więcej na ich temat możesz sprawdzić pod adresem https://docs.python.org/3/library/.

Skorzystajmy z jednej z takich wbudowanych bibliotek. Niech to będzie biblioteka z funkcjami matematycznymi o nazwie Math. Spróbujmy wyciągnąć wartość pierwiastka z liczby 2 oraz 3.

Użycie biblioteki Math i funkcji sqrt.
Rysunek 11. Użycie biblioteki Math i funkcji sqrt.

Kurs Python — Podsumowanie

Kolejny krok z „Kurs Python 3 by MR” za nami. Nie wiem, czy widziałeś/aś pierwszy odcinek kursu Python 3 by MR, który pojawił się wczoraj na kanale YouTube. Został bardzo dobrze odebrany, udało mu się nawet trafić na stronę główną na Wykop!

Ogólnie nagrałem też kilka przemyśleń na temat pracy zdalnej. Okres, który aktualnie przeżywamy, jest dla nas, programistów ogromną szansą. Powinniśmy doceniać to, co mamy i wykorzystać to jak najlepiej. 

Po tym wpisie powinieneś/aś mieć wiedzę na temat:

  • operatorów logicznych i porównania
  • instalacji PyCharm
  • intrukcji warunkowych
  • funkcji i jej budowy
  • bibliotek w języku Python

Na koniec powiedz mi, proszę w komentarzu lub prywatnie, co myślisz o formie jaki przybiera ten kurs Python.

No i standardowo, łap dwie książki!

PS. Będę wdzięczny za komentarze pod tym postem!

PS2. Czeka też na Ciebie prezent. Wystarczy, że zapiszesz się na Newsletter poniżej!

PS3. Dołącz do naszej grupy na Facebook!


Zapisz się na Newsletter, odbierz NAGRODĘ w postaci e-booka z 10 omówionymi algorytmami pojawiającymi się w pytaniach podczas REKRUTACJI..

Dodatkowo otrzymuj co niedzielę informacje na temat nowych wpisów, wiadomości ze świata IT i matematyki oraz ciekawych wydarzeniach. Nie przegap i dołącz już dziś do 904 osób!.

Źródła

 https://docs.python.org/3/ 
Autor

👨‍💻 .NET and Python programming passionate 🏦 Digtial Banking Solutions 🎓 Student 📊 Psychology 📚 Bookworm 🏠 Warsaw

3 komentarze

  1. Nie ma to jak podstawy 😉
    Moze jakies uzyteczne skroty w PyCharm – lub takie tips and tricks?
    Do glowy mi przychodza jeszcze zapytania listowe, lambda i dekoratory ale to chyba na pozniej 🙂
    Jakis code formatter do utrzymywania ladnie sformatowanego kodu, bo slyszalem ze ten wbudowany w PyCharm nie jest do konca dobry (Ctrl+Alt+L)

Napisz komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.