Python. Receptury (ebook)(audiobook)(audiobook)
- Autorzy:
- Alex Martelli, Anna Martelli Ravenscroft, David Ascher
Opis książki
Czytaj fragment
Skarbnica wiedzy dla programistów Pythona
Python został opracowany na początku lat "90 i szybko zyskał uznanie programistów. Elastyczny i uniwersalny, pozwalał na stosowanie zasad programowania obiektowego, strukturalnego i funkcyjnego. Był i nadal jest wykorzystywany nie tylko do tworzenia skryptów, ale również przy dużych projektach, takich jak na przykład serwer aplikacji Zope. Decydując się na korzystanie z Pythona, stajemy się częścią niezwykłej społeczności programistów, chętnie pomagającej każdemu, kto chce doskonalić umiejętność posługiwania się tym językiem.
Książka "Python. Receptury" to zbiór rozwiązań problemów, z jakimi w codziennej pracy borykają się programiści korzystający z tego języka. Materiały do niej przygotowało ponad 300 członków społeczności Pythona odpowiadających na pytania zadawane na forum internetowym. Rozwiązania zostały przetestowane w praktyce, co ułatwia ich zaimplementowanie we własnych projektach.
W książce umówiono m.in.:
- Przetwarzanie tekstów
- Operacje na plikach
- Programowanie obiektowe
- Przeszukiwanie i sortowanie
- Łączenie skryptów z bazami danych
- Testowanie i usuwanie błędów
- Programowanie wielowątkowe
- Realizację zadań administracyjnych
- Obsługę interfejsów użytkownika
- Tworzenie aplikacji sieciowych
- Przetwarzanie dokumentów XML
Każdy programista Pythona, niezależnie od umiejętności,
znajdzie w tej książce coś dla siebie.
Ebooka przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video zobaczysz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolonych urządzeniach i aplikacjach obsługujących format MP4 (pliki spakowane w ZIP)
Recenzje książki: Python. Receptury (1)
-
Dziennik Łódzki pio; 19/07/06
Python nie jest może tak popularnym językiem programowania jak rodzina C, jednak ma swoich zwolenników. Świadczy o tym choćby fakt, że jest rozwijany jako projekt Open Source. Wszystkim, którzy używają go na co dzień, przyda się na pewno książka wydana przez Helion "Python. Receptury", której autorami są: Alex Martelli, Anna Martelli Ravenscroft i David Ascher.
Pozycja ta jest niczym książka kucharska z gotowymi "przepisami" na różnorakie "dania" w Pythonie. Teraz programiści nie muszą wyważać drzwi otwartych przez innych, mogąc korzystać z powszechnie znanej wiedzy. Książkę podzielono na rozdziały z rozwiązaniami w zakresie: przetwarzania tekstu, operacji na plikach, szukania i sortowania, programowania obiektowego, baz danych, testowania i szukania błędów, procesów, wątków i synchronizacji, administracji systemem, interfejsu użytkownika, formatu XML, programowania sieciowego i WWW, oprogramowania rozproszonego, rozszerzeń języka, algorytmów, generatorów czy deskryptorów. Jak widać, na tej bogatej liście każdy znajdzie coś dla siebie.
Szczegóły książki
- Tytuł oryginału:
- Python Cookbook
- Tłumaczenie:
- Wojciech Moch, Marek Pętlicki
- ISBN Książki drukowanej:
- 83-246-0214-3, 8324602143
- Data wydania książki drukowanej:
- 2006-05-15
- Format:
- B5
- Numer z katalogu:
- 3170
- Pobierz przykładowy rozdział PDF
- Zgłoś erratę
- Kategorie:
Programowanie » Python - Programowanie
- Serie wydawnicze: O'Reilly
Spis treści książki
- 1.1. Przetwarzanie tekstu po jednym znaku (37)
- 1.2. Konwersja pomiędzy znakami a kodami numerycznymi (38)
- 1.3. Sprawdzanie, czy obiekt jest podobny do ciągu znaków (39)
- 1.4. Wyrównywanie ciągów znaków (41)
- 1.5. Usuwanie spacji z końców ciągu znaków (42)
- 1.6. Łączenie ciągów znaków (42)
- 1.7. Odwracanie kolejności słów lub znaków w ciągu znaków (45)
- 1.8. Sprawdzanie, czy ciąg znaków zawiera pewien zestaw znaków (47)
- 1.9. Upraszczanie użycia metody translate (50)
- 1.10. Filtrowanie ciągu znaków na podstawie znaków z określonego zbioru (52)
- 1.11. Sprawdzanie, czy ciąg znaków jest tekstowy czy binarny (55)
- 1.12. Kontrolowanie wielkości znaków (57)
- 1.13. Odczytywanie podciągów (58)
- 1.14. Zmiany wcięć w wielowierszowym ciągu znaków (61)
- 1.15. Rozszerzanie i zawężanie tabulacji (63)
- 1.16. Wstawianie zmiennych do ciągu znaków (65)
- 1.17. Wstawianie zmiennych do ciągu znaków w Pythonie 2.4 (67)
- 1.18. Podmiana wielu wzorców w jednym przebiegu (69)
- 1.19. Sprawdzanie końcówek w ciągu znaków (72)
- 1.20. Obsługa tekstów międzynarodowych za pomocą Unikodu (73)
- 1.21. Konwertowanie pomiędzy Unikodem i prostym tekstem (76)
- 1.22. Wypisywanie znaków Unikodu na standardowe wyjście (78)
- 1.23. Kodowanie danych w formatach XML i HTML (79)
- 1.24. Przygotowanie ciągu znaków nierozróżniającego wielkości liter (82)
- 1.25. Konwertowanie dokumentów HTML na zwykły tekst na terminalu uniksowym (85)
- 2.1. Czytanie z pliku (93)
- 2.2. Zapisywanie do pliku (97)
- 2.3. Wyszukiwanie i podmiany tekstu w pliku (98)
- 2.4. Odczytanie z pliku określonego wiersza (99)
- 2.5. Zliczanie wierszy w pliku (100)
- 2.6. Przetwarzanie wszystkich słów z pliku (103)
- 2.7. Wejście i wyjście o dostępie swobodnym (105)
- 2.8. Aktualizowanie pliku o dostępie swobodnym (106)
- 2.9. Odczytywanie danych z plików .zip (108)
- 2.10. Obsługa plików .zip wewnątrz ciągu znaków (110)
- 2.11. Archiwizowanie drzewa plików w skompresowanym pliku .tar (111)
- 2.12. Wysyłanie danych binarnych na standardowe wyjście w systemach Windows (113)
- 2.13. Stosowanie składni podobnej do składni obiektów iostream z języka C++ (114)
- 2.14. Przewijanie pliku wejściowego do początku (115)
- 2.15. Przystosowywanie obiektów plikopodobnych do obiektów rzeczywistych plików (118)
- 2.16. Przeglądanie drzew katalogów (119)
- 2.17. Zamiana jednego rozszerzenia plików na inne w całym drzewie katalogów (121)
- 2.18. Wyszukiwanie pliku na podstawie ścieżki wyszukiwania (122)
- 2.19. Wyszukiwanie plików na postawie ścieżki wyszukiwania i wzorca (123)
- 2.20. Wyszukiwanie plików zgodnie ze ścieżką wyszukiwania Pythona (124)
- 2.21. Dynamiczne modyfikowanie ścieżki wyszukiwania Pythona (125)
- 2.22. Wyznaczanie ścieżki względnej z jednego katalogu do drugiego (127)
- 2.23. Odczytywanie znaków niebuforowanych w sposób niezależny od platformy (129)
- 2.24. Zliczanie stron dokumentów PDF w systemie Mac OS X (130)
- 2.25. Modyfikowanie atrybutów plików w systemach Windows (131)
- 2.26. Pobieranie tekstu z dokumentów OpenOffice.org (132)
- 2.27. Pobieranie tekstu z dokumentów Microsoft Word (133)
- 2.28. Blokowanie plików za pomocą międzyplatformowego API (134)
- 2.29. Wersjonowanie nazw plików (136)
- 2.30. Wyliczanie sum kontrolnych CRC-64 (138)
- 3.1. Wyliczanie dnia jutrzejszego i wczorajszego (147)
- 3.2. Którego był ostatni piątek? (149)
- 3.3. Wyliczanie przedziału czasu i zakresu dat (151)
- 3.4. Sumowanie czasów trwania piosenek (152)
- 3.5. Wyznaczanie liczby dni roboczych pomiędzy dwoma datami (153)
- 3.6. Automatyczne wyznaczanie dat świąt (155)
- 3.7. Elastyczne odczytywanie dat (158)
- 3.8. Sprawdzanie, czy aktualnie mamy czas letni czy zimowy (159)
- 3.9. Konwersja stref czasowych (160)
- 3.10. Powtarzanie wywołania polecenia (162)
- 3.11. Tworzenie terminarza poleceń (163)
- 3.12. Arytmetyka dziesiętna (165)
- 3.13. Formatowanie liczb dziesiętnych jako waluty (167)
- 3.14. Python jako prosta maszyna sumująca (170)
- 3.15. Sprawdzanie sumy kontrolnej karty kredytowej (173)
- 3.16. Sprawdzanie kursów wymiany walut (174)
- 4.1. Kopiowanie obiektu (179)
- 4.2. Konstruowanie list za pomocą list składanych (182)
- 4.3. Zwracanie elementu listy, o ile istnieje (184)
- 4.4. Przeglądanie w pętli elementów sekwencji i ich indeksów (185)
- 4.5. Tworzenie list bez współdzielenia referencji (186)
- 4.6. Spłaszczanie zagnieżdżonej sekwencji (188)
- 4.7. Usuwanie lub przestawianie kolumn na liście wierszy (191)
- 4.8. Transponowanie tablic dwuwymiarowych (192)
- 4.9. Pobieranie wartości ze słownika (194)
- 4.10. Dodawanie pozycji do słownika (196)
- 4.11. Budowanie słownika bez nadużywania cudzysłowów (197)
- 4.12. Budowanie słownika na podstawie listy kluczy i wartości (199)
- 4.13. Wydobywanie podzbioru elementów słownika (201)
- 4.14. Odwracanie słownika (203)
- 4.15. Wiązanie kilku wartości z kluczami słownika (204)
- 4.16. Stosowanie słowników do wywoływania metod lub funkcji (206)
- 4.17. Wyszukiwanie sum i części wspólnych słowników (208)
- 4.18. Kolekcja elementów nazwanych (210)
- 4.19. Przypisywanie i testowanie za pomocą jednej instrukcji (212)
- 4.20. Stosowanie w Pythonie instrukcji printf (214)
- 4.21. Losowe wybieranie elementów z zadanym prawdopodobieństwem (215)
- 4.22. Obsługiwanie wyjątków wewnątrz wyrażeń (217)
- 4.23. Sprawdzanie, czy nazwa jest zdefiniowana w danym module (219)
- 5.1. Sortowanie słownika (226)
- 5.2. Sortowanie listy ciągów znaków bez uwzględniania wielkości liter (227)
- 5.3. Sortowanie listy obiektów na podstawie ich atrybutów (229)
- 5.4. Sortowanie kluczy lub indeksów na podstawie związanych z nimi wartości (231)
- 5.5. Sortowanie ciągów znaków zawierających liczby (234)
- 5.6. Przetwarzanie wszystkich elementów listy w kolejności losowej (235)
- 5.7. Utrzymywanie porządku w sekwencji w czasie dodawania do niej nowych elementów (237)
- 5.8. Pobieranie kilku najmniejszych elementów sekwencji (239)
- 5.9. Wyszukiwanie elementów w sekwencji posortowanej (241)
- 5.10. Wybieranie n-tego najmniejszego elementu w sekwencji (243)
- 5.11. Algorytm quicksort w trzech wierszach kodu (246)
- 5.12. Wykonywanie częstych testów obecności elementów sekwencji (249)
- 5.13. Wyszukiwanie podsekwencji (251)
- 5.14. Wzbogacanie typu dict o możliwość wprowadzania ocen (253)
- 5.15. Sortowanie nazwisk i rozdzielanie ich za pomocą inicjałów (257)
- 6.1. Konwertowanie między skalami temperatury (266)
- 6.2. Definiowanie stałych (268)
- 6.3. Ograniczanie dodawania atrybutów (270)
- 6.4. Łączenie wyszukiwań danych w słowniku (272)
- 6.5. Automatyczne delegacje jako alternatywa dla dziedziczenia (274)
- 6.6. Delegowanie metod specjalnych w obiektach proxy (277)
- 6.7. Implementowanie krotek z nazywanymi elementami (280)
- 6.8. Unikanie stosowania powtarzalnych metod dostępu do właściwości (282)
- 6.9. Tworzenie szybkiej kopii obiektu (284)
- 6.10. Przechowywanie referencji metod powiązanych bez wstrzymywania mechanizmu oczyszczania pamięci (286)
- 6.11. Implementowanie bufora cyklicznego (289)
- 6.12. Wykrywanie dowolnych zmian stanu egzemplarza (292)
- 6.13. Sprawdzanie, czy obiekt ma wymagane atrybuty (295)
- 6.14. Implementowanie wzorca Projektu Stanu (299)
- 6.15. Implementowanie wzorca projektowego Singleton (301)
- 6.16. Zastępowanie wzorca projektowego Singleton idiomem Borg (302)
- 6.17. Implementowanie wzorca projektowego Obiektu Zerowego (307)
- 6.18. Automatyczne inicjowanie zmiennych egzemplarzy na podstawie argumentów metody __init__ (310)
- 6.19. Wywoływanie metody __init__ w klasie bazowej, jeśli taka metoda istnieje (312)
- 6.20. Spójne i bezpieczne kooperatywne wywołania metod w klasach nadrzędnych (315)
- 7.1. Serializowanie danych za pomocą modułu marshal (320)
- 7.2. Serializowanie danych za pomocą modułów pickle i cPickle (322)
- 7.3. Stosowanie kompresji w połączeniu z serializacją (325)
- 7.4. Wykorzystanie modułu cPickle wobec klas i ich egzemplarzy (326)
- 7.5. Przechowywanie metod powiązanych w sposób pozwalający na ich serializację (329)
- 7.6. Serializacja obiektów kodu (331)
- 7.7. Modyfikowanie obiektów za pomocą modułu shelve (334)
- 7.8. Użytkowanie bazy danych Berkeley DB (336)
- 7.9. Uzyskiwanie dostępu do bazy danych MySQL (339)
- 7.10. Zapisywanie danych typu BLOB w bazie danych MySQL (341)
- 7.11. Zapisywanie danych typu BLOB w bazie danych PostgreSQL (342)
- 7.12. Zapisywanie danych typu BLOB w bazie danych SQLite (344)
- 7.13. Generowanie słownika odwzorowującego nazwy pól na numery kolumn (345)
- 7.14. Wykorzystywanie modułu dtuple w celu uzyskania elastycznego dostępu do wyników zapytania (347)
- 7.15. Wypisywanie zawartości kursora bazy danych (349)
- 7.16. Ujednolicenie stylu przekazywania parametrów w różnych modułach DB API (352)
- 7.17. Wykorzystywanie Microsoft Jet poprzez interfejs ADO (354)
- 7.18. Dostęp do bazy danych JDBC z poziomu servletu Jythona (356)
- 7.19. Wykorzystywanie w Jythonie interfejsu ODBC do odczytywania danych z Excela (358)
- 8.1. Wyłączanie wykonania niektórych instrukcji warunkowych i pętli (362)
- 8.2. Pomiar wykorzystania pamięci w Linuksie (363)
- 8.3. Debugowanie procesu oczyszczania pamięci (365)
- 8.4. Przechwytywanie i zachowywanie wyjątków (366)
- 8.5. Śledzenie wyrażeń i komentarzy w trybie debugowania (368)
- 8.6. Pobieranie dokładniejszych informacji ze śladów (371)
- 8.7. Automatyczne uruchamianie debugera po nieprzechwyconym wyjątku (374)
- 8.8. Najprostsze uruchamianie testów modułowych (375)
- 8.9. Automatyczne uruchamianie testów modułowych (377)
- 8.10. Używanie w Pythonie 2.4 modułu doctest w połączeniu z modułem unittest (378)
- 8.11. Sprawdzanie w ramach testów modułowych, czy wartość mieści się w przedziale (380)
- 9.1. Synchronizowanie wszystkich metod w obiekcie (387)
- 9.2. Zatrzymywanie wątku (390)
- 9.3. Używanie klasy Queue.Queue jako kolejki priorytetowej (392)
- 9.4. Praca ze zbiorem wątków (394)
- 9.5. Równoległe wykonywanie jednej funkcji z wieloma zestawami argumentów (397)
- 9.6. Koordynacja wątków przez proste przekazywanie komunikatów (399)
- 9.7. Zachowywanie informacji w poszczególnych wątkach (402)
- 9.8. Kooperatywna wielozadaniowość bez wątków (405)
- 9.9. Sprawdzanie, czy w systemach Windows działa już inny egzemplarz skryptu (407)
- 9.10. Przetwarzanie komunikatów systemu Windows za pomocą funkcji MsgWaitForMultipleObjects (409)
- 9.11. Uruchamianie zewnętrznego procesu za pomocą funkcji popen (412)
- 9.12. Przechwytywanie strumieni wyjściowego i błędów z polecenia uniksowego (413)
- 9.13. Rozwidlanie procesu demona w Uniksie (416)
- 10.1. Generowanie losowych haseł (420)
- 10.2. Generowanie haseł łatwych do zapamiętania (422)
- 10.3. Uwierzytelnianie użytkowników za pomocą serwera POP (424)
- 10.4. Obliczanie liczby odsłon stron serwera Apache z poszczególnych adresów IP (426)
- 10.5. Obliczanie współczynnika zbuforowanych żądań klientów serwera Apache (428)
- 10.6. Uruchomienie edytora tekstów ze skryptu (429)
- 10.7. Kopie zapasowe plików (431)
- 10.8. Selektywne kopiowanie pliku skrzynki pocztowej (433)
- 10.9. Budowanie białej listy adresów e-mail w oparciu o zawartość skrzynki pocztowej (434)
- 10.10. Blokowanie duplikatów e-maili (435)
- 10.11. Kontrola działania podsystemu dźwiękowego w Windows (437)
- 10.12. Rejestrowanie i odrejestrowywanie bibliotek DLL w Windows (438)
- 10.13. Sprawdzanie i modyfikacja listy zadań uruchamianych przez system Windows podczas rozruchu (440)
- 10.14. Utworzenie udostępnianego zasobu sieciowego w systemie Windows (441)
- 10.15. Podłączenie do działającego egzemplarza Internet Explorera (442)
- 10.16. Odczyt listy kontaktów programu Microsoft Outlook (444)
- 10.17. Pobieranie szczegółowych informacji o systemie Mac OS X (446)
- 11.1. Prezentacja wskaźnika postępu na konsoli tekstowej (451)
- 11.2. Unikanie konstrukcji lambda przy tworzeniu funkcji zwrotnych (453)
- 11.3. Wykorzystanie domyślnych wartości i ograniczeń przy korzystaniu z funkcji tkSimpleDialog (454)
- 11.4. Umożliwienie zmiany kolejności pozycji w obiekcie klasy Listbox za pomocą myszy (455)
- 11.5. Wpisywanie specjalnych znaków w elementach sterujących biblioteki Tkinter (457)
- 11.6. Osadzanie obrazów GIF w kodzie skryptu (459)
- 11.7. Przekształcanie formatów graficznych (460)
- 11.8. Implementacja stopera za pomocą biblioteki Tkinter (463)
- 11.9. Wykorzystanie interfejsów graficznych wraz z asynchroniczną obsługą operacji wejścia-wyjścia za pomocą wątków (465)
- 11.10. Wykorzystanie elementu Tree z programu IDLE (469)
- 11.11. Obsługa wielokrotnych wartości w wierszu
w obiekcie Listbox modułu Tkinter (471)
- 11.12. Kopiowanie metod i opcji wymiarowania
pomiędzy kontrolkami biblioteki Tkinter (474)
- 11.13. Implementacja kontrolki notatnika z zakładkami w bibliotece Tkinter (476)
- 11.14. Wykorzystanie obiektów klasy Notebook biblioteki wxPython z panelami (479)
- 11.15. Implementacja wtyczki do programu ImageJ w Jythonie (480)
- 11.16. Przeglądanie obrazów bezpośrednio z adresu URL za pomocą Swinga i Jythona (481)
- 11.17. Pobieranie danych od użytkownika w systemie Mac OS (482)
- 11.18. Programowe generowanie interfejsu Cocoa GUI (484)
- 11.19. Implementacja stopniowo pojawiających się okien z użyciem IronPythona (486)
- 12.1. Sprawdzanie poprawności struktury danych XML (491)
- 12.2. Zliczanie znaczników w dokumencie (492)
- 12.3. Wydobywanie tekstu z dokumentu XML (494)
- 12.4. Wykrywanie standardu kodowania dokumentu XML (495)
- 12.5. Przekształcanie dokumentu XML w drzewo obiektów Pythona (497)
- 12.6. Usuwanie z drzewa DOM węzłów zawierających wyłącznie ciągi białych znaków (499)
- 12.7. Parsowanie plików XML zapisanych przez Microsoft Excel (500)
- 12.8. Walidacja dokumentów XML (502)
- 12.9. Filtrowanie elementów należących do określonej przestrzeni nazw (503)
- 12.10. Łączenie występujących po sobie zdarzeń tekstowych w jedną całość za pomocą filtra SAX (505)
- 12.11. Wykorzystanie MSHTML-a do parsowania formatu XML lub HTML (508)
- 13.1. Przekazywanie komunikatów za pośrednictwem gniazd datagramowych (513)
- 13.2. Pobieranie dokumentacji z WWW (515)
- 13.3. Filtrowanie listy serwerów FTP (516)
- 13.4. Odczytywanie czasu z serwera za pomocą protokołu SNTP (517)
- 13.5. Wysyłanie listów e-mail w formacie HTML (518)
- 13.6. Wykorzystanie wiadomości w formacie MIME do wysyłki wielu plików (521)
- 13.7. Rozkładanie na części wieloczęściowej wiadomości w formacie MIME (523)
- 13.8. Usuwanie załączników z listów elektronicznych (524)
- 13.9. Poprawianie błędnych obiektów email uzyskanych za pomocą parsera email.FeedParser z Pythona 2.4 (526)
- 13.10. Interaktywne przeglądanie skrzynki pocztowej POP3 (528)
- 13.11. Wykrywanie nieaktywnych komputerów (531)
- 13.12. Monitorowanie sieci z użyciem HTTP (535)
- 13.13. Przekazywanie i przeadresowywanie portów sieciowych (537)
- 13.14. Tunelowanie połączeń SSL przez serwer pośredniczący (540)
- 13.15. Implementacja klienta usługi dynamicznego DNS (543)
- 13.16. Połączenie z serwerem IRC i zapis dziennika rozmów na dysku (546)
- 13.17. Wykorzystanie serwerów LDAP (547)
- 14.1. Sprawdzanie, czy CGI działa poprawnie (550)
- 14.2. Obsługa adresów URL w skryptach CGI (553)
- 14.3. Przesyłanie plików na serwer WWW za pomocą CGI (555)
- 14.4. Sprawdzanie istnienia strony WWW (556)
- 14.5. Sprawdzanie typu zawartości za pomocą HTTP (558)
- 14.6. Wznawianie pobierania pliku za pomocą HTTP (559)
- 14.7. Obsługa cookies przy pobieraniu stron WWW (560)
- 14.8. Uwierzytelnianie połączenia HTTPS nawiązywanego za pośrednictwem pośrednika (563)
- 14.9. Uruchamianie serwletów z użyciem Jythona (564)
- 14.10. Wyszukiwanie cookie przeglądarki Internet Explorer (566)
- 14.11. Generowanie plików OPML (567)
- 14.12. Pobieranie wiadomości RSS (570)
- 14.13. Przekształcanie danych w strony WWW z użyciem szablonów stron (573)
- 14.14. Renderowanie dowolnych obiektów z użyciem Nevow (576)
- 15.1. Wywołanie metody XML-RPC (582)
- 15.2. Obsługa żądań XML-RPC (583)
- 15.3. Serwer XML-RPC wykorzystujący bibliotekę Medusa (585)
- 15.4. Zdalne zamykanie serwera XML-RPC (587)
- 15.5. Implementowanie mechanizmów ulepszających na potrzeby klasy SimpleXMLRPCServer (588)
- 15.6. Implementacja interfejsu graficznego wxPython dla serwera XML-RPC (589)
- 15.7. Wykorzystanie mechanizmu Twisted Perspective Broker (592)
- 15.8. Implementacja serwera i klienta CORBA (594)
- 15.9. Zdalne uruchamianie poleceń powłoki z użyciem telnetlib (597)
- 15.10. Zdalne uruchamianie poleceń powłoki z użyciem SSH (599)
- 15.11. Uwierzytelnianie z użyciem klienta SSL za pomocą protokołu HTTPS (602)
- 16.1. Sprawdzanie, czy ciąg znaków jest poprawną liczbą (611)
- 16.2. Importowanie dynamicznie wygenerowanego modułu (612)
- 16.3. Importowanie modułów, których nazwy są ustalane w trakcie wykonania (613)
- 16.4. Wiązanie parametrów z funkcjami (metoda Curry'ego) (615)
- 16.5. Dynamiczne komponowanie funkcji (618)
- 16.6. Kolorowanie kodu źródłowego w Pythonie z użyciem wbudowanego mechanizmu analizy leksykalnej (619)
- 16.7. Łączenie i dzielenie tokenów (622)
- 16.8. Sprawdzanie, czy ciąg znaków ma odpowiednio zrównoważone nawiasy (624)
- 16.9. Symulowanie typu wyliczeniowego w Pythonie (627)
- 16.10. Odczyt zawartości rozwinięcia listy w trakcie jej budowania (629)
- 16.11. Automatyczna kompilacja skryptów za pomocą py2exe do postaci programów wykonywalnych systemu Windows (631)
- 16.12. Łączenie skryptu głównego i modułów w jeden plik wykonywalny systemu Unix (633)
- 17.1. Implementacja prostego typu rozszerzeń (640)
- 17.2. Implementacja prostego rozszerzenia za pomocą języka Pyrex (643)
- 17.3. Wykorzystanie w Pythonie biblioteki napisanej w C++ (645)
- 17.4. Wywoływanie funkcji zdefiniowanych w bibliotekach DLL systemu Windows (648)
- 17.5. Wykorzystanie modułów wygenerowanych z użyciem SWIG w środowisku wielowątkowym (650)
- 17.6. Przekształcenie sekwencji Pythona na tablicę języka C z użyciem protokołu PySequence_Fast (651)
- 17.7. Odczyt elementów sekwencji Pythona z wykorzystaniem protokołu iteratorów (655)
- 17.8. Zwracanie wartości None w funkcji rozszerzeń w języku C (658)
- 17.9. Debugowanie za pomocą gdb dynamicznie ładowanych rozszerzeń Pythona (659)
- 17.10. Debugowanie problemów z pamięcią (660)
- 18.1. Usuwanie duplikatów z sekwencji (667)
- 18.2. Usuwanie duplikatów z sekwencji z zachowaniem kolejności (669)
- 18.3. Generowanie losowych próbek z powtórzeniami (673)
- 18.4. Generowanie losowych próbek bez powtórzeń (674)
- 18.5. Zachowywanie wartości zwracanych przez funkcje (675)
- 18.6. Implementacja kontenera FIFO (677)
- 18.7. Buforowanie obiektów w kolejce FIFO (679)
- 18.8. Implementacja typu wielozbiorowego (kolekcji) (681)
- 18.9. Zasymulowanie w Pythonie operatora trójargumentowego (684)
- 18.10. Wyliczanie liczb pierwszych (687)
- 18.11. Formatowanie liczb całkowitych w postaci dwójkowej (690)
- 18.12. Formatowanie liczb całkowitych w notacji o dowolnej podstawie (692)
- 18.13. Przekształcanie liczb na notację ułamkową z użyciem ciągów Fareya (694)
- 18.14. Obliczenia arytmetyczne z propagacją błędu (696)
- 18.15. Sumowanie liczb z jak największą precyzją (698)
- 18.16. Symulacja liczb zmiennoprzecinkowych (700)
- 18.17. Wyliczanie powłoki wypukłej oraz średnicy zbioru punktów w przestrzeni dwuwymiarowej (703)
- 19.1. Implementacja funkcji range() o przyrostach zmiennoprzecinkowych (711)
- 19.2. Budowanie listy z dowolnego obiektu iterowalnego (713)
- 19.3. Generowanie ciągu Fibonacciego (715)
- 19.4. Rozpakowanie kilku wartości w operacji wielokrotnego przypisania (716)
- 19.5. Automatyczne rozpakowanie odpowiedniej liczby elementów (718)
- 19.6. Dzielenie obiektu iterowanego na rozszerzone wycinki o szerokości n (720)
- 19.7. Przeglądanie sekwencji za pomocą częściowo pokrywających się okien (722)
- 19.8. Równoległe przeglądanie wielu obiektów iterowalnych (725)
- 19.9. Przeglądanie iloczynu kartezjańskiego wielu obiektów iterowalnych (728)
- 19.10. Odczytywanie zawartości pliku po akapitach (731)
- 19.11. Odczyt wierszy ze znakami kontynuacji (733)
- 19.12. Przeglądanie strumienia bloków danych i interpretowanie go jako strumienia wierszy (734)
- 19.13. Pobieranie dużych zestawów wyników z bazy danych z wykorzystaniem generatora (735)
- 19.14. Łączenie sekwencji posortowanych (737)
- 19.15. Generowanie permutacji, kombinacji i selekcji (740)
- 19.16. Generowanie rozkładów liczb całkowitych (742)
- 19.17. Tworzenie duplikatu iteratora (744)
- 19.18. Podglądanie wartości iteratora w przód (747)
- 19.19. Uproszczenie wątków konsumentów kolejek (750)
- 19.20. Uruchamianie iteratora w innym wątku (751)
- 19.21. Obliczanie raportu podsumowującego za pomocą itertools.groupby() (753)
- 20.1. Przydzielanie nowych wartości domyślnych dla każdego wywołania funkcji (759)
- 20.2. Kodowanie właściwości za pomocą funkcji zagnieżdżonych (762)
- 20.3. Tworzenie aliasów wartości atrybutów (764)
- 20.4. Buforowanie wartości atrybutów (766)
- 20.5. Wykorzystanie jednej metody w charakterze akcesora wielu atrybutów (768)
- 20.6. Dodawanie funkcjonalności klasie przez opakowanie metody (770)
- 20.7. Wzbogacanie funkcjonalności klasy przez modyfikację wszystkich metod (773)
- 20.8. Dodawanie metod do egzemplarza klasy w czasie wykonania (775)
- 20.9. Sprawdzanie, czy zostały zaimplementowane określone interfejsy (777)
- 20.10. Odpowiednie wykorzystanie metod __new__ i __init__ we własnych metaklasach (779)
- 20.11. Zezwalanie na potokowe wykonywanie mutujących metod obiektów list (781)
- 20.12. Implementacja bardziej zwartej składni wywołań metod klasy nadrzędnej (782)
- 20.13. Inicjalizacja atrybutów egzemplarza bez użycia metody __init__() (784)
- 20.14. Automatyczna inicjalizacja atrybutów egzemplarza (786)
- 20.15. Automatyczna aktualizacja klas istniejących obiektów po ponownym załadowaniu modułu (789)
- 20.16. Wiązanie stałych w czasie kompilacji (793)
- 20.17. Rozwiązywanie konfliktów metaklas (797)
Wstęp (15)
Rozdział 1. Tekst (31)
Rozdział 2. Pliki (89)
Rozdział 3. Czas i pieniądz (141)
Rozdział 4. Skróty (177)
Rozdział 5. Szukanie i sortowanie (221)
Rozdział 6. Programowanie obiektowe (259)
Rozdział 7. Trwałość danych i bazy danych (317)
Rozdział 8. Testy i debugowanie (361)
Rozdział 9. Procesy, wątki i synchronizacja (383)
Rozdział 10. Administracja systemem (419)
Rozdział 11. Interfejsy użytkownika (449)
Rozdział 12. Przetwarzanie formatu XML (489)
Rozdział 13. Programowanie sieciowe (511)
Rozdział 14. Programowanie WWW (549)
Rozdział 15. Oprogramowanie rozproszone (579)
Rozdział 16. Programy o programach (605)
Rozdział 17. Rozszerzanie i osadzanie (637)
Rozdział 18. Algorytmy (663)
Rozdział 19. Iteratory i generatory (707)
Rozdział 20. Deskryptory, dekoratory i metaklasy (757)
Skorowidz (801)
Oceny i opinie klientów: Python. Receptury Alex Martelli, Anna Martelli Ravenscroft, David Ascher (1)
(1)
(0)
(0)
(0)
(0)
(0)
6 oceniona przez: Artur, 2009-04-20