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%)
- 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%)
- Płytki drukowane (PCB). Nauka i projekty od podstaw 39,90 zł, (19,95 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