Python. 14 twórczych projektów dla dociekliwych programistów - Helion

Tytuł oryginału: Python Playground: Geeky Projects for the Curious Programmer
Tłumaczenie: Lech Lachowski
ISBN: 978-83-283-2598-2
stron: 368, Format: ebook
Data wydania: 2016-10-10
Księgarnia: Helion
Cena książki: 44,25 zł (poprzednio: 59,00 zł)
Oszczędzasz: 25% (-14,75 zł)
Python jest ciekawym językiem programowania o dużych możliwościach. Dzięki niemu w prosty sposób można rozwiązać złożone problemy tego świata. Umożliwia przy tym pisanie czytelnego i łatwego w konserwacji kodu. Opanowanie składni i podstawowych koncepcji programistycznych w Pythonie nie jest trudne, jednak potem przychodzi moment, aby wypróbować go w prawdziwym programowaniu.
Niniejsza książka nauczy Cię wykorzystywać ten język do rozwiązywania nietrywialnych problemów, z którymi muszą się mierzyć programiści. Książka składa się z czternastu zabawnych i inspirujących projektów, dzięki którym odkryjesz niuanse programowania i nauczysz się pracy z kilkoma bibliotekami Pythona. Co ważniejsze, nauczysz się analizy problemu, dowiesz się, jak opracować algorytm do jego rozwiązania, a następnie jak zaimplementować rozwiązanie. Wykorzystasz Pythona do tworzenia muzyki, symulacji rzeczywistych zjawisk, a także zmusisz do współpracy z płytkami Arduino i Raspberry Pi — a wszystko w ramach świetnej, wciągającej zabawy!
Sprawdź, jak wykorzystać Pythona do:
- generowania spirografowych wzorów,
- tworzenia muzyki na komputerze,
- przekładania obrazów na sztukę ASCII,
- tworzenia realistycznych animacji za pomocą biblioteki OpenGL,
- wizualizacji 3D danych z obrazowania medycznego CT i MRI,
- zbudowania internetowego systemu monitorowania pogody z wykorzystaniem Raspberry Pi.
Python? Spróbuj się z nim pobawić!
Mahesh Venkitachalam jest inżynierem oprogramowania z dwudziestoletnim doświadczeniem w programowaniu. Od lat rozwija aplikacje służące naukowcom do wizualizacji 3D. Pracuje również nad podzespołami elektronicznymi, które udostępnia amatorom elektroniki na zasadach open source. Jest pasjonatem technologii, prowadzi popularny blog o elektronice i programowaniu — electronut.in. Mieszka w Indiach, w Bangalore.
Osoby które kupowały "Python. 14 twórczych projektów dla dociekliwych programistów", wybierały także:
- Arduino. Kurs video. Poziom pierwszy. Podstawowe techniki dla własnych projektów elektronicznych 99,00 zł, (44,55 zł -55%)
- W labiryncie IoT. Budowanie urz 49,90 zł, (24,95 zł -50%)
- Arduino od podstaw 49,90 zł, (24,95 zł -50%)
- TinyML. Wykorzystanie TensorFlow Lite do uczenia maszynowego na Arduino i innych mikrokontrolerach 99,00 zł, (49,50 zł -50%)
- Elektronika i internet rzeczy. Przewodnik dla ludzi z prawdziwą pasją 89,00 zł, (44,50 zł -50%)
Spis treści
Python. 14 twórczych projektów dla dociekliwych programistów eBook -- spis treści
- Podziękowania
- Wprowadzenie
- Dla kogo jest ta książka?
- Jaka jest zawartość książki?
- Część I. Rozgrzewka
- Część II. Symulacja życia
- Część III. Zabawy z obrazami
- Część IV. Grafika 3D
- Część V. Projekty z wykorzystaniem sprzętu
- Dlaczego Python?
- Wersje Pythona
- Kod zamieszczony w książce
- CZĘŚĆ I Rozgrzewka
- 1. Parsowanie list odtwarzania programu iTunes
- Anatomia pliku listy odtwarzania iTunes
- Wymagania
- Kod
- Znajdowanie duplikatów
- Wyodrębnianie duplikatów
- Wyszukiwanie utworów wspólnych dla wielu list odtwarzania
- Gromadzenie danych statystycznych
- Prezentowanie danych
- Opcje wiersza poleceń
- Kompletny kod
- Uruchamianie programu
- Podsumowanie
- Eksperymenty!
- 2. Spirografy
- Równania parametryczne
- Równania spirografu
- Żółwia grafika
- Wymagania
- Kod
- Konstruktor Spiro
- Funkcje konfiguracyjne
- Metoda restart()
- Metoda draw()
- Tworzenie animacji
- Klasa SpiroAnimator
- Metoda genRandomParams()
- Ponowne uruchamianie programu
- Metoda update()
- Wyświetlanie lub ukrywanie kursora
- Zapisywanie krzywych
- Parsowanie argumentów wiersza poleceń i inicjowanie
- Kompletny kod
- Uruchomienie animacji spirografu
- Podsumowanie
- Eksperymenty!
- Równania parametryczne
- CZĘŚĆ II Symulacja życia
- 3. Gra w życie
- Jak to działa?
- Wymagania
- Kod
- Reprezentacja planszy
- Warunki początkowe
- Warunki brzegowe
- Implementacja reguł
- Wysyłanie do programu argumentów wiersza poleceń
- Inicjowanie symulacji
- Kompletny kod
- Uruchamianie symulacji Gry w życie
- Podsumowanie
- Eksperymenty!
- 4. Generowanie tonów harmonicznych za pomocą algorytmu Karplusa-Stronga
- Jak to działa?
- Symulacja
- Tworzenie plików WAV
- Pentatonika molowa
- Wymagania
- Kod
- Implementacja bufora pierścieniowego za pomocą klasy deque
- Implementacja algorytmu Karplusa-Stronga
- Zapisywanie pliku WAV
- Odtwarzanie plików WAV za pomocą modułu pygame
- Metoda main()
- Kompletny kod
- Uruchamianie symulacji szarpanej struny
- Podsumowanie
- Eksperymenty!
- Jak to działa?
- 5. Boidy: symulacja stada
- Jak to działa?
- Wymagania
- Kod
- Obliczanie pozycji i prędkości boidów
- Ustawianie warunków brzegowych
- Rysowanie boida
- Rysowanie ciała i głowy boida
- Aktualizowanie pozycji boida
- Zastosowanie reguł algorytmu stada
- Dodawanie boida
- Rozpraszanie boidów
- Argumenty wiersza poleceń
- Klasa Boids
- Kompletny kod
- Uruchamianie symulacji algorytmu stada
- Podsumowanie
- Eksperymenty!
- CZĘŚĆ III Zabawy z obrazami
- 6. Sztuka ASCII
- Jak to działa?
- Wymagania
- Kod
- Definiowanie poziomów skali szarości oraz siatki
- Obliczanie średniej jasności
- Generowanie zawartości ASCII na podstawie obrazu
- Opcje wiersza poleceń
- Zapisywanie łańcuchów znaków obrazu ASCII w pliku tekstowym
- Kompletny kod
- Uruchamianie generatora sztuki ASCII
- Podsumowanie
- Eksperymenty!
- 7. Fotomozaiki
- Jak to działa?
- Dzielenie obrazu docelowego
- Uśrednianie wartości kolorów
- Dopasowywanie obrazów
- Wymagania
- Kod
- Wczytywanie obrazów kafelków
- Obliczanie średniej wartości koloru obrazów wejściowych
- Dzielenie obrazu docelowego na siatkę
- Wyszukiwanie najlepszego dopasowania dla kafelka
- Tworzenie siatki obrazu
- Tworzenie fotomozaiki
- Dodawanie opcji wiersza poleceń
- Kontrolowanie rozmiaru fotomozaiki
- Kompletny kod
- Uruchamianie generatora fotomozaiki
- Podsumowanie
- Eksperymenty!
- Jak to działa?
- 8. Autostereogramy
- Jak to działa?
- Postrzeganie głębi w autostereogramie
- Mapy głębi
- Wymagania
- Kod
- Powtarzanie danego kafelka
- Tworzenie kafelka z losowych kółeczek
- Tworzenie autostereogramu
- Opcje wiersza poleceń
- Kompletny kod
- Uruchamianie generatora autostereogramu
- Podsumowanie
- Eksperymenty!
- Jak to działa?
- CZĘŚĆ IV Grafika 3D
- 9. Zrozumieć OpenGL
- Tradycyjny OpenGL
- Nowoczesny OpenGL: potok grafiki 3D
- Prymitywy geometryczne
- Transformacje 3D
- Shadery
- Cieniowanie wierzchołkowe
- Cieniowanie pikseli
- Bufory wierzchołków
- Mapowanie tekstury
- Wyświetlanie OpenGL
- Wymagania
- Kod
- Tworzenie okna OpenGL
- Ustawianie wywołań zwrotnych
- Wywołanie zwrotne klawiatury
- Zdarzenie zmiany rozmiaru okna
- Pętla główna
- Klasa Scene
- Definiowanie geometrii 3D
- Definiowanie shaderów GLSL
- Kompletny kod
- Uruchamianie aplikacji OpenGL
- Podsumowanie
- Eksperymenty!
- 10. Systemy cząsteczek
- Jak to działa?
- Modelowanie ruchu cząsteczki
- Ustawianie maksymalnej rozpiętości
- Renderowanie cząstek
- Użycie blendowania OpenGL do tworzenia bardziej realistycznych iskier
- Korzystanie z billboardingu
- Animowanie iskier
- Wymagania
- Kod dla systemu cząsteczek
- Definiowanie geometrii cząsteczek
- Definiowanie tablicy opóźnień czasowych dla cząsteczek
- Ustawianie początkowych prędkości cząsteczek
- Tworzenie cieniowania wierzchołkowego
- Tworzenie cieniowania pikseli
- Renderowanie
- Obliczanie macierzy obrotu dla billboardingu
- Główny kod renderowania
- Klasa Camera
- Kompletny kod systemu cząsteczek
- Kod pudełka
- Kod dla programu głównego
- Aktualizacja cząsteczek w każdym kroku czasowym
- Procedura obsługi klawiatury
- Zarządzanie główną pętlą programu
- Kompletny główny kod programu
- Uruchamianie programu
- Podsumowanie
- Eksperymenty!
- Jak to działa?
- 11. Rendering objętościowy
- Jak to działa?
- Format danych
- Generowanie promieni
- Ray casting w GPU
- Pokazywanie wycinków 2D
- Wyświetlanie okna OpenGL
- Wymagania
- Przegląd kodu projektu
- Generowanie tekstury 3D
- Kompletny kod tekstury 3D
- Generowanie promieni
- Definiowanie geometrii sześcianu kolorów
- Tworzenie obiektu bufora ramek
- Renderowanie tylnych ścian sześcianu
- Renderowanie przednich ścian sześcianu
- Renderowanie całego sześcianu
- Procedura obsługi zmiany rozmiaru okna
- Kompletny kod generowania promieni
- Volume ray casting
- Cieniowanie wierzchołkowe
- Cieniowanie pikseli
- Kompletny kod volume ray casting
- Tworzenie wycinków 2D
- Cieniowanie wierzchołkowe
- Cieniowanie pikseli
- Interfejs użytkownika dla tworzenia wycinków 2D
- Kompletny kod tworzenia wycinków 2D
- Zebranie kodu w całość
- Kompletny kod pliku głównego
- Uruchamianie programu
- Podsumowanie
- Eksperymenty!
- Jak to działa?
- CZĘŚĆ V Projekty z wykorzystaniem sprzętu
- 12. Wprowadzenie do Arduino
- Arduino
- Ekosystem Arduino
- Język
- IDE
- Społeczność
- Peryferia
- Wymagania
- Budowa obwodu czujnika natężenia światła
- Jak działa obwód
- Szkic Arduino
- Tworzenie wykresu w czasie rzeczywistym
- Kod Pythona
- Kompletny kod Pythona
- Uruchamianie programu
- Podsumowanie
- Eksperymenty!
- 13. Laserowy wyświetlacz audio
- Generowanie wzorów za pomocą lasera
- Sterowanie silniczkiem
- Szybka transformata Fouriera
- Wymagania
- Konstruowanie wyświetlacza laserowego
- Wyrównywanie luster
- Zasilanie silniczków
- Podłączanie sterownika silniczków
- Konstruowanie wyświetlacza laserowego
- Szkic Arduino
- Konfigurowanie cyfrowych pinów wyjścia Arduino
- Pętla główna
- Zatrzymywanie silniczków
- Kod Pythona
- Wybór urządzenia audio
- Odczyt danych z urządzenia wejściowego
- Obliczanie FFT strumienia danych
- Uzyskiwanie informacji o częstotliwości z wartości FFT
- Konwersja częstotliwości na prędkości i kierunki obracania się silniczków
- Testowanie ustawień silniczków
- Opcje wiersza poleceń
- Ręczne testowanie
- Kompletny kod Pythona
- Uruchamianie programu
- Podsumowanie
- Eksperymenty!
- Generowanie wzorów za pomocą lasera
- 14. Monitor pogody oparty na Raspberry Pi
- Sprzęt
- Czujnik temperatury i wilgotności DHT11
- Raspberry Pi
- Konfigurowanie Raspberry Pi
- Instalacja i konfiguracja oprogramowania
- System operacyjny
- Wstępna konfiguracja
- Konfiguracja Wi-Fi
- Konfigurowanie środowiska programistycznego
- Podłączenie poprzez SSH
- Framework WWW Bottle
- Tworzenie wykresów za pomocą biblioteki flot
- Wyłączanie Raspberry Pi
- Budowanie sprzętu
- Kod
- Obsługa żądań danych z czujnika
- Tworzenie wykresu danych
- Metoda update()
- Procedura obsługi JavaScript dla diody LED
- Dodawanie interaktywności
- Kompletny kod
- Uruchamianie programu
- Podsumowanie
- Eksperymenty!
- Sprzęt
- DODATKI
- A. Instalacja oprogramowania
- Instalacja kodu źródłowego dla projektów z książki
- Instalacja w systemie Windows
- Instalacja biblioteki GLFW
- Instalacja prekompilowanych plików binarnych dla każdego modułu
- Inne opcje
- Instalacja w systemie OS X
- Instalacja Xcode i MacPorts
- Instalacja modułów
- Instalacja w systemie Linux
- B. Praktyczne podstawy elektroniki
- Typowe komponenty
- Podstawowe narzędzia
- Budowanie obwodów
- Idąc dalej
- C. Raspberry Pi: porady i wskazówki
- Konfigurowanie Wi-Fi
- Sprawdzanie połączenia Raspberry Pi z siecią lokalną
- Zapobieganie wprowadzaniu adaptera Wi-Fi w tryb uśpienia
- Tworzenie kopii zapasowej kodu i danych z Raspberry Pi
- Tworzenie kopii zapasowej całego systemu operacyjnego Raspberry Pi
- Logowanie do Raspberry Pi poprzez SSH
- Korzystanie z kamery Raspberry Pi
- Włączanie obsługi dźwięku na Raspberry Pi
- Zmuszenie Raspberry Pi do mówienia
- Włączanie obsługi HDMI
- Mobilny Raspberry Pi
- Sprawdzanie wersji sprzętowej Raspberry Pi