Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00354 005152 18979745 na godz. na dobę w sumie
Programowanie w Pythonie dla bystrzaków. Wydanie II - książka
Programowanie w Pythonie dla bystrzaków. Wydanie II - książka
Autor: Liczba stron: 416
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-5905-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> python - programowanie
Porównaj ceny (książka, ebook (-35%), audiobook).

Utworzenie i uruchomienie pierwszej aplikacji

Rozwiązywanie problemów i usuwanie błędów

Praca z Anacondą i używanie funkcji magicznych

Programowanie w Pythonie jest łatwe i sprawia mnóstwo radości!

Oferujący potężne możliwości i dynamiczny Python jest używany do tworzenia wielu różnych aplikacji. Został opracowany jako prawdziwie niezależny od platformy - dzięki temu jest doskonałym narzędziem dla początkujących programistów, zwłaszcza tych, którzy chcą szybko poznać nowy język. Zamieszczone w książce polecenia pozwalają w dość krótkim czasie krok po kroku opanować podstawy Pythona.

W książce:

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Beginning Programming with Python For Dummies, 2nd Edition Tłumaczenie: Agnieszka Górczyńska ISBN: 978-83-283-5905-5 Original English language edition Copyright © 2018 by John Wiley Sons, Inc., Hoboken, New Jersey All rights reserved including the right of reproduction in whole or in part in any form. This translation published by arrangement with John Wiley Sons, Inc. Oryginalne angielskie wydanie © 2018 by John Wiley Sons, Inc., Hoboken, New Jersey Wszelkie prawa, włączając prawo do reprodukcji całości lub części w jakiejkolwiek formie, zarezerwowane. Tłumaczenie opublikowane na mocy porozumienia z John Wiley Sons, Inc. Translation copyright © 2019 by Helion S.A. Wiley, the Wiley Publishing logo, For Dummies, Dla Bystrzaków, the Dummies Man logo, Dummies.com, Making Everything Easier and related trade dress are trademarks or registered trademarks of John Wiley and Sons, Inc. and/or its affiliates in the United States and/or other countries. Used under license. Python is a registered trademark of Python Software Foundation Corporation. All other trademarks are the property of their respective owners. Wiley, the Wiley Publishing logo, For Dummies, Dla Bystrzaków, the Dummies Man logo, Dummies.com, Making Everything Easier i związana z tym szata graficzna są markami handlowymi John Wiley and Sons, Inc. i/lub firm stowarzyszonych w Stanach Zjednoczonych i/lub innych krajach. Wykorzystywane na podstawie licencji. Python jest zastrzeżonym znakiem towarowym firmy Python Software Foundation Corporation. Wszystkie pozostałe znaki handlowe są własnością ich właścicieli. Autor oraz HELION SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz HELION SA nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://dlabystrzakow.pl/user/opinie/prpyb2 Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/prpyb2.zip Wydawnictwo HELION ul. Kościuszki 1c, 44-100 Gliwice tel. 32 231 22 19, 32 230 98 63 e-mail: dlabystrzakow@dlabystrzakow.pl WWW: http://dlabystrzakow.pl Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:285)ci O autorze .........................................................................................15 Podzi(cid:219)kowania od autora ..............................................................17 Wprowadzenie ................................................................................19 CZ(cid:218)(cid:284)(cid:200) I: ROZPOCZ(cid:218)CIE PRACY Z PYTHONEM ...........................25 ROZDZIA(cid:259) 1: Komunikowanie si(cid:219) z komputerem ...............................27 Powody, dla których chcia(cid:260)by(cid:285) komunikowa(cid:201) si(cid:219) z komputerem ......................28 Aplikacja to forma komunikacji ..............................................................................29 Zastanów si(cid:219) nad procedurami u(cid:318)ywanymi codziennie ................................29 Zapisywanie procedury ......................................................................................30 Traktowanie aplikacji jak ka(cid:318)dej innej procedury .................................................31 Komputer traktuje zadania dos(cid:260)ownie .............................................................31 Definiowanie aplikacji ..............................................................................................32 Komputer u(cid:318)ywa j(cid:219)zyka specjalnego ...............................................................32 Pomoc cz(cid:260)owiekowi w rozmowie z komputerem ...........................................33 Dlaczego Python jest tak (cid:285)wietny? .........................................................................34 Powody, dla których warto wybra(cid:201) Pythona ...................................................35 Jak mo(cid:318)esz skorzysta(cid:201) na stosowaniu Pythona? ............................................36 Organizacje stosuj(cid:199)ce Pythona .........................................................................37 Wyszukiwanie u(cid:318)ytecznych aplikacji Pythona .................................................37 Porównanie Pythona z innymi j(cid:219)zykami programowania .............................39 Spis tre(cid:285)ci 5 Poleć książkęKup książkę ROZDZIA(cid:259) 2: Instalowanie Pythona .....................................................41 Pobieranie niezb(cid:219)dnej wersji Pythona ..................................................................41 Instalowanie Pythona ..............................................................................................44 Praca z systemem Windows ..............................................................................45 Praca z systemem macOS .................................................................................47 Praca z systemem Linux ....................................................................................49 Uzyskanie dost(cid:219)pu do Pythona w systemie ..........................................................52 U(cid:318)ywanie systemu Windows .............................................................................52 U(cid:318)ywanie systemu macOS ................................................................................55 U(cid:318)ywanie systemu Linux ...................................................................................56 Sprawdzanie poprawno(cid:285)ci instalacji ......................................................................56 ROZDZIA(cid:259) 3: Praca z Pythonem ............................................................59 Praca w pow(cid:260)oce .......................................................................................................60 Uruchamianie Pythona ......................................................................................60 Wykorzystanie zalet pow(cid:260)oki .............................................................................61 Wykorzystanie zmiennych (cid:285)rodowiskowych Pythona ....................................63 Wydawanie polecenia ..............................................................................................65 Wydawanie polece(cid:262) komputerowi ...................................................................65 Zako(cid:262)czenie wydawania polecenia ..................................................................66 Wy(cid:285)wietlenie wyniku ..........................................................................................66 Korzystanie z pomocy ..............................................................................................67 Tryb pomocy .......................................................................................................68 Pro(cid:285)ba o pomoc ..................................................................................................69 Wyj(cid:285)cie z trybu pomocy .....................................................................................72 Pomoc bezpo(cid:285)rednia .........................................................................................72 Zako(cid:262)czenie pracy z pow(cid:260)ok(cid:199) Pythona ..................................................................74 ROZDZIA(cid:259) 4: Tworzenie pierwszej aplikacji ........................................77 Dlaczego (cid:285)rodowisko IDE ma du(cid:318)e znaczenie? .....................................................78 Tworzenie kodu lepszej jako(cid:285)ci .........................................................................78 Debugowanie ......................................................................................................79 Dlaczego notatnik jest u(cid:318)yteczny? ....................................................................79 Pobieranie dystrybucji Anaconda ...........................................................................80 Pobieranie oprogramowania ............................................................................80 Instalowanie dystrybucji Anaconda w systemie Linux ...................................81 Instalowanie dystrybucji Anaconda w systemie macOS ................................82 Instalowanie dystrybucji Anaconda w systemie Windows ............................83 6 Programowanie w Pythonie dla bystrzaków Poleć książkęKup książkę Pobieranie zbiorów danych i przyk(cid:260)adowych fragmentów kodu .......................87 U(cid:318)ywanie Jupyter Notebook ..............................................................................87 Definiowanie repozytorium kodu (cid:316)ród(cid:260)owego ...............................................88 Utworzenie aplikacji .................................................................................................93 Poznajemy komórki ............................................................................................93 Dodawanie komórek dokumentuj(cid:199)cych ..........................................................95 Inna tre(cid:285)(cid:201) w komórce .........................................................................................97 Znaczenie wci(cid:219)(cid:201) w kodzie ........................................................................................97 Dodawanie komentarzy ..........................................................................................99 Poznajemy komentarze .....................................................................................99 U(cid:318)ywanie komentarzy jako notatek dla siebie ..............................................101 U(cid:318)ywanie komentarzy do uniemo(cid:318)liwienia uruchomienia kodu ................101 Zako(cid:262)czenie pracy z Jupyter Notebook ...............................................................102 ROZDZIA(cid:259) 5: Praca z dystrybucj(cid:199) Anaconda .....................................105 Pobieranie kodu (cid:316)ród(cid:260)owego ................................................................................106 Praca z punktami kontrolnymi .............................................................................107 Definiowanie u(cid:318)ycia punktów kontrolnych ...................................................108 Zapisywanie punktu kontrolnego ...................................................................109 Przywracanie punktu kontrolnego .................................................................109 Operowanie komórkami notatnika ......................................................................109 Dodawanie komórek ró(cid:318)nych typów .............................................................109 Dzielenie i (cid:260)(cid:199)czenie komórek ...........................................................................110 Przenoszenie komórki .....................................................................................110 Uruchamianie komórki ....................................................................................111 W(cid:260)(cid:199)czanie i wy(cid:260)(cid:199)czanie danych wyj(cid:285)ciowych .................................................112 Zmiana wygl(cid:199)du Jupyter Notebook ......................................................................113 Wyszukiwanie polece(cid:262) za pomoc(cid:199) paska polece(cid:262) .......................................114 Praca z numerami wierszy ...............................................................................115 U(cid:318)ywanie funkcji Cell Toolbar .........................................................................115 Praca z j(cid:199)drem ........................................................................................................117 Uzyskiwanie pomocy .............................................................................................118 U(cid:318)ywanie funkcji magicznych ...............................................................................120 Wy(cid:285)wietlanie uruchomionego procesu ...............................................................121 Spis tre(cid:285)ci 7 Poleć książkęKup książkę CZ(cid:218)(cid:284)(cid:200) II: KOMUNIKACJA ..........................................................125 ROZDZIA(cid:259) 6: Przechowywanie i modyfikowanie informacji ...........127 Przechowywanie informacji ..................................................................................128 Zmienna jako pojemnik ...................................................................................128 U(cid:318)ywanie odpowiedniego pojemnika do przechowywania danych ...........128 Definiowanie podstawowych typów danych w Pythonie ..................................129 Umieszczanie informacji w zmiennej .............................................................129 Typy liczbowe ....................................................................................................130 Warto(cid:285)(cid:201) boolowska ..........................................................................................134 Ci(cid:199)g tekstowy ....................................................................................................135 Data i godzina .........................................................................................................136 ROZDZIA(cid:259) 7: Zarz(cid:199)dzanie informacj(cid:199) ................................................139 Okre(cid:285)lanie sposobu postrzegania danych przez Pythona ................................140 Porównywanie ..................................................................................................140 Jak komputer przeprowadza porównania? ...................................................141 Praca z operatorami ..............................................................................................141 Definiowanie operatorów ................................................................................142 Kolejno(cid:285)(cid:201) operatorów ......................................................................................149 Tworzenie i u(cid:318)ywanie funkcji ................................................................................150 Funkcja jako pakiet kodu .................................................................................150 Wielokrotne u(cid:318)ywanie kodu ............................................................................150 Definiowanie funkcji .........................................................................................151 Uzyskiwanie dost(cid:219)pu do funkcji .....................................................................153 Przekazywanie informacji do funkcji ..............................................................153 Zwrot informacji przez funkcj(cid:219) .......................................................................157 Porównywanie danych wyj(cid:285)ciowych funkcji ..................................................158 Pobieranie danych wej(cid:285)ciowych od u(cid:318)ytkownika ..............................................159 ROZDZIA(cid:259) 8: Podejmowanie decyzji ...................................................161 Podejmowanie prostych decyzji za pomoc(cid:199) konstrukcji if ................................162 Konstrukcja if ....................................................................................................162 U(cid:318)ywanie konstrukcji if w aplikacji .................................................................163 Wybór alternatywy za pomoc(cid:199) konstrukcji if...else ............................................167 Konstrukcja if...else ..........................................................................................168 U(cid:318)ywanie konstrukcji if...else w aplikacji .......................................................168 U(cid:318)ywanie konstrukcji if...elif w aplikacji .........................................................169 U(cid:318)ywanie zagnie(cid:318)d(cid:318)onych konstrukcji warunkowych .......................................172 U(cid:318)ywanie wielu konstrukcji if lub if…else ......................................................172 (cid:259)(cid:199)czenie ró(cid:318)nych typów konstrukcji warunkowych .....................................174 8 Programowanie w Pythonie dla bystrzaków Poleć książkęKup książkę ROZDZIA(cid:259) 9: Wykonywanie powtarzaj(cid:199)cych si(cid:219) czynno(cid:285)ci .............177 Przetwarzanie danych przy u(cid:318)yciu konstrukcji for .............................................178 Polecenie for .....................................................................................................179 Tworzenie prostej p(cid:219)tli for ..............................................................................179 U(cid:318)ywanie polecenia break w kodzie ..............................................................180 U(cid:318)ywanie polecenia continue w kodzie .........................................................182 U(cid:318)ywanie polecenia pass w kodzie ................................................................183 U(cid:318)ywanie polecenia else w kodzie .................................................................184 Przetwarzanie danych przy u(cid:318)yciu konstrukcji while .........................................186 Polecenie while .................................................................................................186 U(cid:318)ywanie polecenia while w aplikacji .............................................................187 P(cid:219)tle zagnie(cid:318)d(cid:318)one ................................................................................................188 ROZDZIA(cid:259) 10: Obs(cid:260)uga b(cid:260)(cid:219)dów .............................................................191 Dlaczego Python Ci(cid:219) nie rozumie? .......................................................................192 (cid:315)ród(cid:260)a b(cid:260)(cid:219)dów .........................................................................................................193 Klasyfikacja b(cid:260)(cid:219)dów ..........................................................................................194 Rozró(cid:318)nianie typów b(cid:260)(cid:219)dów ............................................................................195 Przechwytywanie wyj(cid:199)tków ..................................................................................197 Podstawowa obs(cid:260)uga wyj(cid:199)tków ......................................................................197 Obs(cid:260)uga wyj(cid:199)tków od bardziej ogólnych do bardziej szczegó(cid:260)owych ........208 Zagnie(cid:318)d(cid:318)ona obs(cid:260)uga b(cid:260)(cid:219)dów .......................................................................210 Zg(cid:260)aszanie wyj(cid:199)tków ..............................................................................................214 Zg(cid:260)oszenie wyj(cid:199)tku w sytuacji szczególnej .....................................................214 Przekazywanie informacji o b(cid:260)(cid:219)dzie ...............................................................215 Tworzenie i u(cid:318)ywanie w(cid:260)asnych wyj(cid:199)tków ..........................................................216 U(cid:318)ywanie klauzuli finally .......................................................................................218 CZ(cid:218)(cid:284)(cid:200) III: NAJCZ(cid:218)(cid:284)CIEJ WYKONYWANE ZADANIA .................221 ROZDZIA(cid:259) 11: Interakcje z pakietami ..................................................223 Grupowanie kodu ..................................................................................................224 Typy pakietów ...................................................................................................226 Bufor pakietów .................................................................................................227 Importowanie pakietów ........................................................................................229 Polecenie import ..............................................................................................230 Polecenie from…import ...................................................................................232 Wyszukiwanie pakietów na dysku ........................................................................234 Spis tre(cid:285)ci 9 Poleć książkęKup książkę Pobieranie pakietów z innych (cid:316)róde(cid:260) ...................................................................235 Otwieranie pow(cid:260)oki Anacondy ........................................................................236 Praca z pakietami conda ..................................................................................236 Instalowanie pakietów za pomoc(cid:199) narz(cid:219)dzia pip .........................................241 Wy(cid:285)wietlanie zawarto(cid:285)ci pakietu .........................................................................243 Wy(cid:285)wietlanie dokumentacji pakietu ....................................................................246 Uruchamianie Pydoc ........................................................................................246 U(cid:318)ywanie (cid:260)(cid:199)czy szybkiego dost(cid:219)pu ................................................................248 Wpisywanie szukanego wyra(cid:318)enia .................................................................249 Wy(cid:285)wietlanie wyników .....................................................................................250 ROZDZIA(cid:259) 12: Praca z ci(cid:199)gami tekstowymi .........................................253 Warto pami(cid:219)ta(cid:201), (cid:318)e ci(cid:199)gi tekstowe s(cid:199) ró(cid:318)ne .......................................................254 Definiowanie znaku przy u(cid:318)yciu liczb .............................................................254 U(cid:318)ywanie znaków do tworzenia ci(cid:199)gów tekstowych ....................................255 Tworzenie ci(cid:199)gów tekstowych wraz ze znakami specjalnymi ...........................257 Wybór poszczególnych znaków ............................................................................259 Wycinanie ................................................................................................................261 Odszukiwanie warto(cid:285)ci w ci(cid:199)gu tekstowym ........................................................265 Formatowanie ci(cid:199)gu tekstowego .........................................................................267 ROZDZIA(cid:259) 13: Zarz(cid:199)dzanie list(cid:199) ............................................................271 Organizowanie informacji w aplikacji ..................................................................272 Porz(cid:199)dkowanie danych przy u(cid:318)yciu listy .......................................................272 W jaki sposób Python wy(cid:285)wietla list(cid:219)? ...........................................................273 Tworzenie listy ........................................................................................................274 Dost(cid:219)p do listy ........................................................................................................276 Iteracja przez list(cid:219) ..................................................................................................277 Modyfikowanie listy ...............................................................................................278 Przeszukiwanie listy ...............................................................................................281 Sortowanie listy ......................................................................................................283 Wy(cid:285)wietlanie listy ...................................................................................................284 Praca z obiektem Counter .....................................................................................286 ROZDZIA(cid:259) 14: Kolekcje wszystkich typów danych .............................289 Poznajemy kolekcje ................................................................................................290 Praca z krotk(cid:199) .........................................................................................................291 Praca ze s(cid:260)ownikiem ...............................................................................................294 Tworzenie i u(cid:318)ywanie s(cid:260)ownika .......................................................................295 Zast(cid:219)powanie konstrukcji switch s(cid:260)ownikiem ...............................................298 10 Programowanie w Pythonie dla bystrzaków Poleć książkęKup książkę Tworzenie stosu przy u(cid:318)yciu listy .........................................................................301 Praca z kolejk(cid:199) ........................................................................................................303 Praca z kolejk(cid:199) dwukierunkow(cid:199) ...........................................................................306 ROZDZIA(cid:259) 15: Tworzenie i u(cid:318)ywanie klasy ..........................................309 Klasa jako metoda pakowania ..............................................................................310 Cz(cid:219)(cid:285)ci klasy .............................................................................................................312 Tworzenie definicji klasy ..................................................................................312 Wbudowane atrybuty klasy .............................................................................313 Praca z metodami .............................................................................................314 Praca z konstruktorami ....................................................................................316 Praca ze zmiennymi .........................................................................................318 Przeci(cid:199)(cid:318)anie operatorów .................................................................................322 Tworzenie klasy ......................................................................................................324 Definiowanie klasy MyClass ............................................................................324 Zapisywanie klasy na dysku ............................................................................325 U(cid:318)ywanie klasy w aplikacji .....................................................................................326 Tworzenie nowej klasy poprzez rozszerzenie ju(cid:318) istniej(cid:199)cej .............................327 Tworzenie klasy potomnej ..............................................................................327 Testowanie klasy w aplikacji ............................................................................329 CZ(cid:218)(cid:284)(cid:200) IV: WYKONYWANIE ZADA(cid:261) ZAAWANSOWANYCH .....331 ROZDZIA(cid:259) 16: Przechowywanie danych w pliku .................................333 W jaki sposób dzia(cid:260)a trwa(cid:260)y magazyn danych? ...................................................334 Tworzenie tre(cid:285)ci dla trwa(cid:260)ego magazynu danych ..............................................336 Tworzenie pliku ......................................................................................................339 Odczytywanie zawarto(cid:285)ci pliku .............................................................................343 Uaktualnianie zawarto(cid:285)ci pliku .............................................................................345 Usuwanie pliku .......................................................................................................349 ROZDZIA(cid:259) 17: Wysy(cid:260)anie wiadomo(cid:285)ci e-mail ......................................351 Co si(cid:219) dzieje, gdy wysy(cid:260)asz wiadomo(cid:285)(cid:201) e-mail? ..................................................352 Wy(cid:285)wietlanie widomo(cid:285)ci e-mail przypomina odczytywanie listu ...............352 Definiowanie elementów koperty ..................................................................354 Definiowanie elementów listu ........................................................................359 Tworzenie wiadomo(cid:285)ci e-mail ..............................................................................363 Praca z wiadomo(cid:285)ci(cid:199) w formacie zwyk(cid:260)ego tekstu .......................................364 Praca z wiadomo(cid:285)ci(cid:199) w formacie HTML ........................................................365 Wy(cid:285)wietlanie otrzymanej wiadomo(cid:285)ci e-mail .....................................................366 Spis tre(cid:285)ci 11 Poleć książkęKup książkę CZ(cid:218)(cid:284)(cid:200) V: DEKALOGI ..................................................................369 ROZDZIA(cid:259) 18: Dziesi(cid:219)(cid:201) (cid:285)wietnych zasobów programistycznych ......371 Praca z dokumentacj(cid:199) Pythona w internecie ......................................................372 U(cid:318)ywanie narz(cid:219)dzia LearnPython.org .................................................................373 Tworzenie aplikacji internetowych za pomoc(cid:199) Pythona ...................................374 Pobieranie bibliotek dodatkowych ......................................................................374 Szybsze tworzenie aplikacji za pomoc(cid:199) (cid:285)rodowiska IDE ...................................376 Znacznie (cid:260)atwiejsze sprawdzanie sk(cid:260)adni ............................................................377 Wykorzystanie zalet XML-a ....................................................................................377 Poznanie najcz(cid:219)(cid:285)ciej pope(cid:260)nianych b(cid:260)(cid:219)dów w Pythonie przez pocz(cid:199)tkuj(cid:199)cych programistów ................................................................379 Poznanie Unicode ..................................................................................................379 Zwi(cid:219)kszenie szybko(cid:285)ci dzia(cid:260)ania aplikacji ............................................................380 ROZDZIA(cid:259) 19: Dziesi(cid:219)(cid:201) sposobów na zarabianie pieni(cid:219)dzy za pomoc(cid:199) Pythona .......................................................383 Praca w dziale zapewnienia jako(cid:285)ci .....................................................................384 Pracownik dzia(cid:260)u IT w mniejszej organizacji .......................................................385 Tworzenie skryptów Pythona dla aplikacji ..........................................................386 Administrowanie sieci(cid:199) ..........................................................................................387 Nauka programowania ..........................................................................................387 Pomaganie ludziom w lokalizacji ..........................................................................388 Eksploracja danych ................................................................................................388 Praca z systemami osadzonymi ...........................................................................389 Wykonywanie zada(cid:262) naukowych .........................................................................389 Analiza danych w czasie rzeczywistym ................................................................390 ROZDZIA(cid:259) 20: Dziesi(cid:219)(cid:201) narz(cid:219)dzi usprawniaj(cid:199)cych prac(cid:219) z Pythonem .....................................................................391 (cid:284)ledzenie b(cid:260)(cid:219)dów za pomoc(cid:199) Roundup Issue Tracker ......................................392 Utworzenie (cid:285)rodowiska wirtualnego za pomoc(cid:199) VirtualEnv .............................393 Instalowanie aplikacji za pomoc(cid:199) PyInstaller ......................................................395 Przygotowanie dokumentacji programistycznej za pomoc(cid:199) pdoc ...................396 Opracowanie kodu aplikacji za pomoc(cid:199) Komodo Edit ......................................396 Debugowanie aplikacji za pomoc(cid:199) pydbgr .........................................................398 (cid:284)rodowisko interaktywne dzi(cid:219)ki u(cid:318)yciu IPythona ..............................................399 Testowanie aplikacji Pythona za pomoc(cid:199) PyUnit ...............................................399 Uporz(cid:199)dkowanie kodu za pomoc(cid:199) Isort ..............................................................400 Kontrola wersji z u(cid:318)yciem Mercuriala ..................................................................400 12 Programowanie w Pythonie dla bystrzaków Poleć książkęKup książkę ROZDZIA(cid:259) 21: Dziesi(cid:219)(cid:201) bibliotek, które powiniene(cid:285) zna(cid:201) ..................403 Przygotowanie bezpiecznego (cid:285)rodowiska za pomoc(cid:199) PyCrypto ......................404 Praca z baz(cid:199) danych za pomoc(cid:199) SQLAlchemy ....................................................404 Ogl(cid:199)danie (cid:285)wiata za pomoc(cid:199) Map Google ..........................................................405 Dodawanie graficznego interfejsu u(cid:318)ytkownika za pomoc(cid:199) TkIntera .............406 Dostarczanie eleganckiej prezentacji danych tabelarycznych za pomoc(cid:199) PrettyTable .......................................................................................406 Usprawnienie d(cid:316)wi(cid:219)ku w aplikacji za pomoc(cid:199) PyAudio ....................................406 Przeprowadzanie operacji na grafice za pomoc(cid:199) PyQtGraph ..........................408 Wyszukiwanie informacji za pomoc(cid:199) IRLib .........................................................409 Tworzenie za pomoc(cid:199) JPype (cid:285)rodowiska wspó(cid:260)dzia(cid:260)aj(cid:199)cego z Jav(cid:199) .................409 Uzyskanie za pomoc(cid:199) Twisted Matrix dost(cid:219)pu do zasobów sieci lokalnej .....410 U(cid:318)ywanie dost(cid:219)pu do zasobów internetu za pomoc(cid:199) bibliotek .......................411 (cid:3)(cid:3) Skorowidz .......................................................................413 Spis tre(cid:285)ci 13 Poleć książkęKup książkę 14 Programowanie w Pythonie dla bystrzaków Poleć książkęKup książkę W TYM ROZDZIALE: (cid:27) komunikowanie si(cid:219) z komputerem, (cid:27) tworzenie programów pozwalaj(cid:199)cych na komunikacj(cid:219) z komputerem, (cid:27) poznanie programów i sposobów ich tworzenia, (cid:27) poznanie powodów, dla których warto u(cid:318)ywa(cid:201) Pythona. Rozdzia(cid:260) (cid:1090) Komunikowanie si(cid:219) z komputerem K onwersacja z komputerem mo(cid:363)e brzmie(cid:289) jak scenariusz filmu science fiction. W ko(cid:321)cu za(cid:251)oga statku Enterprise w filmie Star Trek regularnie rozmawia(cid:251)a z komputerami. Tak naprawd(cid:243) komputer cz(cid:243)sto odzywa si(cid:243) do u(cid:363)ytkow- nika. Jednak wraz z powstaniem technologii Siri opracowanej przez Apple’a (https://www.apple.com/siri/), Echo opracowanej przez Amazona (https://www. amazon.com/dp/B00X4WHP5E/) i innego oprogramowania interaktywnego wspo- mniana wcze(cid:337)niej konwersacja z komputerem wcale nie jest taka niemo(cid:363)liwa. Proszenie komputera o podanie pewnych informacji to jedno, a dostarczanie po- lece(cid:321) to zupe(cid:251)nie co(cid:337) innego. W rozdziale tym dowiesz si(cid:243), dlaczego mia(cid:251)by(cid:337) chcie(cid:289) wydawa(cid:289) polecenia komputerowi i jakie korzy(cid:337)ci mo(cid:363)esz z tego odnie(cid:337)(cid:289). Odkry- jesz równie(cid:363) potrzeb(cid:243) istnienia specjalnego j(cid:243)zyka do prowadzenia takiej komu- nikacji i powód, dla którego b(cid:243)dziesz u(cid:363)ywa(cid:289) Pythona. Jednak g(cid:251)ównym celem tego rozdzia(cid:251)u jest pokazanie, (cid:363)e programowanie to po prostu rodzaj komunikacji, podobny do innych form komunikacji z komputerem. ROZDZIA(cid:259) 1 Komunikowanie si(cid:219) z komputerem 27 Poleć książkęKup książkę Powody, dla których chcia(cid:260)by(cid:285) komunikowa(cid:201) si(cid:219) z komputerem Rozmowa z maszyn(cid:241) mo(cid:363)e na pocz(cid:241)tku wydawa(cid:289) si(cid:243) dziwactwem, ale jest ko- nieczno(cid:337)ci(cid:241), poniewa(cid:363) komputer nie potrafi (jeszcze) czyta(cid:289) w my(cid:337)lach u(cid:363)yt- kownika. Nawet je(cid:337)li komputer potrafi(cid:251)by czyta(cid:289) w my(cid:337)lach, to wci(cid:241)(cid:363) by(cid:251)aby pewna forma komunikacji z u(cid:363)ytkownikiem. Nic nie mo(cid:363)e si(cid:243) zdarzy(cid:289) bez wy- miany informacji mi(cid:243)dzy maszyn(cid:241) i jej u(cid:363)ytkownikiem. Operacje takie jak: (cid:27) odczyt wiadomo(cid:285)ci e-mail, (cid:27) napisanie tekstu o wakacjach, (cid:27) znalezienie najlepszego prezentu na (cid:285)wiecie itd. s(cid:241) przyk(cid:251)adami komunikacji odbywaj(cid:241)cej si(cid:243) mi(cid:243)dzy komputerem i u(cid:363)ytkowni- kiem. Komputer komunikuj(cid:241)cy si(cid:243) pó(cid:361)niej z innymi maszynami lub u(cid:363)ytkowni- kami, aby wykona(cid:289) stawiane przed nim zadania, po prostu rozszerza podstawow(cid:241) ide(cid:243) potrzeby komunikacji do osi(cid:241)gni(cid:243)cia (cid:363)(cid:241)danego wyniku. W wi(cid:243)kszo(cid:337)ci sytuacji komunikacja zachodzi w sposób praktycznie niewidzialny, o ile tak naprawd(cid:243) nie zaczniesz si(cid:243) nad ni(cid:241) zastanawia(cid:289). Przyk(cid:251)adowo, uczest- nicz(cid:241)c w czacie internetowym, mo(cid:363)esz mie(cid:289) wra(cid:363)enie, (cid:363)e rozmawiasz z innym cz(cid:251)owiekiem. Jednak tak naprawd(cid:243) prowadzisz komunikacj(cid:243) z komputerem, który z kolei poprzez czat (niezale(cid:363)nie od tego, z czego si(cid:243) ten czat sk(cid:251)ada) komunikuje si(cid:243) z innym komputerem, a ten z kolei komunikuje si(cid:243) z jego u(cid:363)ytkownikiem. Na rysunku 1.1 pokaza(cid:251)em przyk(cid:251)ad takiej sytuacji. RYSUNEK 1.1. Komunikacja z komputerem mo(cid:318)e by(cid:201) niewidoczna, dopóki nie zaczniesz si(cid:219) nad tym g(cid:260)(cid:219)biej zastanawia(cid:201) Zwró(cid:289) uwag(cid:243) na chmur(cid:243) znajduj(cid:241)c(cid:241) si(cid:243) w (cid:337)rodku na rysunku 1.1. Ta chmura mo(cid:363)e zawiera(cid:289) cokolwiek, ale Ty wiesz, (cid:363)e zawiera przynajmniej inne kompute- ry, w których zosta(cid:251)y uruchomione pewne aplikacje. Te komputery pozwalaj(cid:241) Tobie i Twoim przyjacio(cid:251)om komunikowa(cid:289) si(cid:243) poprzez czat. Teraz zastanów si(cid:243) nad tym, jak (cid:251)atwy wydaje si(cid:243) ca(cid:251)y ten proces, gdy korzystasz z aplikacji czatu. Nawet pomimo wykonywania wielu zada(cid:321) w tle wydaje si(cid:243), (cid:363)e po prostu rozma- wiasz z przyjacielem, a proces sam w sobie pozostaje niewidoczny. 28 CZ(cid:218)(cid:284)(cid:200) I Rozpocz(cid:219)cie pracy z Pythonem Poleć książkęKup książkę Aplikacja to forma komunikacji Komunikacja z komputerem odbywa si(cid:243) za pomoc(cid:241) aplikacji. Jednej aplikacji u(cid:363)ywasz do odpowiadania na wiadomo(cid:337)ci e-mail, kolejnej do zakupu produktów, a jeszcze innej do tworzenia prezentacji. Aplikacja (czasami okre(cid:337)lana mianem apki) pozwala cz(cid:251)owiekowi wyra(cid:363)a(cid:289) idee w sposób zrozumia(cid:251)y dla komputera i defi- niuje narz(cid:243)dzia niezb(cid:243)dne do kszta(cid:251)towania danych, które s(cid:241) u(cid:363)ywane do komu- nikowania si(cid:243) w okre(cid:337)lony sposób. Dane potrzebne do przedstawienia tre(cid:337)ci w prezentacji s(cid:241) inne ni(cid:363) te u(cid:363)ywane do zakupu prezentu dla matki. Sposób wy(cid:337)wietlania, u(cid:363)ywania i interpretowania danych jest inny w poszczególnych zadaniach. Dlatego te(cid:363) konieczne jest stosowanie odmiennych aplikacji do inte- rakcji z danymi w sposób, który b(cid:243)dzie zrozumia(cid:251)y zarówno dla Ciebie, jak i kom- putera. Do dyspozycji masz aplikacje pozwalaj(cid:241)ce na wykonanie niemal ka(cid:363)dego ogól- nego zadania, jakie obecnie mo(cid:363)esz sobie wyobrazi(cid:289). W istocie prawdopodobnie masz równie(cid:363) dost(cid:243)p do aplikacji, dla których nie znajdujesz nawet zastosowa- nia. Programi(cid:337)ci od lat nieustannie tworz(cid:241) miliony aplikacji ró(cid:363)nego typu, wi(cid:243)c wcale nie(cid:251)atwe b(cid:243)dzie zrozumienie tego, co mo(cid:363)na zrobi(cid:289) przez utworzenie no- wej metody komunikacji z komputerem za pomoc(cid:241) aplikacji. Odpowied(cid:361) sprowadza si(cid:243) do zastanowienia si(cid:243) nad danymi i sposobami, w jakie chcesz ich u(cid:363)ywa(cid:289). Cz(cid:243)(cid:337)(cid:289) danych po prostu nie jest wystarczaj(cid:241)co atrakcyjna, aby przyci(cid:241)gn(cid:241)(cid:289) uwag(cid:243) programistów. Ewentualnie mo(cid:363)esz potrzebowa(cid:289) danych w formacie, który nie jest jeszcze obs(cid:251)ugiwany przez (cid:363)adn(cid:241) aplikacj(cid:243). Dlatego te(cid:363) nie masz sposobu, by poinformowa(cid:289) komputer o takich danych, o ile nie utworzysz w(cid:251)asnej aplikacji przeznaczonej do ich obs(cid:251)ugi. W kolejnych punktach przedstawi(cid:243) aplikacje z perspektywy pracy z unikatowymi danymi w sposób, który pod wieloma wzgl(cid:243)dami mo(cid:363)na uzna(cid:289) za specjalny. Przyk(cid:251)adowo, mo(cid:363)esz mie(cid:289) dost(cid:243)p do bazy danych klipów wideo i jednocze(cid:337)nie nie mie(cid:289) (cid:363)adnych metod dost(cid:243)pu w sposób, który z Twojego punktu widzenia mia(cid:251)by sens. Dane s(cid:241) unikatowe i chcesz mie(cid:289) do nich dost(cid:243)p w specjalny sposób. To mo(cid:363)e oznacza(cid:289) konieczno(cid:337)(cid:289) utworzenia aplikacji uwzgl(cid:243)dniaj(cid:241)cej Twoje po- trzeby i charakterystyk(cid:243) danych. Zastanów si(cid:219) nad procedurami u(cid:318)ywanymi codziennie Procedura to po prostu zestaw kroków wykonywanych, aby zrealizowa(cid:289) pewne zadanie. Przyk(cid:251)adowo, je(cid:337)li chcesz przygotowa(cid:289) tosty, procedura mo(cid:363)e przedsta- wia(cid:289) si(cid:243) nast(cid:243)puj(cid:241)co: 1. Wyci(cid:199)gni(cid:219)cie pieczywa i mas(cid:260)a z lodówki. 2. Otwarcie pieczywa i wyci(cid:199)gni(cid:219)cie dwóch kromek. 3. Zdj(cid:219)cie pokrywy z tostera. ROZDZIA(cid:259) 1 Komunikowanie si(cid:219) z komputerem 29 Poleć książkęKup książkę 4. Umieszczenie kromek w otworach tostera. 5. Przesuni(cid:219)cie d(cid:316)wigni tostera w dó(cid:260) i rozpocz(cid:219)cie ogrzewania pieczywa. 6. Poczekanie na zako(cid:262)czenie ogrzewania pieczywa. 7. Wyci(cid:199)gni(cid:219)cie kromek z tostera. 8. Umieszczenie kromek na talerzu. 9. Posmarowanie kromek mas(cid:260)em. Wprawdzie procedura stosowana przez Ciebie mo(cid:363)e by(cid:289) inna od przedstawionej tutaj, ale jest ma(cid:251)o prawdopodobne, (cid:363)e smarujesz kromki mas(cid:251)em przed ich w(cid:251)o(cid:363)eniem do tostera. Oczywi(cid:337)cie b(cid:243)dziesz musia(cid:251) wyci(cid:241)gn(cid:241)(cid:289) pieczywo z opako- wania przed w(cid:251)o(cid:363)eniem kromek do tostera, poniewa(cid:363) w(cid:251)o(cid:363)enie zapakowanego pieczywa do tostera mo(cid:363)e spowodowa(cid:289) niechciany efekt. Wi(cid:243)kszo(cid:337)(cid:289) osób tak naprawd(cid:243) nie zastanawia si(cid:243) nad procedur(cid:241) przygotowania tostów, a mimo tego j(cid:241) stosuje. Komputer nie potrafi wykonywa(cid:289) zadania bez procedury. Komputerowi trzeba poda(cid:289) kroki konieczne do wykonania, kolejno(cid:337)(cid:289) ich wykonywania, a tak(cid:363)e wskaza(cid:289) wszelkie wyj(cid:241)tki, które b(cid:243)d(cid:241) oznacza(cid:251)y niepowodzenie zadania. Wszystkie te in- formacje (a nawet wi(cid:243)cej) s(cid:241) zamieszczone w aplikacji. Ujmuj(cid:241)c rzecz najkrócej, mo(cid:363)na powiedzie(cid:289), (cid:363)e aplikacja to po prostu zapisana procedura, za pomoc(cid:241) której wskazujesz komputerowi, co, kiedy i jak ma zrobi(cid:289). Skoro z procedur korzystasz przez ca(cid:251)e (cid:363)ycie, tak naprawd(cid:243) musisz znale(cid:361)(cid:289) sposób na przekazanie tej wiedzy komputerowi, aby mia(cid:251) jak najwi(cid:243)cej informacji o zadaniu przeznaczonym do wykonania. Zapisywanie procedury Gdy ucz(cid:243)szcza(cid:251)em do szko(cid:251)y podstawowej, nauczyciel poprosi(cid:251) uczniów o napi- sanie wypracowania na temat przygotowania tostów. Gdy oddali(cid:337)my nasze prace, nauczyciel przyniós(cid:251) na lekcj(cid:243) toster i pieczywo, a nast(cid:243)pnie ka(cid:363)de wypracowa- nie zosta(cid:251)o odczytane i wypróbowane w praktyce. Wprawdzie (cid:363)adna z procedur przedstawionych w wypracowaniach nie dzia(cid:251)a(cid:251)a zgodnie z oczekiwaniami, ale za to wszystkie dostarczy(cid:251)y mnóstwa (cid:337)miechu. W moim wypadku zapomnia(cid:251)em o konieczno(cid:337)ci wyci(cid:241)gni(cid:243)cia pieczywa z opakowania, wi(cid:243)c nauczyciel mia(cid:251) trud- no(cid:337)(cid:289) z w(cid:251)o(cid:363)eniem pieczywa do tostera. Ta lekcja na dobre utkwi(cid:251)a mi w pami(cid:243)ci. Zapisywanie procedury mo(cid:363)e by(cid:289) bardzo trudne, poniewa(cid:363) mimo tego, (cid:363)e do- k(cid:251)adnie wiadomo, co ma zosta(cid:289) zrobione, to jednak bardzo cz(cid:243)sto pewne kroki s(cid:241) pomijane. Przyjmuje si(cid:243) za(cid:251)o(cid:363)enie, (cid:363)e druga osoba b(cid:243)dzie doskonale wiedzia(cid:251)a, co nale(cid:363)y zrobi(cid:289). Wiele zdarze(cid:321) w (cid:363)yciu jest zwi(cid:241)zanych z procedurami. Zastanów si(cid:243) nad list(cid:241) rzeczy do sprawdzenia przez pilota przed rozpocz(cid:243)ciem lotu. Bez dobrej proce- dury samolot móg(cid:251)by ulec katastrofie. Przygotowanie doskona(cid:251)ej procedury 30 CZ(cid:218)(cid:284)(cid:200) I Rozpocz(cid:219)cie pracy z Pythonem Poleć książkęKup książkę zdecydowanie wymaga czasu, ale na pewno to zadanie jest mo(cid:363)liwe do wykona- nia. By(cid:289) mo(cid:363)e trzeba b(cid:243)dzie podj(cid:241)(cid:289) wiele prób, zanim procedura zadzia(cid:251)a zgodnie z oczekiwaniami, cho(cid:289) ostatecznie otrzymasz (cid:363)(cid:241)dany efekt. Jednak zapis proce- dury to nie wszystko — powinna zosta(cid:289) przetestowana przez kogo(cid:337), kto nie by(cid:251) zaanga(cid:363)owany w jej przygotowanie. Podczas pracy z komputerem jest on dosko- na(cid:251)ym testerem. Traktowanie aplikacji jak ka(cid:318)dej innej procedury Komputer mo(cid:363)na porówna(cid:289) do mojego nauczyciela ze szko(cid:251)y podstawowej z przy- k(cid:251)adu, który przedstawi(cid:251)em w poprzednim podrozdziale. Gdy tworzysz aplikacj(cid:243), zapisujesz procedur(cid:243) definiuj(cid:241)c(cid:241) seri(cid:243) kroków, które komputer b(cid:243)dzie musia(cid:251) wy- kona(cid:289), aby zrealizowa(cid:289) stawiane przed nim zadanie. Je(cid:363)eli pominiesz cho(cid:289)by jeden krok, efekt nie b(cid:243)dzie zgodny z oczekiwaniami. Komputer nie b(cid:243)dzie wiedzia(cid:251), co mia(cid:251)e(cid:337) na my(cid:337)li lub tego, (cid:363)e chcia(cid:251)e(cid:337), aby pewne zadanie zosta(cid:251)o wykonane au- tomatycznie. Komputer wie jedynie to, (cid:363)e przygotowa(cid:251)e(cid:337) pewn(cid:241) procedur(cid:243), któ- rej musi si(cid:243) (cid:337)ci(cid:337)le trzyma(cid:289). Komputer traktuje zadania dos(cid:260)ownie Cz(cid:251)owiek ostatecznie przyzwyczaja si(cid:243) do przygotowanych procedur. Automa- tycznie nadrabia ewentualne braki w procedurze lub wskazuje czynno(cid:337)ci, które zosta(cid:251)y pomini(cid:243)te. Innymi s(cid:251)owy, cz(cid:251)owiek jest w stanie poradzi(cid:289) sobie z pro- blemami powodowanymi przez procedur(cid:243). Gdy rozpoczynasz tworzenie aplikacji komputerowej, mo(cid:363)esz by(cid:289) sfrustrowany tym, (cid:363)e komputer (cid:337)ci(cid:337)le wykonuje zlecone mu zadania i dos(cid:251)ownie traktuje po- lecenia otrzymywane od u(cid:363)ytkownika. Przyk(cid:251)adowo, je(cid:337)li wska(cid:363)esz komputero- wi, (cid:363)e pewna warto(cid:337)(cid:289) powinna wynosi(cid:289) 5, b(cid:243)dzie on szuka(cid:251) dok(cid:251)adnie warto(cid:337)ci 5. Wprawdzie cz(cid:251)owiek mo(cid:363)e uzna(cid:289) warto(cid:337)(cid:289) 4,9 za wystarczaj(cid:241)co dobr(cid:241), ale kom- puter nie dzia(cid:251)a w taki sposób. Z perspektywy komputera to jest warto(cid:337)(cid:289) 4,9 i nie jest ona równa warto(cid:337)ci 5. Ujmuj(cid:241)c rzecz najkrócej — komputer jest nieelastycz- ny, nie dzia(cid:251)a w sposób intuicyjny i jest pozbawiony wyobra(cid:361)ni. Gdy stworzysz procedur(cid:243) dla komputera, b(cid:243)dzie on za ka(cid:363)dym razem dok(cid:251)adnie wykonywa(cid:251) to, co mu zlecisz — nigdy nie zmodyfikuje procedury ani te(cid:363) nie uzna, (cid:363)e powinien zrobi(cid:289) co(cid:337) inaczej. ROZDZIA(cid:259) 1 Komunikowanie si(cid:219) z komputerem 31 Poleć książkęKup książkę Definiowanie aplikacji Jak wcze(cid:337)niej wspomnia(cid:251)em, aplikacja pozwala cz(cid:251)owiekowi na wyra(cid:363)enie po- mys(cid:251)u w sposób zrozumia(cid:251)y dla komputera. Aby osi(cid:241)gn(cid:241)(cid:289) ten cel, aplikacja opiera si(cid:243) na jednej procedurze lub wi(cid:243)kszej liczbie procedur wskazuj(cid:241)cych komputerowi sposób wykonania zada(cid:321) zwi(cid:241)zanych z przetwarzaniem i wy(cid:337)wie- tlaniem danych. To, co widzisz na ekranie, jest tekstem pochodz(cid:241)cym z proce- sora tekstu, ale wy(cid:337)wietlenie tych informacji wymaga procedur pozwalaj(cid:241)cych komputerowi na pobranie danych z dysku, u(cid:251)o(cid:363)enie ich w zrozumia(cid:251)ej postaci, a nast(cid:243)pnie przedstawienie u(cid:363)ytkownikowi. W kolejnych punktach znacznie do- k(cid:251)adniej zdefiniuj(cid:243) specyfik(cid:243) aplikacji. Komputer u(cid:318)ywa j(cid:219)zyka specjalnego J(cid:243)zyk, którym pos(cid:251)uguje si(cid:243) cz(cid:251)owiek, jest skomplikowany i trudny do zrozumie- nia. Nawet aplikacje, takie jak Siri i Alexa, maj(cid:241) powa(cid:363)ne trudno(cid:337)ci ze zrozumie- niem, co tak naprawd(cid:243) mówi do nich cz(cid:251)owiek. Na przestrzeni lat komputery zyska(cid:251)y umiej(cid:243)tno(cid:337)(cid:289) pobierania danych wyj(cid:337)ciowych w postaci j(cid:243)zyka, którym pos(cid:251)uguje si(cid:243) cz(cid:251)owiek, a nast(cid:243)pnie uznawania pewnych s(cid:251)ów za polecenia. Jednak mimo wszystko komputer nadal nie jest w stanie na (cid:363)adnym rozs(cid:241)dnym pozio- mie rozumie(cid:289) mowy cz(cid:251)owieka. T(cid:243) trudno(cid:337)(cid:289) mo(cid:363)na przedstawi(cid:289) na przyk(cid:251)adzie pracy prawnika. Gdy czytasz tre(cid:337)(cid:289) dokumentu przygotowanego przez prawnika, mo(cid:363)esz mie(cid:289) wra(cid:363)enie, (cid:363)e to jakie(cid:337) bzdury bez wi(cid:243)kszego znaczenia. Jednak ce- lem takiego zapisu jest przedstawienie idei i koncepcji w sposób uniemo(cid:363)liwiaj(cid:241)cy ich interpretacj(cid:243). Prawnikowi rzadko udaje si(cid:243) osi(cid:241)gn(cid:241)(cid:289) sukces pod tym wzgl(cid:243)dem, poniewa(cid:363) mowa cz(cid:251)owieka nie jest precyzyjna. Bior(cid:241)c pod uwag(cid:243) to, czego si(cid:243) dowiedzia(cid:251)e(cid:337) we wcze(cid:337)niejszej cz(cid:243)(cid:337)ci rozdzia(cid:251)u, mo(cid:363)esz uzna(cid:289), (cid:363)e komputer nigdy nie b(cid:243)dzie bazowa(cid:251) na mowie cz(cid:251)owieka w celu zrozumienia procedur. Komputer zawsze traktuje polecenia dos(cid:251)ownie, wi(cid:243)c u(cid:363)y- wanie j(cid:243)zyka cz(cid:251)owieka do utworzenia aplikacji mog(cid:251)oby zako(cid:321)czy(cid:289) si(cid:243) otrzyma- niem zupe(cid:251)nie nieoczekiwanych wyników. Dlatego te(cid:363) do komunikowania si(cid:243) z komputerami s(cid:241) u(cid:363)ywane j(cid:243)zyki specjalne, nazywane j(cid:180)zykami programowania. Dzi(cid:243)ki tym j(cid:243)zykom specjalnym mo(cid:363)na tworzy(cid:289) procedury, które s(cid:241) precyzyjne i ca(cid:251)kowicie zrozumia(cid:251)e zarówno dla cz(cid:251)owieka, jak i komputera. Tak naprawd(cid:243) komputer nie pos(cid:251)uguje si(cid:243) (cid:363)adnym j(cid:243)zykiem. Wewn(cid:243)trznie u(cid:363)ywa kodu binarnego do zmiany po(cid:251)o(cid:363)enia prze(cid:251)(cid:241)czników i przeprowadzania oblicze(cid:321) matematycznych. Komputer nawet nie rozumie liter i zna tylko cyfry. Specjalna aplikacja zmienia zapisan(cid:241) w j(cid:243)zyku programowania procedur(cid:243) na kod binarny zrozumia(cid:251)y przez komputer. Na potrzeby materia(cid:251)u przedstawionego w ksi(cid:241)(cid:363)ce nie musisz si(cid:243) zajmowa(cid:289) niskiego poziomu specyfikacj(cid:241) i sposobem dzia(cid:251)ania komputera na poziomie binarnym. Jednak za interesuj(cid:241)cy mo(cid:363)na uzna(cid:289) fakt, (cid:363)e komputer przeprowadza operacje na liczbach, a nie korzysta z (cid:363)adnego j(cid:243)zyka. 32 CZ(cid:218)(cid:284)(cid:200) I Rozpocz(cid:219)cie pracy z Pythonem Poleć książkęKup książkę Pomoc cz(cid:260)owiekowi w rozmowie z komputerem Podczas tworzenia aplikacji trzeba koniecznie pami(cid:243)ta(cid:289) o jej przeznaczeniu. Aplikacja ma pomóc cz(cid:251)owiekowi w komunikowaniu si(cid:243) z komputerem w okre- (cid:337)lony sposób. Ka(cid:363)da aplikacja wykorzystuje jakie(cid:337) dane wej(cid:337)ciowe, przechowuje je, przetwarza dane, a nast(cid:243)pnie wy(cid:337)wietla dane wyj(cid:337)ciowe, aby cz(cid:251)owiek u(cid:363)y- waj(cid:241)cy tej aplikacji móg(cid:251) otrzyma(cid:289) (cid:363)(cid:241)dany wynik. Niezale(cid:363)nie od rodzaju aplikacji, np. gra lub arkusz kalkulacyjny, podstawowa idea pozostaje taka sama. Kompu- ter dzia(cid:251)a z danymi, które zosta(cid:251)y mu dostarczone przez cz(cid:251)owieka, aby otrzyma(cid:289) oczekiwany wynik. Tworz(cid:241)c aplikacj(cid:243), zapewniasz cz(cid:251)owiekowi now(cid:241) metod(cid:243) komunikowania si(cid:243) z komputerem. To podej(cid:337)cie pozwala innym osobom wy(cid:337)wietla(cid:289) dane na nowe sposoby. Komunikacja mi(cid:243)dzy cz(cid:251)owiekiem i komputerem powinna by(cid:289) na tyle (cid:251)atwa, aby aplikacja tak naprawd(cid:243) znika(cid:251)a z pola widzenia. Zastanów si(cid:243) nad apli- kacjami, z których korzysta(cid:251)e(cid:337) w przesz(cid:251)o(cid:337)ci. Najlepsza aplikacja to taka, która pozwala skoncentrowa(cid:289) si(cid:243) na u(cid:363)ywanych danych. Przyk(cid:251)adowo, gra zostanie uznana za wci(cid:241)gaj(cid:241)c(cid:241), gdy b(cid:243)dziesz koncentrowa(cid:289) si(cid:243) na planecie, któr(cid:241) masz za zadanie uratowa(cid:289), lub na pilotowanym statku, a nie na aplikacji pozwalaj(cid:241)cej na wykonywanie tych zada(cid:321). Jednym z najlepszych sposobów na to, by zacz(cid:241)(cid:289) zastanawia(cid:289) nad utworzeniem aplikacji, jest podpatrywanie, jak to robi(cid:241) inni. Zapisanie tego, co Ci si(cid:243) podoba, a co nie podoba w innych aplikacjach, to doskona(cid:251)y sposób na odkrycie tego, jak powinny wygl(cid:241)da(cid:289) aplikacje tworzone przez Ciebie. Oto kilka pyta(cid:321), na które powiniene(cid:337) sobie odpowiedzie(cid:289) na pocz(cid:241)tku pracy nad aplikacj(cid:241): (cid:27) Co takiego rozprasza mnie w aplikacji? (cid:27) Które funkcje s(cid:199) (cid:260)atwe w u(cid:318)yciu? (cid:27) Które funkcje s(cid:199) trudne w u(cid:318)yciu? (cid:27) Jak u(cid:260)atwi(cid:201) aplikacji prac(cid:219) z moimi danymi? (cid:27) Jak przygotowa(cid:201) dane, aby praca z nimi sta(cid:260)a si(cid:219) (cid:260)atwiejsza? (cid:27) Co chc(cid:219) osi(cid:199)gn(cid:199)(cid:201) dzi(cid:219)ki mojej aplikacji, czego nie mog(cid:219) zrobi(cid:201) za pomoc(cid:199) istniej(cid:199)cych aplikacji? Podczas tworzenia aplikacji profesjonalny programista zadaje sobie znacznie wi(cid:243)cej pyta(cid:321). Przedstawiony tutaj zestaw jest dobry na pocz(cid:241)tek, poniewa(cid:363) pomaga trak- towa(cid:289) aplikacj(cid:243) jako sposób komunikacji cz(cid:251)owieka z komputerem. Je(cid:363)eli kiedykol- wiek by(cid:251)e(cid:337) sfrustrowany z powodu u(cid:363)ywanej aplikacji, doskonale wiesz, co b(cid:243)d(cid:241) czuli inni, je(cid:337)li nie zadasz sobie odpowiednich pyta(cid:321) podczas powstawania aplikacji. Komunikacja to najwa(cid:363)niejszy element ka(cid:363)dej tworzonej aplikacji. Zastanów si(cid:243) tak(cid:363)e na sposobem, w jaki pracujesz. Rozpocznij tworzenie pro- cedur dla wykonywanych zada(cid:321). Dobrze jest przeanalizowa(cid:289) proces krok po kroku i zapisa(cid:289) wszystko to, co przyjdzie Ci na my(cid:337)l w zwi(cid:241)zku z danym krokiem. Po ROZDZIA(cid:259) 1 Komunikowanie si(cid:219) z komputerem 33 Poleć książkęKup książkę zako(cid:321)czeniu pracy popro(cid:337) kogo(cid:337) innego o wypróbowanie procedury i sprawdze- nie, czy faktycznie dzia(cid:251)a. Mo(cid:363)esz by(cid:289) zaskoczony tym, (cid:363)e nawet gdy w(cid:251)o(cid:363)y si(cid:243) du(cid:363)o wysi(cid:251)ku, (cid:251)atwo jest zapomnie(cid:289) o pewnych krokach. Powstanie z(cid:251)ej aplikacji zwykle ma swoje korzenie w tym, (cid:363)e programista nie wie, do czego ma s(cid:251)u(cid:363)y(cid:289), co w niej jest specjalnego, do kogo jest adresowana, na czym ma polega(cid:289) jej dzia(cid:251)anie itd. Je(cid:363)eli zdecydujesz si(cid:243) utworzy(cid:289) aplikacj(cid:243), upewnij si(cid:243), (cid:363)e dok(cid:251)adnie wiesz, dlaczego to robisz i co chcesz osi(cid:241)gn(cid:241)(cid:289) za jej po- moc(cid:241). Przygotowanie planu naprawd(cid:243) pomaga i powoduje, (cid:363)e programowanie przynosi rado(cid:337)(cid:289). Mo(cid:363)esz pracowa(cid:289) nad now(cid:241) aplikacj(cid:241) i jednocze(cid:337)nie obserwo- wa(cid:289), czy stawiane jej cele zosta(cid:251)y osi(cid:241)gni(cid:243)te. W ten sposób przygotujesz aplikacj(cid:243) gotow(cid:241) do u(cid:363)ycia i pokazania przyjacio(cid:251)om (b(cid:243)d(cid:241) s(cid:241)dzili, (cid:363)e jeste(cid:337) niez(cid:251)y, skoro umiesz utworzy(cid:289) aplikacj(cid:243)). Dlaczego Python jest tak (cid:285)wietny? Obecnie dost(cid:243)pnych jest wiele j(cid:243)zyków programowania. Tak naprawd(cid:243) student mo(cid:363)e po(cid:337)wi(cid:243)ci(cid:289) ca(cid:251)y semestr na poznawanie istniej(cid:241)cych j(cid:243)zyków programowa- nia, a mimo tego nie dowie si(cid:243) o istnieniu wszystkich. (Prze(cid:363)y(cid:251)em to osobi(cid:337)cie podczas studiów). By(cid:289) mo(cid:363)e uwa(cid:363)asz, (cid:363)e programi(cid:337)ci s(cid:241) zadowoleni z dost(cid:243)p- no(cid:337)ci tak wielu j(cid:243)zyków programowania i po prostu wybieraj(cid:241) jeden, za pomoc(cid:241) którego komunikuj(cid:241) si(cid:243) z komputerem. Prawda jest jednak taka, (cid:363)e nieustannie powstaj(cid:241) nowe j(cid:243)zyki programowania. Programi(cid:337)ci tworz(cid:241) nowe j(cid:243)zyki programowania z wa(cid:363)nych powodów. Ka(cid:363)dy z ta- kich j(cid:243)zyków ma co(cid:337) specjalnego do zaoferowania — zwykle to, co wykonuje wy- j(cid:241)tkowo doskonale. Ponadto informatyka nieustannie ewoluuje, wi(cid:243)c j(cid:243)zyki pro- gramowania równie(cid:363) musz(cid:241) to robi(cid:289), aby nad(cid:241)(cid:363)a(cid:289) za nowymi technologiami. Jako (cid:363)e tworzenie aplikacji wi(cid:241)(cid:363)e si(cid:243) z efektywn(cid:241) komunikacj(cid:241), wielu programistów opanowa(cid:251)o ró(cid:363)ne j(cid:243)zyki programowania, co pozwala im wybra(cid:289) j(cid:243)zyk w(cid:251)a(cid:337)ciwy do wykonania danego zadania. Jeden j(cid:243)zyk mo(cid:363)e sprawdza(cid:289) si(cid:243) doskonale pod- czas pobierania informacji z bazy danych, drugi za(cid:337) podczas tworzenia elementów interfejsu u(cid:363)ytkownika. Podobnie jak w wypadku innych j(cid:243)zyków programowania, tak(cid:363)e Python radzi sobie doskonale z pewnymi zadaniami i dlatego powiniene(cid:337) je pozna(cid:289), zanim rozpoczniesz u(cid:363)ywa(cid:289) tego j(cid:243)zyka. B(cid:243)dziesz zaskoczony, jak (cid:337)wietne rozwi(cid:241)zania mo(cid:363)na stworzy(cid:289) z zastosowaniem Pythona. Poznanie mocnych i s(cid:251)abych stron j(cid:243)zyka programowania pomaga w jeszcze lepszym jego wykorzystaniu, a tak(cid:363)e zapobiega frustracji, która mog(cid:251)aby si(cid:243) pojawi(cid:289) na skutek wyboru j(cid:243)zyka niedzia- (cid:251)aj(cid:241)cego najlepiej. W kolejnych sekcjach przedstawi(cid:243) informacje, które pomog(cid:241) Ci przekona(cid:289) si(cid:243) do Pythona. 34 CZ(cid:218)(cid:284)(cid:200) I Rozpocz(cid:219)cie pracy z Pythonem Poleć książkęKup książkę Powody, dla których warto wybra(cid:201) Pythona Wi(cid:243)kszo(cid:337)(cid:289) j(cid:243)zyków programowania powsta(cid:251)a w konkretnych celach, które po- magaj(cid:241) zdefiniowa(cid:289) cechy charakterystyczne danego j(cid:243)zyka i okre(cid:337)li(cid:289) jego mo(cid:363)- liwo(cid:337)ci. Naprawd(cid:243) nie mo(cid:363)na opracowa(cid:289) j(cid:243)zyka programowania przeznaczonego do wszystkiego, poniewa(cid:363) programi(cid:337)ci maj(cid:241) konkretne cele i potrzeby podczas tworzenia aplikacji. Je(cid:363)eli chodzi o Pythona, to podstawowym celem by(cid:251)o utwo- rzenie j(cid:243)zyka programowania pozwalaj(cid:241)cego programistom zachowa(cid:289) maksy- maln(cid:241) efektywno(cid:337)(cid:289) i produktywno(cid:337)(cid:289). Maj(cid:241)c to na uwadze, mo(cid:363)na wymieni(cid:289) kilka powodów, dla których warto wybra(cid:289) Pythona do utworzenia aplikacji. (cid:27) Krótszy czas potrzebny na opracowanie aplikacji. Kod w Pythonie jest zwykle od dwóch do dziesi(cid:219)ciu razy krótszy ni(cid:318) porównywalny z nim kod utworzony w j(cid:219)zykach C/C++ i Java. To oznacza mniejsz(cid:199) ilo(cid:285)(cid:201) czas po(cid:285)wi(cid:219)con(cid:199) na tworzenie aplikacji i wi(cid:219)cej czasu na jej u(cid:318)ywanie. (cid:27) (cid:259)atwo(cid:285)(cid:201) w odczycie. J(cid:219)zyk programowania jest jak ka(cid:318)dy inny j(cid:219)zyk — aby zrozumie(cid:201) jego dzia(cid:260)anie, trzeba mie(cid:201) mo(cid:318)liwo(cid:285)(cid:201) jego odczytania. Kod Pythona jest zwykle znacznie (cid:260)atwiejszy w odczycie ni(cid:318) kod utworzony w innych j(cid:219)zykach. To oznacza mniejsz(cid:199) ilo(cid:285)(cid:201) czasu potrzebn(cid:199) na interpretacj(cid:219) kodu i wi(cid:219)ksz(cid:199) na wprowadzanie w nim zmian. (cid:27) Krótszy czas nauki. Twórcy Pythona chcieli opracowa(cid:201) j(cid:219)zyk charakteryzuj(cid:199)cy si(cid:219) mniejsz(cid:199) liczb(cid:199) dziwnych regu(cid:260), aby by(cid:260) (cid:260)atwiejszy w nauce. W ko(cid:262)cu programi(cid:285)ci chc(cid:199) tworzy(cid:201) aplikacje, a nie poznawa(cid:201) niejasne i trudne j(cid:219)zyki programowania. Wprawdzie Python zalicza si(cid:243) do popularnych j(cid:243)zyków programowania, ale nie zawsze jest najpopularniejszy (zale(cid:363)y to od witryny internetowej u(cid:363)ytej do ich porównania). Obecnie znajduje si(cid:243) na trzeciej pozycji w rankingu przygotowa- nym przez organizacj(cid:243) TIOBE (https://www.tiobe.com/tiobe-index//), monitoruj(cid:241)c(cid:241) m.in. dane statystyczne zwi(cid:241)zane z u(cid:363)ywaniem j(cid:243)zyków programowania. Z kolei wed(cid:251)ug IEEE Spectrum (https://spectrum.ieee.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Programowanie w Pythonie dla bystrzaków. Wydanie II
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: