Python. Receptury

download Python. Receptury

of 50

  • date post

    21-Oct-2014
  • Category

    Technology

  • view

    5.393
  • download

    4

Embed Size (px)

description

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.

Transcript of Python. Receptury

Python. Receptury

Wydawnictwo Helionul. Chopina 644-100 Gliwicetel. (32)230-98-63e-mail: helion@helion.pl

PRZYKADOWY ROZDZIAPRZYKADOWY ROZDZIA

IDZ DOIDZ DO

ZAMW DRUKOWANY KATALOGZAMW DRUKOWANY KATALOG

KATALOG KSIEKKATALOG KSIEK

TWJ KOSZYKTWJ KOSZYK

CENNIK I INFORMACJECENNIK I INFORMACJE

ZAMW INFORMACJEO NOWOCIACH

ZAMW INFORMACJEO NOWOCIACH

ZAMW CENNIKZAMW CENNIK

CZYTELNIACZYTELNIAFRAGMENTY KSIEK ONLINEFRAGMENTY KSIEK ONLINE

SPIS TRECISPIS TRECI

DODAJ DO KOSZYKADODAJ DO KOSZYKA

KATALOG ONLINEKATALOG ONLINE

Python. RecepturyAutorzy: Alex Martelli, Anna MartelliRavenscroft, David AscherTumaczenie: Wojciech Moch, Marek PtlickiISBN: 83-246-0214-3Tytu oryginau: Python CookbookFormat: B5, stron: 848

Python zosta opracowany na pocztku lat "90 i szybko zyska uznanie programistw. Elastyczny i uniwersalny, pozwala na stosowanie zasad programowania obiektowego, strukturalnego i funkcyjnego. By i nadal jest wykorzystywany nie tylko do tworzenia skryptw, ale rwnie przy duych projektach, takich jak na przykad serwer aplikacji Zope. Decydujc si na korzystanie z Pythona, stajemy si czci niezwykej spoecznoci programistw, chtnie pomagajcej kademu, kto chce doskonali umiejtno posugiwania si tym jzykiem.

Ksika Python. Receptury to zbir rozwiza problemw, z jakimi w codziennej pracy borykaj si programici korzystajcy z tego jzyka. Materiay do niej przygotowao ponad 300 czonkw spoecznoci Pythona odpowiadajcych na pytania zadawanena forum internetowym. Rozwizania zostay przetestowane w praktyce, co uatwia ich zaimplementowanie we wasnych projektach.

W ksice umwiono m.in.:

Przetwarzanie tekstw Operacje na plikach Programowanie obiektowe Przeszukiwanie i sortowanie czenie skryptw z bazami danych Testowanie i usuwanie bdw Programowanie wielowtkowe Realizacj zada administracyjnych Obsug interfejsw uytkownika Tworzenie aplikacji sieciowych Przetwarzanie dokumentw XML

Kady programista Pythona, niezalenie od umiejtnoci,znajdzie w tej ksice co dla siebie

3

Wstp ........................................................................................................................................15

Rozdzia 1. Tekst .......................................................................................................................311.1. Przetwarzanie tekstu po jednym znaku 371.2. Konwersja pomidzy znakami a kodami numerycznymi 381.3. Sprawdzanie, czy obiekt jest podobny do cigu znakw 391.4. Wyrwnywanie cigw znakw 411.5. Usuwanie spacji z kocw cigu znakw 421.6. czenie cigw znakw 421.7. Odwracanie kolejnoci sw lub znakw w cigu znakw 451.8. Sprawdzanie, czy cig znakw zawiera pewien zestaw znakw 471.9. Upraszczanie uycia metody translate 50

1.10. Filtrowanie cigu znakw na podstawie znakw z okrelonego zbioru 521.11. Sprawdzanie, czy cig znakw jest tekstowy czy binarny 551.12. Kontrolowanie wielkoci znakw 571.13. Odczytywanie podcigw 581.14. Zmiany wci w wielowierszowym cigu znakw 611.15. Rozszerzanie i zawanie tabulacji 631.16. Wstawianie zmiennych do cigu znakw 651.17. Wstawianie zmiennych do cigu znakw w Pythonie 2.4 671.18. Podmiana wielu wzorcw w jednym przebiegu 691.19. Sprawdzanie kocwek w cigu znakw 721.20. Obsuga tekstw midzynarodowych za pomoc Unikodu 731.21. Konwertowanie pomidzy Unikodem i prostym tekstem 761.22. Wypisywanie znakw Unikodu na standardowe wyjcie 781.23. Kodowanie danych w formatach XML i HTML 791.24. Przygotowanie cigu znakw nierozrniajcego wielkoci liter 821.25. Konwertowanie dokumentw HTML na zwyky tekst na terminalu uniksowym 85

4 Spis treci

Rozdzia 2. Pliki .......................................................................................................................892.1. Czytanie z pliku 932.2. Zapisywanie do pliku 972.3. Wyszukiwanie i podmiany tekstu w pliku 982.4. Odczytanie z pliku okrelonego wiersza 992.5. Zliczanie wierszy w pliku 1002.6. Przetwarzanie wszystkich sw z pliku 1032.7. Wejcie i wyjcie o dostpie swobodnym 1052.8. Aktualizowanie pliku o dostpie swobodnym 1062.9. Odczytywanie danych z plikw .zip 108

2.10. Obsuga plikw .zip wewntrz cigu znakw 1102.11. Archiwizowanie drzewa plikw w skompresowanym pliku .tar 1112.12. Wysyanie danych binarnych na standardowe wyjcie w systemach Windows 1132.13. Stosowanie skadni podobnej do skadni obiektw iostream z jzyka C++ 1142.14. Przewijanie pliku wejciowego do pocztku 1152.15. Przystosowywanie obiektw plikopodobnych

do obiektw rzeczywistych plikw 1182.16. Przegldanie drzew katalogw 1192.17. Zamiana jednego rozszerzenia plikw na inne w caym drzewie katalogw 1212.18. Wyszukiwanie pliku na podstawie cieki wyszukiwania 1222.19. Wyszukiwanie plikw na postawie cieki wyszukiwania i wzorca 1232.20. Wyszukiwanie plikw zgodnie ze ciek wyszukiwania Pythona 1242.21. Dynamiczne modyfikowanie cieki wyszukiwania Pythona 1252.22. Wyznaczanie cieki wzgldnej z jednego katalogu do drugiego 1272.23. Odczytywanie znakw niebuforowanych w sposb niezaleny od platformy 1292.24. Zliczanie stron dokumentw PDF w systemie Mac OS X 1302.25. Modyfikowanie atrybutw plikw w systemach Windows 1312.26. Pobieranie tekstu z dokumentw OpenOffice.org 1322.27. Pobieranie tekstu z dokumentw Microsoft Word 1332.28. Blokowanie plikw za pomoc midzyplatformowego API 1342.29. Wersjonowanie nazw plikw 1362.30. Wyliczanie sum kontrolnych CRC-64 138

Rozdzia 3. Czas i pienidz ....................................................................................................1413.1. Wyliczanie dnia jutrzejszego i wczorajszego 1473.2. Ktrego by ostatni pitek? 1493.3. Wyliczanie przedziau czasu i zakresu dat 1513.4. Sumowanie czasw trwania piosenek 1523.5. Wyznaczanie liczby dni roboczych pomidzy dwoma datami 1533.6. Automatyczne wyznaczanie dat wit 1553.7. Elastyczne odczytywanie dat 158

Spis treci 5

3.8. Sprawdzanie, czy aktualnie mamy czas letni czy zimowy 1593.9. Konwersja stref czasowych 160

3.10. Powtarzanie wywoania polecenia 1623.11. Tworzenie terminarza polece 1633.12. Arytmetyka dziesitna 1653.13. Formatowanie liczb dziesitnych jako waluty 1673.14. Python jako prosta maszyna sumujca 1703.15. Sprawdzanie sumy kontrolnej karty kredytowej 1733.16. Sprawdzanie kursw wymiany walut 174

Rozdzia 4. Skrty ...................................................................................................................1774.1. Kopiowanie obiektu 1794.2. Konstruowanie list za pomoc list skadanych 1824.3. Zwracanie elementu listy, o ile istnieje 1844.4. Przegldanie w ptli elementw sekwencji i ich indeksw 1854.5. Tworzenie list bez wspdzielenia referencji 1864.6. Spaszczanie zagniedonej sekwencji 1884.7. Usuwanie lub przestawianie kolumn na licie wierszy 1914.8. Transponowanie tablic dwuwymiarowych 1924.9. Pobieranie wartoci ze sownika 194

4.10. Dodawanie pozycji do sownika 1964.11. Budowanie sownika bez naduywania cudzysoww 1974.12. Budowanie sownika na podstawie listy kluczy i wartoci 1994.13. Wydobywanie podzbioru elementw sownika 2014.14. Odwracanie sownika 2034.15. Wizanie kilku wartoci z kluczami sownika 2044.16. Stosowanie sownikw do wywoywania metod lub funkcji 2064.17. Wyszukiwanie sum i czci wsplnych sownikw 2084.18. Kolekcja elementw nazwanych 2104.19. Przypisywanie i testowanie za pomoc jednej instrukcji 2124.20. Stosowanie w Pythonie instrukcji printf 2144.21. Losowe wybieranie elementw z zadanym prawdopodobiestwem 2154.22. Obsugiwanie wyjtkw wewntrz wyrae 2174.23. Sprawdzanie, czy nazwa jest zdefiniowana w danym module 219

Rozdzia 5. Szukanie i sortowanie ....................................................................................... 2215.1. Sortowanie sownika 2265.2. Sortowanie listy cigw znakw bez uwzgldniania wielkoci liter 2275.3. Sortowanie listy obiektw na podstawie ich atrybutw 2295.4. Sortowanie kluczy lub indeksw na podstawie zwizanych z nimi wartoci 2315.5. Sortowanie cigw znakw zawierajcych liczby 234

6 Spis treci

5.6. Przetwarzanie wszystkich elementw listy w kolejnoci losowej 2355.7. Utrzymywanie porzdku w sekwencji

w czasie dodawania do niej nowych elementw 2375.8. Pobieranie kilku najmniejszych elementw sekwencji 2395.9. Wyszukiwanie elementw w sekwencji posortowanej 241

5.10. Wybieranie n-tego najmniejszego elementu w sekwencji 2435.11. Algorytm quicksort w trzech wierszach kodu 2465.12. Wykonywanie czstych testw obecnoci elementw sekwencji 2495.13. Wyszukiwanie podsekwencji 2515.14. Wzbogacanie typu dict o moliwo wprowadzania ocen 2535.15. Sortowanie nazwisk i rozdzielanie ich za pomoc inicjaw 257

Rozdzia 6. Programowanie obiektowe .............................................................................. 2596.1. Konwertowanie midzy skalami temperatury 2666.2. Definiowanie staych 2686.3. Ograniczanie dodawania atrybutw 2706.4. czenie wyszukiwa danych w sowniku 2726.5. Automatyczne delegacje jako alternatywa dla dziedziczenia 2746.6. Delegowanie metod specjalnych w obiektach proxy 2776.7. Implementowanie krotek z nazywanymi elementami 2806.8. Unikanie stosowania powtarzalnych metod dostpu do waciwoci 2826.9. Tworzenie szybkiej kopii obiektu 284

6.10. Przechowywanie referencji metod powizanychbez wstrzymywania mechanizmu oczyszczania pamici 286

6.11. Implementowanie bufora cyklicznego 2896.12. Wykrywanie dowolnych zmian stanu egzemplarza 2926.13. Sprawdzanie, czy obiekt ma wymagane atrybuty 2956.14. Implementowanie wzorca Projektu Stanu 2996.15. Implementowanie wzorca projektowego Singleton 3016.16. Zastpowanie wzorca projektowego Singleton idiomem Borg 3026.17. Implementowanie wzorca projektowego Obiektu Zerowego 3076.18. Automatyczne inicjowanie zmiennych egzemplarzy

na podstawie argumentw metody __init__ 3106.19. Wywoywanie metody __init__ w klasie bazowej, jeli taka metoda istnieje 3126.20. Spjne i bezpieczne kooper