EBOOKI WYDAWCY
Autor:
Wydawca:
Format:
epub, mobi, ibuk
Książka to zbiór zabawnych i edukacyjnych ćwiczeń zaprojektowanych w taki sposób, aby bawić programistów i jednocześnie zwiększać ich umiejętności związane z programowaniem w Pythonie. Przygoda zaczyna się tam, gdzie kończą się książki dla początkujących. Publikacja rozwija istniejące koncepcje i wprowadza nowe narzędzia, z których będziesz korzystać każdego dnia. Dla jeszcze ciekawszego efektu, każdy projekt zawiera nieoczekiwany zwrot wydarzeń historycznych, odwołań do popkultury i literackich aluzji.
Użyjesz darmowych modułów jak Tkinter, matplotlib, Cprofile, Pylint, Pygame, Pillow i Python-Docx.
Usprawnisz swoje umiejętności związane z rozwiązywaniem problemów i zaangażujesz wiele użytecznych bibliotek Pythona do rozwiązywania ciekawych zadań.
Rok wydania | 2020 |
---|---|
Liczba stron | 450 |
Kategoria | Języki programowania |
Wydawca | Wydawnictwo Naukowe PWN |
Tłumaczenie | Krzysztof Kapustka |
ISBN-13 | 978-83-01-20998-8 |
Numer wydania | 1 |
Język publikacji | polski |
Informacja o sprzedawcy | ePWN sp. z o.o. |
EBOOKI WYDAWCY
POLECAMY
Ciekawe propozycje
Spis treści
PODZIĘKOWANIA xix | |
WPROWADZENIE xxi | |
Dla kogo jest ta książka? xxii | |
Co jest w tej książce? xxii | |
Wersja Pythona, platforma i IDE xxiv | |
Kod xxv | |
Styl kodu xxv | |
Gdzie uzyskać pomoc? xxv | |
Naprzód! xxvi | |
1. GENERATOR ZABAWNYCH PSEUDONIMÓW 1 | |
Projekt 1: Generowanie pseudonimów 2 | |
Planowanie i tworzenie projektu 2 | |
Strategia 3 | |
Pseudokod 3 | |
Kod 4 | |
Korzystanie z przewodnika po stylach tworzonego przez społeczność Pythona 6 | |
Sprawdzanie kodu za pomocą narzędzia Pylint 7 | |
Opisywanie kodu za pomocą ciągów docstring 11 | |
Sprawdzanie stylu naszego kodu 12 | |
Podsumowanie 15 | |
Materiały dodatkowe 15 | |
Pseudokod 15 | |
Przewodniki po stylach 15 | |
Moduły zewnętrzne 16 | |
Ćwiczenia 16 | |
Świńska łacina 16 | |
Wykres słupkowy dla języka angielskiego 17 | |
Wyzwania 17 | |
Wykres słupkowy dla języków romańskich 17 | |
Drugie imię 18 | |
Coś całkowicie innego 18 | |
2. ZNAJDOWANIE ZAKLĘĆ 19 | |
Znajdowanie i otwieranie słownika 20 | |
Obsługiwanie wyjątków podczas otwierania plików 21 | |
Wczytywanie pliku słownika 21 | |
Projekt 2: Znajdowanie palindromów 23 | |
Strategia i pseudokod 23 | |
Palindromy – kod 24 | |
Projekt 3: Znajdowanie palindromów wielowyrazowych 25 | |
Strategia i pseudokod 26 | |
Palindromy wielowyrazowe – kod 29 | |
Profilowanie palindromów 30 | |
Optymalizacja palindromów 32 | |
ceinoK 34 | |
Materiały dodatkowe 34 | |
Ćwiczenie: oczyszczanie słownika 34 | |
Wyzwanie: podejście rekurencyjne 35 | |
3. ROZWIĄZYWANIE ANAGRAMÓW 37 | |
Projekt 4: Znajdowanie anagramów jednowyrazowych 38 | |
Strategia i pseudokod 38 | |
Znajdowanie anagramów – kod 40 | |
Projekt 5: Znajdowanie anagramów wielowyrazowych 42 | |
Strategia i pseudokod 42 | |
Kod anagramów wielowyrazowych 46 | |
Projekt 6: Znajdowanie Voldemorta – galijski gambit 52 | |
Projekt 7: Znajdowanie Voldemorta: brytyjska metoda siłowa 54 | |
Strategia 55 | |
Kod brytyjskiej metody siłowej 57 | |
Podsumowanie 65 | |
Materiały dodatkowe 65 | |
Ćwiczenie: znajdowanie dwuznaków 65 | |
Wyzwanie: automatyczny generator anagramów 66 | |
4. DEKODOWANIE SZYFRÓW Z AMERYKAŃSKIEJ WOJNY DOMOWEJ 67 | |
Projekt 8: Szyfr trasowy 68 | |
Strategia 70 | |
Pseudokod 73 | |
Dekodowanie szyfru trasowego – kod 73 | |
Łamanie szyfru trasowego 76 | |
Dodawanie interfejsu użytkownika 78 | |
Projekt 9: Szyfr płotkowy 84 | |
Strategia 86 | |
Szyfrowanie szyfrem płotkowym – kod 86 | |
Dekodowanie szyfru płotkowego – kod 89 | |
Podsumowanie 92 | |
Materiały dodatkowe 92 | |
Ćwiczenia 92 | |
Rozszyfrowywanie komunikatu Lincolna 93 | |
Identyfikowanie rodzajów szyfrów 93 | |
Przechowywanie klucza w formie słownika 93 | |
Automatyzowanie możliwych kluczy 93 | |
Przestawieniowy szyfr trasowy: atak siłowy 94 | |
Wyzwania 95 | |
Narzędzie do kodowania szyfrem trasowym 95 | |
Szyfr płotkowy z trzema sztachetami 96 | |
5. KODOWANIE SZYFRÓW Z BRYTYJSKIEJ WOJNY DOMOWEJ 97 | |
Projekt 10: Szyfr Trevaniona 98 | |
Strategia i pseudokod 99 | |
Szyfr Trevaniona – kod 100 | |
Projekt 11: Pisanie ukrytej wiadomości 104 | |
Szyfr listowy – kod 105 | |
Szyfr listowy – wynik 107 | |
Podsumowanie 108 | |
Materiały dodatkowe 108 | |
Ćwiczenia 108 | |
Ratowanie Marii 108 | |
Złapanie w zamku Colchester 109 | |
6. PISANIE ATRAMENTEM SYMPATYCZNYM 111 | |
Projekt 12: Ukrywanie szyfru Vigenère’a 112 | |
Platforma 113 | |
Strategia 114 | |
Tworzenie atramentu sympatycznego 114 | |
Operowanie dokumentami programu Word z użyciem modułu python-docx 117 | |
Pobieranie zasobów 119 | |
Pseudokod 120 | |
Kod 121 | |
Formatowanie i przeplatanie wiadomości 122 | |
Dodawania szyfru Vigenère’a 125 | |
Wykrywanie ukrytej wiadomości 127 | |
Podsumowanie 130 | |
Materiały dodatkowe 130 | |
Ćwiczenie: sprawdzanie liczby pustych wierszy 131 | |
Wyzwanie: korzystanie z czcionki o stałej szerokości znaków 131 | |
7. HODOWANIE OLBRZYMICH SZCZURÓW ZA POMOCĄ ALGORYTMÓW GENETYCZNYCH 133 | |
Znajdowanie najlepszego rozwiązania 134 | |
Projekt 13: Hodowanie armii superszczurów 134 | |
Strategia 135 | |
Superszczury – kod 138 | |
Podsumowanie 145 | |
Projekt 14: Łamanie kodu zaawansowanego technicznie sejfu 146 | |
Strategia 148 | |
Łamacz kodów sejfów – kod 149 | |
Podsumowanie 152 | |
Materiały dodatkowe 153 | |
Wyzwania 153 | |
Tworzenie szczurzego haremu 153 | |
Tworzenie bardziej wydajnego łamacza kodów sejfów 153 | |
8. ZLICZANIE SYLAB W WIERSZACH HAIKU 155 | |
Japońskie haiku 156 | |
Projekt 15: Zliczanie sylab 157 | |
Strategia 157 | |
Korzystanie z korpusu 158 | |
Instalowanie NLTK 158 | |
Pobieranie słownika CMUdict 159 | |
Zliczanie dźwięków zamiast sylab 160 | |
Obsługiwanie słów z więcej niż jedną wymową 160 | |
Zarządzanie brakującymi słowami 161 | |
Korpus szkoleniowy 161 | |
Brakujące słowa – kod 161 | |
Zliczanie sylab – kod 167 | |
Przygotowanie, wczytywanie i zliczanie 167 | |
Definiowanie funkcji main() 169 | |
Program do sprawdzania naszego programu 169 | |
Podsumowanie 170 | |
Materiały dodatkowe 171 | |
Ćwiczenie: zliczanie sylab a plik słownika 171 | |
9. PISANIE HAIKU Z UŻYCIEM ŁAŃCUCHÓW MARKOWA 173 | |
Projekt 16: Analiza z użyciem łańcuchów Markowa 174 | |
Strategia 177 | |
Wybieranie i odrzucanie słów 177 | |
Kontynuacja z jednego wersu do drugiego 179 | |
Pseudokod 179 | |
Korpus szkoleniowy 180 | |
Debugowanie 181 | |
Budowanie rusztowania 182 | |
Rejestrowanie za pomocą modułu logging 182 | |
Kod 183 | |
Przygotowanie 183 | |
Tworzenie modeli Markowa 184 | |
Wybieranie losowego słowa 186 | |
Stosowanie modeli Markowa 187 | |
Generowanie wersów haiku 188 | |
Pisanie interfejsu użytkownika 191 | |
Wyniki 194 | |
Dobre haiku 195 | |
Inicjator haiku 196 | |
Podsumowanie 197 | |
Materiały dodatkowe 197 | |
Wyzwania 198 | |
Generator nowych słów 198 | |
Test Turinga 198 | |
Niewiarygodne! To niewiarygodne! Niewiarygodne! 199 | |
Haikować czy nie haikować 200 | |
Muzyka Markowa 200 | |
10. CZY JESTEŚMY SAMI? POZNAWANIE PARADOKSU FERMIEGO 201 | |
Projekt 17: Modelowanie Drogi Mlecznej 202 | |
Strategia 203 | |
Szacowanie liczby cywilizacji 204 | |
Wybieranie rozmiaru bąbla fal radiowych 205 | |
Generowanie wzoru dla prawdopodobieństwa wykrycia 206 | |
Prawdopodobieństwo wykrycia – kod 208 | |
Obliczanie prawdopodobieństwa wykrycia dla zakresu cywilizacji 209 | |
Generowanie wzoru predykcyjnego i sprawdzanie rezultatów 211 | |
Tworzenie modelu graficznego 213 | |
Skalowanie modelu graficznego 215 | |
Symulator galaktyki – kod 216 | |
Rezultaty 226 | |
Podsumowanie 227 | |
Materiały dodatkowe 227 | |
Ćwiczenia 227 | |
Bardzo odległa galaktyka 227 | |
Tworzenie galaktycznego imperium 228 | |
Okrężny sposób przewidywania wykrywalności 229 | |
Wyzwania 229 | |
Tworzenie galaktyki spiralnej z poprzeczką 230 | |
Dodawanie stref zamieszkiwalnych do naszej galaktyki 230 | |
11. PROBLEM MONTY’EGO HALLA 233 | |
Symulacja Monte Carlo 234 | |
Projekt 18: Weryfikacja vos Savant 236 | |
Strategia 236 | |
Weryfikacja vos Savant – kod 237 | |
Projekt 19: Gra Monty’ego Halla 239 | |
Krótkie wprowadzenie do programowania obiektowego 239 | |
Strategia i pseudokod 243 | |
Zasoby gry 244 | |
Gra Monty’ego Halla - kod 245 | |
Podsumowanie 255 | |
Materiały dodatkowe 255 | |
Ćwiczenie: paradoks dnia urodzin 256 | |
12. ZABEZPIECZANIE KWOTY NA SPECJALNY CEL 257 | |
Projekt 20: Symulowanie życia na emeryturze 258 | |
Strategia 258 | |
Historyczne zwroty mają znaczenie 261 | |
Największa niepewność 264 | |
Jakościowy sposób prezentowania wyników 265 | |
Pseudokod 267 | |
Wyszukiwanie danych historycznych 268 | |
Kod 269 | |
Importowanie modułów i definiowanie funkcji do wczytywania i pobierania danych od użytkownika 269 | |
Pobieranie danych od użytkownika 270 | |
Sprawdzanie pod kątem pozostałych błędów 272 | |
Definiowanie silnika Monte Carlo 273 | |
Symulowanie każdego roku w przypadku 276 | |
Obliczanie prawdopodobieństwa ruiny 277 | |
Definiowanie i wywoływanie funkcji main() 278 | |
Korzystanie z symulatora 279 | |
Podsumowanie 283 | |
Materiały dodatkowe 283 | |
Wyzwania 284 | |
Obraz jest wart tysiąca dolarów 284 | |
Mieszanka 284 | |
Po prostu mam szczęście! 285 | |
Cała pula 285 | |
13. SYMULOWANIE POZAZIEMSKIEGO WULKANU 287 | |
Projekt 21: Pióropusze Io 288 | |
Pakiet pygame 289 | |
Strategia 290 | |
Planowanie za pomocą szkicu gry 290 | |
Planowanie klasy Particle 291 | |
Kod 293 | |
Importowanie modułów, inicjalizacja pygame i definiowanie kolorów 293 | |
Definiowanie klasy Particle 294 | |
Wyrzucanie cząsteczki 296 | |
Aktualizowanie cząsteczki i obsługa warunków brzegowych 298 | |
Definiowanie funkcji main() 299 | |
Kończenie funkcji main() 301 | |
Uruchamianie symulacji 303 | |
Podsumowanie 304 | |
Materiały dodatkowe 304 | |
Ćwiczenie: odległość 304 | |
Wyzwania 305 | |
Baldachim pióropusza 305 | |
Źródło 306 | |
Pocisk 306 | |
14. ODWZOROWYWANIE MARSA PRZY UŻYCIU SONDY MARS ORBITER 307 | |
Astrodynamika dla graczy 308 | |
Prawo powszechnego ciążenia 308 | |
Prawo Keplera dotyczące ruchu planet 309 | |
Mechanika orbitalna 310 | |
Projekt 22: Gra Mars Orbiter 315 | |
Strategia 315 | |
Zasoby gry 318 | |
Kod 319 | |
Importowanie i tworzenie tabeli kolorów 320 | |
Definiowanie metody inicjalizacyjnej klasy Satellite 320 | |
Ustawianie początkowego położenia, prędkości, paliwa i dźwięku dla satelity 322 | |
Odpalanie silników i oczekiwanie na reakcję gracza 323 | |
Lokalizowanie satelity 324 | |
Obracanie satelity i rysowanie jego orbity 325 | |
Aktualizowanie obiektu satelity 326 | |
Definiowanie metody inicjalizacyjnej klasy Planet 327 | |
Obracanie planety 329 | |
Definiowanie metod gravity() i update() 330 | |
Obliczanie mimośrodu 332 | |
Definiowanie funkcji do tworzenia etykiet 332 | |
Odwzorowanie wilgotności gleby 334 | |
Rzucanie cienia 335 | |
Definiowanie funkcji main() 336 | |
Tworzenie obiektów, przygotowywanie weryfikacji orbity, odwzorowywania i pomiarów czasu 337 | |
Rozpoczynanie pętli gry i odtwarzanie dźwięków 339 | |
Stosowanie grawitacji, obliczanie mimośrodu i obsługiwanie porażek 340 | |
Nagradzanie sukcesu oraz aktualizowanie i rysowanie duszków 342 | |
Wyświetlanie instrukcji i telemetrii oraz rzucanie cienia 342 | |
Podsumowanie 344 | |
Wyzwania 344 | |
Ekran tytułowy gry 344 | |
Inteligentne wskaźniki 345 | |
Zanik łączności 345 | |
Punkty 345 | |
Przewodnik strategiczny 345 | |
Hamowanie aerodynamiczne 345 | |
Alarm o intruzie! 347 | |
Z góry 347 | |
15. POPRAWIANIE ASTROFOTOGRAFII ZA POMOCĄ UŚREDNIANIA PLANET 349 | |
Projekt 23: Uśrednianie Jowisza 350 | |
Moduł pillow 351 | |
Praca z plikami i folderami 351 | |
Ścieżki do katalogów 352 | |
Moduł Shell Utilities 354 | |
Wideo 354 | |
Strategia 356 | |
Kod 356 | |
Kadrowanie i skalowanie 356 | |
Uśrednianie 362 | |
Poprawianie 365 | |
Podsumowanie 368 | |
Materiały dodatkowe 369 | |
Wyzwanie: zniknięcie 369 | |
16. WYKRYWANIE OSZUSTW ZA POMOCĄ PRAWA BENFORDA 373 | |
Projekt 24: Prawo Benforda dotyczące wiodących cyfr 374 | |
Stosowanie prawa Benforda 376 | |
Wykonywanie testu chi kwadrat 378 | |
Zbiór danych 380 | |
Strategia 381 | |
Kod 381 | |
Importowanie modułów i wczytywanie danych 382 | |
Zliczanie pierwszych cyfr 383 | |
Pobieranie oczekiwanych liczników 384 | |
Ustalanie zgodności rozkładów 385 | |
Definiowane funkcji wykresu słupkowego 386 | |
Kończenie funkcji wykresu słupkowego 387 | |
Definiowanie i uruchamianie funkcji main() 388 | |
Podsumowanie 391 | |
Materiały dodatkowe 392 | |
Ćwiczenie: pokonywanie Benforda 392 | |
Wyzwania 394 | |
Stosowanie prawa Benforda w wahających się stanach 394 | |
Gdy nikt nie patrzył 394 | |
DODATEK: ROZWIĄZANIA ĆWICZEŃ 395 | |
Rozdział 1: Generator zabawnych pseudonimów 395 | |
Rozdział 2: Znajdowanie zaklęć 397 | |
Rozdział 3: Rozwiązywanie anagramów 397 | |
Rozdział 4: Dekodowanie szyfrów z amerykańskiej wojny domowej 398 | |
Rozdział 5: Kodowanie szyfrów z brytyjskiej wojny domowej 403 | |
Rozdział 8: Zliczanie sylab w wierszach haiku 407 | |
Rozdział 10: Czy jesteśmy sami? Odkrywanie paradoksu Fermiego 408 | |
Rozdział 11: Problem Monty’ego Halla 413 | |
Rozdział 13: Symulowanie pozaziemskiego wulkanu 414 | |
Rozdział 16: Znajdowanie oszustw za pomocą prawa Benforda 416 | |
INDEKS 419 | |