Python 3 Kompletne wprowadzenie do programowania Wydanie II.pdf

(435 KB) Pobierz
Python 3. Kompletne
wprowadzenie do
programowania. Wydanie II
Autor: Mark Summerfield
T³umaczenie: Robert Górczyñski
ISBN: 978-83-246-2642-7
Tytu³ orygina³u:
Programming in Python 3: A Complete
Introduction to the Python Language (2nd Edition)
Format: 170×230, stron: 640
Poznaj wspania³e mo¿liwoœci jêzyka Python 3 i twórz dowolne programy
Python 3 uznany zosta³ za najlepsz¹ dotychczasow¹ wersjê tego jêzyka, poniewa¿
jego mo¿liwoœci s¹ dziœ znacznie wiêksze ni¿ dawniej. Python 3 jest wygodny, spójny
i ekspresyjny, a tak¿e niezale¿ny od platformy sprzêtowej i – co najwa¿niejsze –
dostarczany z pe³n¹ bibliotek¹ standardow¹. Mo¿na go wykorzystaæ do programowania
proceduralnego, zorientowanego obiektowo oraz (w mniejszym stopniu) do programowania
w stylu funkcjonalnym. Autor ksi¹¿ki, Mark Summerfield, ekspert w dziedzinie programowania,
przedstawia szczegó³owe informacje dotycz¹ce tego jêzyka w bardzo przyjazny sposób,
co sprawia, ¿e czytelnik szybko i sprawnie mo¿e napisaæ dowolny program.
Ksi¹¿ka „Python 3. Kompletne wprowadzenie do programowania. Wydanie II” zosta³a
zaprojektowana tak, aby móg³ z niej korzystaæ zarówno ktoœ o niewielkim doœwiadczeniu
w programowaniu, jak i profesjonaliœci, naukowcy, in¿ynierowie oraz studenci. Dziêki
niej szybko nauczysz siê m.in. wykorzystywaæ zaawansowane rodzaje danych, kolekcje
oraz struktury kontrolne. Poznasz techniki analizy sk³adniowej, obejmuj¹ce u¿ywanie
modu³ów PyParsing i PLY. Dowiesz siê, na czym polega rozk³adanie obci¹¿enia programu
miêdzy wiele procesów i w¹tków, a tak¿e zaczniesz u¿ywaæ techniki Test Driven
Development, aby unikn¹æ pope³niania b³êdów. Znajdziesz tu wszelkie niezbêdne
informacje, dziêki którym bêdziesz móg³ stworzyæ solidne i wydajne programy.
• Tworzenie i uruchamianie programów Pythona
• Polecenia kontroli przep³ywu
• Rodzaje danych
• Funkcje i struktury kontrolne
• Modu³y i pakiety
• Programowanie zorientowane obiektowo
• Obs³uga plików
• Zaawansowane techniki programowania
• Kontrola dostêpu do atrybutów
• Usuwanie b³êdów, testowanie i profilowanie
• Wyra¿enia regularne
Ten podrêcznik jest jak Python 3 – spójny, praktyczny i wygodny
Mark Summerfield jest informatykiem z wieloletnim doœwiadczeniem w dziedzinie
programowania. Jest tak¿e wspó³autorem ksi¹¿ki „C++ GUI Programming with Qt 4”
oraz autorem ksi¹¿ki „Rapid GUI Programming with Python and Qt: The Definitive Guide
to PyQt Programming”. Mark za³o¿y³ firmê Qtrac Ltd., http://www.qtrac.eu, w której
pracuje jako niezale¿ny publicysta, redaktor, trener i konsultant specjalizuj¹cy siê
w C++, Qt, Pythonie i PyQt.
Spis treści
O autorze ...........................................................................13
Wprowadzenie ...................................................................15
Rozdziaä 1. Szybkie wprowadzenie do programowania proceduralnego ......23
Tworzenie i uruchamianie programów Pythona .................................24
„Piökne serce” Pythona .................................................................29
Koncepcja 1. — rodzaje danych ................................................29
Koncepcja 2. — odniesienia do obiektów ..................................31
Koncepcja 3. — kolekcje rodzajów danych .................................33
Koncepcja 4. — operatory logiczne ...........................................36
Koncepcja 5. — polecenia kontroli przepäywu programu ..............40
Koncepcja 6. — operatory arytmetyczne ....................................45
Koncepcja 7. — operacje wej cia-wyj cia ...................................48
Koncepcja 8. — tworzenie i wywoäywanie funkcji ........................51
Przykäady ......................................................................................53
bigdigits.py ..............................................................................53
generate_grid.py ......................................................................56
Podsumowanie .............................................................................58
çwiczenia .....................................................................................61
Rozdziaä 2. Rodzaje danych ..................................................................65
Identyfikatory i säowa kluczowe .......................................................65
Caäkowite rodzaje danych ...............................................................69
Liczby caäkowite .......................................................................69
Warto ci boolowskie ................................................................72
Zmiennoprzecinkowe rodzaje danych ..............................................73
Liczby zmiennoprzecinkowe (Float) ............................................74
Liczby zespolone (Complex) ......................................................77
Liczby Decimal .........................................................................78
8
Python 3. Kompletne wprowadzenie do programowania
Ciñgi tekstowe ..............................................................................80
Porównywanie ciñgów tekstowych ..............................................83
Segmentowanie i poruszanie siö krokami
w ciñgu tekstowym .................................................................84
Operatory i metody dotyczñce ciñgu tekstowego .........................87
Formatowanie ciñgu tekstowego
za pomocñ metody str.format() ...............................................95
Kodowanie znaków ................................................................107
Przykäady ....................................................................................111
quadratic.py ..........................................................................111
csv2html.py ...........................................................................114
Podsumowanie ...........................................................................118
çwiczenia ...................................................................................120
Rozdziaä 3. Kolekcje rodzajów danych ................................................123
Rodzaje sekwencji .......................................................................124
Krotki ....................................................................................124
Nazwane krotki ......................................................................127
Listy .....................................................................................129
Rodzaje danych set .....................................................................137
Set (zbiór) .............................................................................138
Rodzaj danych frozenset .........................................................142
Rodzaje mapowania ....................................................................143
Säowniki ................................................................................143
Säowniki domy lne .................................................................152
Säowniki uporzñdkowane ........................................................153
Iteracja i kopiowanie kolekcji ........................................................155
Iteratory i operacje oraz funkcje iteracji ....................................155
Kopiowanie kolekcji ...............................................................164
Przykäady ....................................................................................166
generate_usernames.py .........................................................166
statistics.py ..........................................................................169
Podsumowanie ...........................................................................173
çwiczenia ...................................................................................175
Rozdziaä 4. Funkcje i struktury kontrolne ...........................................177
Struktury kontrolne ......................................................................177
Konstrukcje rozgaäöziajñce ......................................................178
Pötle .....................................................................................179
Obsäuga wyjñtków ........................................................................181
Przechwytywanie i obsäuga wyjñtków ........................................181
Wäasne wyjñtki .......................................................................186
Spis tre ci
9
Wäasne funkcje ...........................................................................189
Nazwy i dokumentujñce ciñgi tekstowe ....................................193
Rozpakowywanie argumentu i parametru .................................195
Uzyskiwanie dostöpu do zmiennych w zasiögu globalnym ..........197
Funkcja lambda .....................................................................199
Asercje .................................................................................201
Przykäad: make_html_skeleton.py .................................................202
Podsumowanie ...........................................................................208
çwiczenie ...................................................................................209
Rozdziaä 5. Moduäy ............................................................................213
Moduäy i pakiety ..........................................................................214
Pakiety ..................................................................................217
Wäasne moduäy ......................................................................220
Ogólny opis biblioteki standardowej Pythona .................................230
Obsäuga ciñgów tekstowych ....................................................230
Programowanie wiersza polecenia ...........................................232
Matematyka i liczby ................................................................233
Data i godzina .......................................................................234
Algorytmy i kolekcje rodzajów danych .......................................235
Formaty plików, kodowania znaków i przechowywanie danych ....236
Plik, katalog i obsäuga przetwarzania .......................................240
Praca w sieci i programowanie internetowe ..............................242
XML ......................................................................................244
Inne moduäy ..........................................................................246
Podsumowanie ...........................................................................247
çwiczenie ...................................................................................249
Rozdziaä 6. Programowanie zorientowane obiektowo ...........................251
Podej cie zorientowane obiektowo ...............................................252
Koncepcje i terminologia programowania
zorientowanego obiektowo ....................................................253
Wäasne klasy ..............................................................................256
Atrybuty i metody ...................................................................257
Dziedziczenie i polimorfizm .....................................................262
U ywanie wäa ciwo ci w celu kontrolowania
dostöpu do atrybutów ..........................................................264
Tworzenie w peäni zintegrowanych rodzajów danych ...................266
Wäasne klasy kolekcji ..................................................................279
Tworzenie klas agregujñcych kolekcje ......................................279
Tworzenie klas kolekcji za pomocñ agregacji ............................286
Tworzenie klas kolekcji za pomocñ dziedziczenia ......................292
Podsumowanie ...........................................................................299
çwiczenia ...................................................................................301
10
Python 3. Kompletne wprowadzenie do programowania
Rozdziaä 7. Obsäuga plików ................................................................303
Zapis i odczyt danych binarnych ...................................................308
Peklowanie wraz z opcjonalnñ konwersjñ .................................308
Zwykäe dane binarne wraz z opcjonalnñ kompresjñ ....................312
Zapis i przetwarzanie plików tekstowych ........................................321
Zapis tekstu ..........................................................................321
Przetwarzanie tekstu ..............................................................322
Przetwarzanie tekstu za pomocñ wyra eþ regularnych ...............325
Zapis i przetwarzanie plików XML .................................................328
Drzewa elementów .................................................................329
Model DOM (Document Object Model) .....................................332
Röczny zapis XML ..................................................................335
Przetwarzanie XML za pomocñ SAX (Simple API dla XML) ..........336
Swobodny dostöp do plików binarnych ..........................................339
Ogólna klasa BinaryRecordFile ................................................339
Przykäad: klasy moduäu BikeStock ...........................................347
Podsumowanie ...........................................................................351
çwiczenia ...................................................................................352
Rozdziaä 8. Zaawansowane techniki programowania ...........................355
Dalsze techniki programowania proceduralnego .............................356
Rozgaäözianie za pomocñ säowników ........................................356
Funkcje i wyra enia generatora ...............................................358
Dynamiczne wykonywanie kodu
oraz dynamiczne polecenia import .........................................360
Funkcje lokalne i rekurencyjne ................................................368
Dekoratory funkcji i metod ......................................................372
Adnotacje funkcji ...................................................................376
Dalsze techniki programowania zorientowanego obiektowo .............378
Kontrola dostöpu do atrybutów ...............................................379
Funktor .................................................................................382
Mened ery kontekstu .............................................................384
Deskryptory ...........................................................................388
Dekoratory klas .....................................................................392
Abstrakcyjne klasy bazowe .....................................................395
Dziedziczenie wielokrotne .......................................................402
Metaklasy .............................................................................404
Programowanie funkcjonalne ........................................................408
Funkcje czö ciowe aplikacji ....................................................411
Wspóäprogramy ......................................................................412
Przykäad: valid.py .........................................................................421
Podsumowanie ...........................................................................423
çwiczenia ...................................................................................424
Zgłoś jeśli naruszono regulamin