Python. Instrukcje dla programisty - ebook
Python. Instrukcje dla programisty - ebook
Pythona można się szybko nauczyć i praktycznie od razu zacząć tworzyć działające gry, aplikacje internetowe czy też programy wspierające badaczy różnych dziedzin nauki. Język ten został pomyślany tak, aby ułatwiał pisanie przejrzystego, zwięzłego kodu w sposób zgodny ze sztuką programowania. To idealny wybór dla każdego, komu zależy, by nie tracić zbytnio czasu na naukę, tylko od razu pisać kod działający zgodnie z oczekiwaniami.
To trzecie, zaktualizowane i uzupełnione wydanie bestsellerowego podręcznika programowania w Pythonie. Naukę rozpoczniesz od podstawowych koncepcji programowania. Poznasz takie pojęcia jak zmienne, listy, klasy i pętle, a następnie utrwalisz je dzięki praktycznym ćwiczeniom. Dowiesz się, jak zapewnić interaktywność programom, i nauczysz się poprawnego testowania kodu przed dodaniem go do projektu. W kolejnych rozdziałach przystąpisz do praktycznej realizacji trzech projektów: gry zręcznościowej inspirowanej klasyczną Space Invaders, wizualizacji danych za pomocą dostępnych dla Pythona niezwykle użytecznych bibliotek i prostej aplikacji internetowej, gotowej do wdrożenia na serwerze WWW i opublikowania w internecie.
Skorzystaj z dokładnych instrukcji, jak:
- przygotować się do napisania pierwszego programu w Pythonie
- używać bibliotek i narzędzi Pythona
- pracować z różnymi zbiorami danych
- tworzyć interaktywne aplikacje internetowe i bezpiecznie je wdrażać
- testować i debugować kod, a także rozwiązywać różne problemy
Poznaj Pythona ... z tym światowym bestsellerem zrobisz to najszybciej!
Spis treści
Wprowadzenie do trzeciego wydania książki
Podziękowania
Wprowadzenie
CZĘŚĆ I. Podstawy
- 1. Rozpoczęcie pracy
- Przygotowanie środowiska programistycznego
- Wersje Pythona
- Wykonanie fragmentu kodu w Pythonie
- Edytor tekstu VS Code
- Python w różnych systemach operacyjnych
- Python w systemie Windows
- Python w systemie macOS
- Python w systemach z rodziny Linux
- Uruchomienie programu typu "Witaj, świecie!"
- Instalacja w VS Code rozszerzenia przeznaczonego do obsługi Pythona
- Uruchomienie programu typu "Witaj, świecie!"
- Rozwiązywanie problemów podczas instalacji
- Uruchamianie programów Pythona z poziomu powłoki
- W systemie Windows
- W systemach macOS i Linux
- Podsumowanie
- Przygotowanie środowiska programistycznego
- 2. Zmienne i proste typy danych
- Co tak naprawdę dzieje się po uruchomieniu hello_world.py?
- Zmienne
- Nadawanie nazw zmiennym i używanie zmiennych
- Unikanie błędów związanych z nazwami podczas używania zmiennych
- Zmienna to etykieta
- Ciągi tekstowe
- Zmiana wielkości liter ciągu tekstowego za pomocą metod
- Używanie zmiennych w ciągach tekstowych
- Dodawanie białych znaków do ciągów tekstowych za pomocą tabulatora i znaku nowego wiersza
- Usunięcie białych znaków
- Usunięcie prefiksu
- Unikanie błędów składni w ciągach tekstowych
- Liczby
- Liczby całkowite
- Liczby zmiennoprzecinkowe
- Liczby całkowite i zmiennoprzecinkowe
- Znaki podkreślenia w liczbach
- Wiele przypisań
- Stałe
- Komentarze
- Jak można utworzyć komentarz?
- Jakiego rodzaju komentarze należy tworzyć?
- Zen Pythona
- Podsumowanie
- 3. Wprowadzenie do list
- Czym jest lista?
- Uzyskanie dostępu do elementów listy
- Numeracja indeksu zaczyna się od 0, a nie od 1
- Użycie poszczególnych wartości listy
- Zmienianie, dodawanie i usuwanie elementów
- Modyfikowanie elementów na liście
- Dodawanie elementów do listy
- Usuwanie elementu z listy
- Organizacja listy
- Trwałe sortowanie listy za pomocą metody sort()
- Tymczasowe sortowanie listy za pomocą funkcji sorted()
- Wyświetlanie listy w odwrotnej kolejności alfabetycznej
- Określenie wielkości listy
- Unikanie błędów indeksu podczas pracy z listą
- Podsumowanie
- Czym jest lista?
- 4. Praca z listą
- Iteracja przez całą listę
- Dokładniejsza analiza pętli
- Wykonanie większej liczby zadań w pętli for
- Wykonywanie operacji po pętli for
- Unikanie błędów związanych z wcięciami
- Brak wcięcia
- Brak wcięcia dodatkowych wierszy
- Niepotrzebne wcięcie
- Niepotrzebne wcięcie po pętli
- Brak dwukropka
- Tworzenie list liczbowych
- Użycie funkcji range()
- Użycie funkcji range() do utworzenia listy liczb
- Proste dane statystyczne dotyczące listy liczb
- Lista składana
- Praca z fragmentami listy
- Wycinek listy
- Iteracja przez wycinek
- Kopiowanie listy
- Krotka
- Definiowanie krotki
- Iteracja przez wszystkie wartości krotki
- Nadpisanie krotki
- Styl tworzonego kodu
- Konwencje stylu
- Wcięcia
- Długość wiersza
- Puste wiersze
- Inne specyfikacje stylu
- Podsumowanie
- Iteracja przez całą listę
- 5. Konstrukcja if
- Prosty przykład
- Test warunkowy
- Sprawdzenie równości
- Ignorowanie wielkości liter podczas sprawdzania równości
- Sprawdzenie nierówności
- Porównania liczbowe
- Sprawdzanie wielu warunków
- Sprawdzanie, czy wartość znajduje się na liście
- Sprawdzanie, czy wartość nie znajduje się na liście
- Wyrażenie boolowskie
- Polecenie if
- Proste polecenia if
- Polecenia if-else
- Konstrukcja if-elif-else
- Użycie wielu bloków elif
- Pominięcie bloku else
- Sprawdzanie wielu warunków
- Używanie poleceń if z listami
- Sprawdzanie pod kątem wartości specjalnych
- Sprawdzanie, czy lista nie jest pusta
- Użycie wielu list
- Nadawanie stylu poleceniom if
- Podsumowanie
- 6. Słowniki
- Prosty słownik
- Praca ze słownikami
- Uzyskiwanie dostępu do wartości słownika
- Dodanie nowej pary klucz-wartość
- Rozpoczęcie pracy od pustego słownika
- Modyfikowanie wartości słownika
- Usuwanie pary klucz-wartość
- Słownik podobnych obiektów
- Używanie metody get() w celu uzyskania dostępu do wartości
- Iteracja przez słownik
- Iteracja przez wszystkie pary klucz-wartość
- Iteracja przez wszystkie klucze słownika
- Iteracja przez uporządkowane klucze słownika
- Iteracja przez wszystkie wartości słownika
- Zagnieżdżanie
- Lista słowników
- Lista w słowniku
- Słownik w słowniku
- Podsumowanie
- 7. Dane wejściowe użytkownika i pętla while
- Jak działa funkcja input()?
- Przygotowanie jasnych i zrozumiałych komunikatów
- Użycie funkcji int() do akceptowania liczbowych danych wejściowych
- Operator modulo
- Wprowadzenie do pętli while
- Pętla while w działaniu
- Umożliwienie użytkownikowi podjęcia decyzji o zakończeniu działania programu
- Użycie flagi
- Użycie polecenia break do opuszczenia pętli
- Użycie polecenia continue w pętli
- Unikanie pętli działającej w nieskończoność
- Użycie pętli while wraz z listami i słownikami
- Przenoszenie elementów z jednej listy na drugą
- Usuwanie z listy wszystkich egzemplarzy określonej wartości
- Umieszczenie w słowniku danych wejściowych wprowadzonych przez użytkownika
- Podsumowanie
- Jak działa funkcja input()?
- 8. Funkcje
- Definiowanie funkcji
- Przekazywanie informacji do funkcji
- Argumenty i parametry
- Przekazywanie argumentów
- Argumenty pozycyjne
- Argumenty w postaci słów kluczowych
- Wartości domyślne
- Odpowiedniki wywołań funkcji
- Unikanie błędów związanych z argumentami
- Wartość zwrotna
- Zwrot prostej wartości
- Definiowanie argumentu jako opcjonalnego
- Zwrot słownika
- Używanie funkcji wraz z pętlą while
- Przekazywanie listy
- Modyfikowanie listy w funkcji
- Uniemożliwianie modyfikowania listy przez funkcję
- Przekazywanie dowolnej liczby argumentów
- Argumenty pozycyjne i przekazywanie dowolnej liczby argumentów
- Używanie dowolnej liczby argumentów w postaci słów kluczowych
- Przechowywanie funkcji w modułach
- Import całego modułu
- Import określonych funkcji
- Użycie słowa kluczowego as w celu zdefiniowania aliasu funkcji
- Użycie słowa kluczowego as w celu zdefiniowania aliasu modułu
- Import wszystkich funkcji modułu
- Nadawanie stylu funkcjom
- Podsumowanie
- Definiowanie funkcji
- 9. Klasy
- Utworzenie i użycie klasy
- Utworzenie klasy Dog
- Metoda __init__()
- Utworzenie egzemplarza na podstawie klasy
- Praca z klasami i egzemplarzami
- Klasa Car
- Przypisanie atrybutowi wartości domyślnej
- Modyfikacja wartości atrybutu
- Dziedziczenie
- Metoda __init__() w klasie potomnej
- Definiowanie atrybutów i metod dla klasy potomnej
- Nadpisywanie metod klasy nadrzędnej
- Egzemplarz jako atrybut
- Modelowanie rzeczywistych obiektów
- Import klas
- Import pojedynczej klasy
- Przechowywanie wielu klas w module
- Import wielu klas z modułu
- Import całego modułu
- Import wszystkich klas z modułu
- Import modułu w module
- Używanie aliasów
- Określenie swojego sposobu pracy
- Biblioteka standardowa Pythona
- Nadawanie stylu klasom
- Podsumowanie
- Utworzenie i użycie klasy
- 10. Pliki i wyjątki
- Odczytywanie danych z pliku
- Wczytywanie całego pliku
- Względna i bezwzględna ścieżka dostępu do pliku
- Odczytywanie wiersz po wierszu
- Praca z zawartością pliku
- Ogromne pliki, czyli na przykład milion cyfr
- Czy data Twoich urodzin znajduje się w liczbie pi?
- Zapisywanie danych w pliku
- Zapisywanie pojedynczego wiersza
- Zapisywanie wielu wierszy
- Wyjątki
- Obsługiwanie wyjątku ZeroDivisionError
- Używanie bloku try-except
- Używanie wyjątków w celu uniknięcia awarii programu
- Blok else
- Obsługa wyjątku FileNotFoundError
- Analiza tekstu
- Praca z wieloma plikami
- Ciche niepowodzenie
- Które błędy należy zgłaszać?
- Przechowywanie danych
- Używanie json.dumps() i json.loads()
- Zapisywanie i odczytywanie danych wygenerowanych przez użytkownika
- Refaktoryzacja
- Podsumowanie
- Odczytywanie danych z pliku
- 11. Testowanie kodu
- Instalowanie pytest za pomocą pip
- Uaktualnianie pip
- Instalowanie pytest
- Testowanie funkcji
- Test jednostkowy i zestaw testów
- Zaliczenie testu
- Wykonywanie testu
- Niezaliczenie testu
- Reakcja na niezaliczony test
- Dodanie nowego testu
- Testowanie klasy
- Różne rodzaje metod asercji
- Klasa do przetestowania
- Testowanie klasy AnonymousSurvey
- Używanie danych testowych
- Podsumowanie
- Instalowanie pytest za pomocą pip
CZĘŚĆ II. Projekty
- 12. Statek, który strzela pociskami
- Planowanie projektu
- Instalacja Pygame
- Rozpoczęcie pracy nad projektem gry
- Utworzenie okna Pygame i reagowanie na działania użytkownika
- Określenie liczby klatek na sekundę
- Zdefiniowanie koloru tła
- Utworzenie klasy ustawień
- Dodanie obrazu statku kosmicznego
- Utworzenie klasy statku kosmicznego
- Wyświetlenie statku kosmicznego na ekranie
- Refaktoryzacja, czyli metody _check_events() i _update_screen()
- Metoda _check_events()
- Metoda _update_screen()
- Kierowanie statkiem kosmicznym
- Reakcja na naciśnięcie klawisza
- Umożliwienie nieustannego ruchu
- Poruszanie statkiem w obu kierunkach
- Dostosowanie szybkości statku
- Ograniczenie zasięgu poruszania się statku
- Refaktoryzacja metody _check_events()
- Naciśnięcie klawisza Q w celu zakończenia gry
- Uruchamianie gry w trybie pełnoekranowym
- Krótkie powtórzenie
- alien_invasion.py
- settings.py
- ship.py
- Wystrzeliwanie pocisków
- Dodawanie ustawień dotyczących pocisków
- Utworzenie klasy Bullet
- Przechowywanie pocisków w grupie
- Wystrzeliwanie pocisków
- Usuwanie niewidocznych pocisków
- Ograniczenie liczby pocisków
- Utworzenie metody _update_bullets()
- Podsumowanie
- 13. Obcy!
- Przegląd projektu
- Utworzenie pierwszego obcego
- Utworzenie klasy Alien
- Utworzenie egzemplarza obcego
- Utworzenie floty obcych
- Utworzenie rzędów obcych
- Refaktoryzacja metody _create_fleet()
- Dodawanie rzędów
- Poruszanie flotą obcych
- Przesunięcie obcych w prawo
- Zdefiniowanie ustawień dla kierunku poruszania się floty
- Sprawdzenie, czy obcy dotarł do krawędzi ekranu
- Przesunięcie floty w dół i zmiana kierunku
- Zestrzeliwanie obcych
- Wykrywanie kolizji z pociskiem
- Utworzenie większych pocisków w celach testowych
- Ponowne utworzenie floty
- Zwiększenie szybkości pocisku
- Refaktoryzacja metody _update_bullets()
- Zakończenie gry
- Wykrywanie kolizji między obcym i statkiem
- Reakcja na kolizję między obcym i statkiem
- Obcy, który dociera do dolnej krawędzi ekranu
- Koniec gry!
- Ustalenie, które komponenty gry powinny być uruchomione
- Podsumowanie
- 14. Punktacja
- Dodanie przycisku Gra
- Utworzenie klasy Button
- Wyświetlenie przycisku na ekranie
- Uruchomienie gry
- Zerowanie gry
- Dezaktywacja przycisku Gra
- Ukrycie kursora myszy
- Zmiana poziomu trudności
- Zmiana ustawień dotyczących szybkości
- Wyzerowanie szybkości
- Punktacja
- Wyświetlanie punktacji
- Utworzenie tablicy wyników
- Uaktualnienie punktacji po zestrzeleniu obcego
- Zerowanie wyniku
- Zagwarantowanie uwzględnienia wszystkich trafień
- Zwiększenie liczby zdobywanych punktów
- Zaokrąglanie punktacji
- Najlepsze wyniki
- Wyświetlenie aktualnego poziomu gry
- Wyświetlenie liczby statków
- Podsumowanie
- Dodanie przycisku Gra
- 15. Generowanie danych
- Instalacja matplotlib
- Wygenerowanie prostego wykresu liniowego
- Zmienianie etykiety i grubości wykresu
- Poprawianie wykresu
- Używanie wbudowanych stylów
- Używanie funkcji scatter() do wyświetlania poszczególnych punktów i nadawania im stylu
- Wyświetlanie serii punktów za pomocą funkcji scatter()
- Automatyczne obliczanie danych
- Dostosowanie znaczników osi do własnych potrzeb
- Definiowanie własnych kolorów
- Użycie mapy kolorów
- Automatyczny zapis wykresu
- Błądzenie losowe
- Utworzenie klasy RandomWalk
- Wybór kierunku
- Wyświetlenie wykresu błądzenia losowego
- Wygenerowanie wielu błądzeń losowych
- Nadawanie stylu danym wygenerowanym przez błądzenie losowe
- Symulacja rzutu kością do gry za pomocą plotly
- Instalacja plotly
- Utworzenie klasy Die
- Rzut kością do gry
- Analiza wyników
- Utworzenie histogramu
- Dostosowanie wykresu do własnych potrzeb
- Rzut dwiema kośćmi
- Dalsze dostosowanie wykresu do własnych potrzeb
- Rzut kośćmi o różnej liczbie ścianek
- Zapisywanie wykresu
- Podsumowanie
- 16. Pobieranie danych
- Format CSV
- Przetwarzanie nagłówków pliku CSV
- Wyświetlanie nagłówków i ich położenia
- Wyodrębnienie i odczytanie danych
- Wyświetlenie danych na wykresie temperatury
- Moduł datetime
- Wyświetlanie daty
- Wyświetlenie dłuższego przedziału czasu
- Wyświetlenie drugiej serii danych
- Nakładanie cienia na wykresie
- Sprawdzenie pod kątem błędów
- Samodzielne pobieranie danych
- Mapowanie globalnych zbiorów danych - format GeoJSON
- Pobranie danych dotyczących trzęsień ziemi
- Analiza danych GeoJSON
- Utworzenie listy trzęsień ziemi
- Wyodrębnienie siły trzęsienia ziemi
- Wyodrębnienie danych o miejscu wystąpienia trzęsienia ziemi
- Budowanie mapy świata
- Przedstawienie siły trzęsienia ziemi
- Dostosowanie koloru punktu
- Inne skale kolorów
- Dodanie tekstu wyświetlanego po wskazaniu punktu na mapie
- Podsumowanie
- Format CSV
- 17. Praca z API
- Użycie API
- Git i GitHub
- Żądanie danych za pomocą wywołania API
- Instalacja requests
- Przetworzenie odpowiedzi API
- Praca ze słownikiem odpowiedzi
- Podsumowanie repozytoriów najczęściej oznaczanych gwiazdką
- Monitorowanie ograniczeń liczby wywołań API
- Wizualizacja repozytoriów za pomocą pakietu plotly
- Nadawanie stylu wykresowi
- Dodanie własnych podpowiedzi
- Dodawanie łączy do wykresu
- Dostosowanie kolorów znaczników do własnych potrzeb
- Więcej o plotly i API GitHub
- Hacker News API
- Podsumowanie
- Użycie API
- 18. Rozpoczęcie pracy z Django
- Przygotowanie projektu
- Opracowanie specyfikacji
- Utworzenie środowiska wirtualnego
- Aktywacja środowiska wirtualnego
- Instalacja frameworka Django
- Utworzenie projektu w Django
- Utworzenie bazy danych
- Przegląd projektu
- Uruchomienie aplikacji
- Definiowanie modeli
- Aktywacja modeli
- Witryna administracyjna Django
- Zdefiniowanie modelu Entry
- Migracja modelu Entry
- Rejestracja modelu Entry w witrynie administracyjnej
- Powłoka Django
- Tworzenie stron internetowych - strona główna aplikacji
- Mapowanie adresu URL
- Utworzenie widoku
- Utworzenie szablonu
- Utworzenie dodatkowych stron
- Dziedziczenie szablonu
- Strona tematów
- Strony poszczególnych tematów
- Podsumowanie
- Przygotowanie projektu
- 19. Konta użytkowników
- Umożliwienie użytkownikom wprowadzania danych
- Dodawanie nowego tematu
- Dodawanie nowych wpisów
- Edycja wpisu
- Konfiguracja kont użytkowników
- Aplikacja accounts
- Strona logowania
- Wylogowanie
- Strona rejestracji użytkownika
- Umożliwienie użytkownikom bycia właścicielami swoich danych
- Ograniczenie dostępu za pomocą dekoratora @login_required
- Powiązanie danych z określonymi użytkownikami
- Przyznanie dostępu jedynie odpowiednim użytkownikom
- Ochrona tematów użytkownika
- Ochrona strony edit_entry
- Powiązanie nowego tematu z bieżącym użytkownikiem
- Podsumowanie
- Umożliwienie użytkownikom wprowadzania danych
- 20. Nadanie stylu i wdrożenie aplikacji
- Nadanie stylu aplikacji Learning Log
- Aplikacja django-bootstrap5
- Użycie Bootstrapa do nadania stylu aplikacji Learning Log
- Modyfikacja pliku base.html
- Użycie elementu Jumbotron do nadania stylu stronie głównej
- Nadanie stylu stronie logowania
- Nadanie stylu stronie tematów
- Nadanie stylów wpisom na stronie tematu
- Wdrożenie aplikacji Learning Log
- Utworzenie konta w Platform.sh
- Instalacja Platform.sh CLI
- Instalacja platformshconfig
- Utworzenie pliku requirements.txt
- Dodatkowe wymagania dotyczące wdrożenia
- Dodawanie plików konfiguracyjnych
- Modyfikacja pliku settings.py dla Platform.sh
- Użycie Gita do monitorowania plików projektu
- Utworzenie projektu w Platform.sh
- Przekazanie projektu do Platform.sh
- Wyświetlenie wdrożonego projektu
- Dopracowanie wdrożenia projektu w Platform.sh
- Utworzenie własnych stron błędu
- Nieustanna rozbudowa
- Usunięcie projektu z Platform.sh
- Podsumowanie
- Nadanie stylu aplikacji Learning Log
- A. Instalacja Pythona i rozwiązywanie problemów
- Python w Windows
- Użycie polecenia py zamiast python
- Ponowna instalacja Pythona
- Python w systemie macOS
- Przypadkowa instalacja wersji dostarczanej przez Apple
- Python 2 w starszych wydaniach systemu macOS
- Python w systemie Linux
- Używanie domyślnej instalacji Pythona
- Instalacja najnowszej wersji Pythona
- Sprawdzenie aktualnie używanej wersji Pythona
- Słowa kluczowe Pythona i wbudowane funkcje
- Słowa kluczowe Pythona
- Wbudowane funkcje Pythona
- Python w Windows
- B. Edytory tekstu i środowiska IDE
- Efektywna praca z VS Code
- Konfigurowanie VS Code
- Wybrane skróty klawiszowe VS Code
- Inne edytory tekstu i środowiska IDE
- IDLE
- Geany
- Sublime Text
- Emacs i vim
- PyCharm
- Notatniki Jupyter Notebooks
- Efektywna praca z VS Code
- C. Uzyskiwanie pomocy
- Pierwsze kroki
- Spróbuj jeszcze raz
- Chwila odpoczynku
- Korzystaj z zasobów tej książki
- Wyszukiwanie informacji w internecie
- Stack Overflow
- Oficjalna dokumentacja Pythona
- Oficjalna dokumentacja biblioteki
- r/learnpython
- Posty na blogach
- Discord
- Slack
- Pierwsze kroki
- D. Używanie Gita do kontroli wersji
- Instalacja Gita
- Konfiguracja Gita
- Tworzenie projektu
- Ignorowanie plików
- Inicjalizacja repozytorium
- Sprawdzanie stanu
- Dodawanie plików do repozytorium
- Zatwierdzanie plików
- Sprawdzanie dziennika projektu
- Drugie zatwierdzenie
- Przywracanie stanu projektu
- Przywracanie projektu do poprzedniego stanu
- Usuwanie repozytorium
- Instalacja Gita
- E. Rozwiązywanie problemów z wdrożeniami
- Jak wygląda proces wdrażania?
- Podstawy rozwiązywania problemów
- Kierowanie się podpowiedziami wyświetlanymi na ekranie
- Odczytywanie danych wyjściowych dzienników zdarzeń
- Rozwiązywanie problemów dotyczących konkretnego systemu operacyjnego
- Wdrażanie z poziomu systemu Windows
- Wdrażanie z poziomu systemu macOS
- Wdrażanie z poziomu systemu Linux
- Inne podejścia w zakresie wdrożenia
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-289-0431-6 |
Rozmiar pliku: | 6,4 MB |