-
nowość
Python. Nowoczesne programowanie w prostych krokach - ebook
Python. Nowoczesne programowanie w prostych krokach - ebook
Ta książka pokazuje, jak Python krzyżuje się z innymi ważnymi dziedzinami (sztuczną inteligencją, bazami danych, serwerami sieciowymi itd.) w dzisiejszym świecie, który tak szybko się zmienia.
Patrick Viafore, autor książki Robust Python
Opanuj Pythona od podstaw po AI i twórz nowoczesny kod bez tajemnic!
Python to jeden z najpopularniejszych języków programowania na świecie. Jego wszechstronność, czytelność i zgromadzona wokół niego ogromna społeczność sprawiają, że napędza on rewolucję technologiczną od tworzenia nowoczesnych aplikacji webowych, przez analizę danych, aż po rozwój sztucznej inteligencji i uczenia maszynowego. Ta pozycja to idealny przewodnik dla każdego, kto chce wejść do tego fascynującego świata lub uporządkować swoją wiedzę. W dobie błyskawicznie zmieniających się trendów IT solidne opanowanie Pythona to inwestycja, która gwarantuje przewagę na rynku pracy i otwiera drzwi do kariery w najbardziej innowacyjnych projektach.
Książka stanowi kompleksowe, a zarazem przystępne wprowadzenie do programowania w Pythonie. Autor prowadzi czytelnika od absolutnych podstaw takich jak zmienne, typy danych, pętle i funkcje aż po zaawansowane zagadnienia niezbędne w codziennej pracy profesjonalnego programisty. W trzecim wydaniu zaktualizowano wszystkie informacje i dodano zupełnie nowe rozdziały poświęcone sztucznej inteligencji, data science i optymalizacji wydajności kodu. Czytelnik dowie się, jak zarządzać środowiskiem programistycznym, korzystać z relacyjnych i nierelacyjnych baz danych, tworzyć aplikacje sieciowe, a także wdrażać współbieżność. To praktyczny podręcznik, który uczy nie tylko samej składni, ale przede wszystkim pythonicznego sposobu rozwiązywania problemów.
Najważniejsze zagadnienia:
- Podstawy języka: struktury danych, pętle, funkcje i obiekty
- Zarządzanie środowiskiem, testowanie i debugowanie kodu
- Praca z bazami danych (SQL, NoSQL) i plikami
- Tworzenie aplikacji sieciowych i API (między innymi FastAPI, Flask)
- Nowoczesne trendy: sztuczna inteligencja i data science
- Optymalizacja wydajności i współbieżność (asyncio, Mojo)
Spis treści
Wstęp
Część I. Twierdza
- Rozdział 1. Wprowadzenie
- Zagadki
- Kilka małych programów
- Konfiguracja
- Instalacja Pythona
- Aktualizacja Pythona
- Uruchomienie Pythona
- Interaktywny interpreter
- Pliki Pythona
- Wbudowane funkcjonalności Pythona
- Standardowa biblioteka Pythona
- Pakiety zewnętrzne
- Większy program
- Powtórka/zapowiedź
- Rozdział 2. Typy i zmienne
- Komputer
- Bity i bajty
- Wielobajtowe typy danych
- Zmienne
- Przypisywanie wartości do zmiennej
- Zmiana wartości zmiennej
- Usuwanie zmiennych
- Nazwy zmiennych
- Stosowanie konwencji nazewnictwa
- Typy danych
- Określanie wartości
- Obiekty - jak plastikowe pudełka w pamięci
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 3. Liczby
- Typ logiczny
- Typ całkowity
- Literały
- Działania
- Zmienne
- Kolejność działań
- Podstawa systemu liczbowego
- Konwersja typów
- Jak duża może być liczba całkowita?
- Typ zmiennoprzecinkowy
- Typ zmiennoprzecinkowy nie jest dokładny
- Ułamki
- Ułamki dziesiętne
- Funkcje matematyczne
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 4. Ciągi znaków
- Tworzenie ciągu znaków za pomocą cudzysłowów i apostrofów
- Tworzenie ciągu za pomocą funkcji str()
- Ucieczka ze znakiem
- Łączenie ciągów za pomocą znaku +
- Powielanie ciągu za pomocą znaku *
- Wyodrębnianie znaku za pomocą nawiasów [
- Wyodrębnianie fragmentu ciągu za pomocą wycinka
- Określanie długości ciągu za pomocą funkcji len()
- Dzielenie ciągu za pomocą funkcji split()
- Łączenie ciągów za pomocą funkcji join()
- Zastępowanie fragmentów ciągu za pomocą funkcji replace()
- Przedrostki i przyrostki
- Przycinanie ciągu za pomocą funkcji strip()
- Przeszukiwanie i wybieranie ciągów znaków
- Wielkości liter
- Wyrównywanie ciągu znaków
- Formatowanie ciągów znaków
- Formatowanie w starym stylu za pomocą znaku %
- Formatowanie w starym stylu za pomocą znaków {} i funkcji format()
- Najnowszy styl formatowania: f-string
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 5. Struktury bytes i bytearray
- Bajty
- Tworzenie bajtów za pomocą cudzysłowów i apostrofów
- Tworzenie bajtów za pomocą funkcji bytes()
- Tworzenie bajtów z ciągu znaków szesnastkowych
- Dekodowanie i kodowanie bajtów i ciągów znaków
- Przekształcanie w ciąg szesnastkowy
- Odczytanie jednego bajta za pomocą nawiasów kwadratowych
- Wyodrębnianie wycinka
- Łączenie za pomocą znaku +
- Powielanie za pomocą znaku *
- Tablica bajtów
- Tworzenie za pomocą funkcji bytearray()
- Odczytanie jednego bajta za pomocą nawiasów kwadratowych
- Wyodrębnianie kilku bajtów za pomocą wycinka
- Zmiana jednego bajta za pomocą nawiasów kwadratowych
- Zmiana więcej niż jednego bajta za pomocą metody replace()
- Zmiana więcej niż jednego bajta za pomocą wycinka
- Wstawianie bajta za pomocą metody insert()
- Dołączanie jednego bajta za pomocą append()
- Dołączanie więcej niż jednego bajta za pomocą extend()
- Łączenie za pomocą znaku +
- Powielanie za pomocą znaku *
- Powtórka/zapowiedź
- Do zrobienia
- Bajty
- Rozdział 6. If i match
- Komentowanie za pomocą znaku #
- Kontynuacja wiersza za pomocą znaku
- Sprawdzanie za pomocą instrukcji if, elif i else
- Co oznacza True?
- Wielokrotne sprawdzanie za pomocą operatora in
- Nowość: operator walrus
- Instrukcja match
- Proste dopasowania
- Dopasowania strukturalne
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 7. Pętle while i for
- Powtarzanie operacji za pomocą instrukcji while
- Przerywanie pętli za pomocą instrukcji break
- Powrót na początek pętli za pomocą instrukcji continue
- Sprawdzanie przerwania pętli za pomocą instrukcji else
- Iterowanie za pomocą instrukcji for i in
- Przerywanie pętli za pomocą instrukcji break
- Powrót na początek pętli za pomocą instrukcji continue
- Sprawdzanie przerwania pętli za pomocą instrukcji else
- Generowanie sekwencji liczb za pomocą funkcji range()
- Powtórka/zapowiedź
- Do zrobienia
- Powtarzanie operacji za pomocą instrukcji while
- Rozdział 8. Krotki i listy
- Krotki
- Tworzenie krotek za pomocą przecinków i nawiasów
- Tworzenie krotek za pomocą funkcji tuple()
- Odczytywanie elementu za pomocą nawiasów kwadratowych i indeksu
- Łączenie krotek za pomocą znaku +
- Powielanie elementów krotki za pomocą znaku *
- Porównywanie krotek
- Iterowanie krotek za pomocą instrukcji for i in
- Modyfikowanie krotek
- Listy
- Tworzenie list za pomocą nawiasów kwadratowych
- Tworzenie i przekształcanie list za pomocą funkcji list()
- Tworzenie list z ciągów za pomocą funkcji split()
- Odczytywanie elementu listy za pomocą nawiasów kwadratowych i indeksu
- Wyodrębnianie elementów listy za pomocą wycinków
- Dołączanie elementu do listy za pomocą funkcji append()
- Wstawianie elementu wewnątrz listy za pomocą funkcji insert()
- Powielanie elementów listy za pomocą znaku *
- Łączenie list za pomocą funkcji extend() i znaku +
- Modyfikowanie elementu listy za pomocą nawiasów kwadratowych i indeksu
- Modyfikowanie elementów listy za pomocą wycinka
- Usuwanie elementu listy za pomocą instrukcji del i indeksu
- Usuwanie elementu o zadanej wartości za pomocą funkcji remove()
- Odczytywanie i usuwanie elementu listy za pomocą funkcji pop()
- Usuwanie wszystkich elementów listy za pomocą funkcji clear()
- Wyszukiwanie elementu o zadanej wartości za pomocą funkcji index()
- Sprawdzanie zawartości listy za pomocą instrukcji in
- Zliczanie wystąpień wartości za pomocą funkcji count()
- Przekształcanie listy w ciąg znaków za pomocą funkcji join()
- Zmienianie kolejności elementów za pomocą funkcji sort() i sorted()
- Sprawdzanie długości listy za pomocą funkcji len()
- Przypisywanie listy zmiennej za pomocą znaku =
- Kopiowanie listy za pomocą funkcji copy() i list() oraz wycinka
- Kopiowanie zawartości listy za pomocą funkcji deepcopy()
- Porównywanie list
- Iterowanie listy za pomocą instrukcji for i in
- Iterowanie kilku list za pomocą funkcji zip()
- Iterowanie kilku list za pomocą funkcji zip_longest()
- Tworzenie listy za pomocą wyrażenia listowego
- Listy list
- Krotki a listy
- Nie ma wyrażeń krotkowych
- Powtórka/zapowiedź
- Do zrobienia
- Krotki
- Rozdział 9. Słowniki i zbiory
- Słowniki
- Tworzenie słownika za pomocą nawiasów klamrowych
- Tworzenie słownika za pomocą funkcji dict()
- Przekształcanie struktury w słownik za pomocą funkcji dict()
- Dodawanie i zmienianie elementów słownika za pomocą nawiasów kwadratowych i klucza
- Odczytywanie wartości za pomocą nawiasów kwadratowych i klucza oraz funkcji get()
- Iterowanie elementów słownika za pomocą instrukcji for i in
- Odczytywanie długości słownika za pomocą funkcji len()
- Odczytywanie i aktualizacja słowników
- Usuwanie elementu słownika za pomocą instrukcji del i klucza
- Odczytywanie i usuwanie elementu słownika za pomocą funkcji pop()
- Usuwanie wszystkich elementów słownika za pomocą funkcji clear()
- Sprawdzanie dostępności klucza za pomocą instrukcji in
- Przypisywanie wartości za pomocą =
- Kopiowanie słownika za pomocą funkcji copy()
- Kopiowanie zawartości słownika za pomocą funkcji deepcopy()
- Porównywanie słowników
- Wyrażenia słownikowe
- Zbiory
- Tworzenie zbioru za pomocą funkcji set() lub nawiasów klamrowych
- Odczytywanie długości zbioru za pomocą funkcji len()
- Dodawanie elementów do zbioru za pomocą funkcji add()
- Usuwanie elementów zbioru za pomocą funkcji remove()
- Łączenie zbiorów za pomocą |
- Iterowanie zbioru za pomocą instrukcji for i in
- Sprawdzanie dostępności elementu za pomocą instrukcji in
- Kombinacje wartości i operatory
- Wyrażenia zbiorowe
- Tworzenie niemutowalnych zbiorów za pomocą funkcji frozenset()
- Powtórka/zapowiedź
- Do zrobienia
- Słowniki
- Rozdział 10. Funkcje
- Definiowanie funkcji za pomocą instrukcji def
- Wywołanie funkcji z nawiasami
- Argumenty i parametry
- Wartość None jest przydatna
- Argumenty pozycyjne
- Argumenty nazwane
- Domyślne wartości parametrów
- Rozbijanie/zbieranie argumentów pozycyjnych za pomocą znaku *
- Rozbijanie/zbieranie argumentów nazwanych za pomocą znaków **
- Stosowanie wyłącznie argumentów nazwanych (*) i wyłącznie pozycyjnych (/)
- Argumenty mutowalne i niemutowalne
- Komentarze dokumentacyjne
- Funkcje jako typy pierwszoklasowe
- Argumenty funkcji nie są krotkami
- Funkcje wewnętrzne
- Domknięcia
- Funkcje anonimowe: wyrażenia lambda
- Generatory
- Funkcje generatorowe
- Wyrażenia generatorowe
- Dekoratory
- Przestrzenie nazw i zakresy widoczności
- Podwójne znaki podkreślenia w nazwach
- Rekurencja
- Funkcje asynchroniczne - krótkie wprowadzenie
- Wyjątki
- Obsługiwanie wyjątków za pomocą instrukcji try i except
- Instrukcja finally
- Definiowanie własnych wyjątków
- Powtórka/zapowiedź
- Do zrobienia
- Czym jest obiekt?
- Rozdział 11. Obiekty
- Czym jest obiekt?
- Proste obiekty
- Definiowanie klasy
- Atrybuty
- Metody
- Inicjacja obiektu
- Dziedziczenie klas
- Dziedziczenie klasy nadrzędnej
- Nadpisywanie metod
- Dodawanie metod
- Odwołanie do klasy nadrzędnej za pomocą metody super()
- Dziedziczenie wielu klas
- Domieszki
- Argument self
- Dostęp do atrybutów
- Dostęp bezpośredni
- Gettery i settery
- Dostęp do atrybutów za pośrednictwem właściwości
- Właściwości zwracające wyliczane wartości
- Prywatność dzięki modyfikacji nazwy
- Atrybuty klas i obiektów
- Rodzaje metod
- Metody instancji
- Metody klasy
- Metody statyczne
- Kacze typowanie
- Magiczne metody
- Agregowanie i komponowanie klas
- Kiedy stosować obiekty, a kiedy inne struktury?
- Nazwane krotki
- Klasy danych
- Pakiet attrs
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 12. Moduły i pakiety
- Moduły i instrukcja import
- Importowanie modułu
- Importowanie modułu z przemianowaniem
- Importowanie tylko tego, co jest potrzebne
- Pakiety
- Ścieżka wyszukiwania modułów
- Importowanie względne i bezwzględne
- Przestrzenie pakietów
- Moduły a obiekty
- Przydatne rzeczy w standardowej bibliotece Pythona
- Obsługa brakujących kluczy za pomocą funkcji setdefault() i defaultdict()
- Zliczanie elementów za pomocą klasy Counter
- Porządkowanie elementów według klucza za pomocą klasy OrderedDict
- Stos + kolejka == deque
- Iterowanie struktur danych za pomocą modułu itertools
- Wartości losowe
- Więcej narzędzi: zewnętrzny kod
- Powtórka/zapowiedź
- Do zrobienia
- Moduły i instrukcja import
Część II. Środowisko programistyczne
- Rozdział 13. Środowisko programistyczne
- Skąd wziąć kod?
- Instalowanie pakietów
- Program pip
- Menedżer pakietów
- Instalacja plików źródłowych
- Środowiska wirtualne
- Programy virtualenv i venv
- Program pipenv
- Program Poetry
- Program Conda
- Program uv
- Środowiska IDE
- IPython
- Jupyter Notebook
- JupyterLab
- Kontrola wersji kodu
- Mercurial
- Git
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 14. Wskazówki typów i dokumentacja
- Wskazówki typów
- Wskazówki typów dla zmiennych
- Wskazówki typów dla funkcji
- Mypy
- Dokumentacja
- Komentarze
- Komentarze dokumentacyjne
- Pliki tekstowe z językiem znaczników
- Powtórka/zapowiedź
- Do zrobienia
- Wskazówki typów
- Rozdział 15. Testowanie
- Pakiet pylint
- Pakiet ruff
- Pakiet unittest
- Pakiet doctest
- Pakiet pytest
- Przykłady
- Funkcje fixture
- Parametryzacja
- Pakiet Hypothesis
- Program Nox
- Ciągła integracja
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 16. Diagnostyka kodu
- Instrukcja assert
- Funkcja print()
- F-string
- Funkcja pprint()
- Pakiet IceCream
- Dekoratory
- Rejestrowanie komunikatów o błędach
- Moduł pdb
- Funkcja breakpoint()
- Powtórka/zapowiedź
- Do zrobienia
Część III. Pojedynki
- Rozdział 17. Dane tekstowe
- Dane tekstowe - kodowanie Unicode
- Kodowanie Unicode w Pythonie
- Schemat UTF-8
- Kodowanie znaków
- Dekodowanie znaków
- Kody HTML
- Normalizowanie znaków
- Dane tekstowe - wyrażenia regularne
- Wyszukiwanie dokładnego początkowego dopasowania za pomocą funkcji match()
- Wyszukiwanie pierwszego dopasowania za pomocą funkcji search()
- Wyszukiwanie wszystkich dopasowań za pomocą funkcji findall()
- Dzielenie ciągu według dopasowań za pomocą funkcji split()
- Zastępowanie dopasowań za pomocą funkcji sub()
- Wzorce
- Znaki specjalne
- Wzorce: specyfikatory
- Określanie formatu wyniku funkcji
- Powtórka/zapowiedź
- Do zrobienia
- Dane tekstowe - kodowanie Unicode
- Rozdział 18. Dane binarne
- Konwertowanie danych binarnych za pomocą modułu struct
- Inne narzędzia do przetwarzania danych binarnych
- Konwertowanie bajtów i ciągów znaków za pomocą modułu binascii
- Operatory bitowe
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 19. Data i czas
- Rok przestępny
- Moduł datetime
- Moduł time
- Odczytywanie i wyświetlanie daty i czasu
- Wszystkie przekształcenia
- Alternatywne moduły
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 20. Pliki
- Zapisywanie i odczytywanie plików
- Tworzenie i otwieranie plików za pomocą funkcji open()
- Zapisywanie danych tekstowych za pomocą instrukcji print()
- Zapisywanie danych tekstowych za pomocą instrukcji write()
- Odczytywanie pliku tekstowego za pomocą funkcji read(), readline() i readlines()
- Zapisywanie danych binarnych za pomocą funkcji write()
- Odczytywanie danych binarnych za pomocą funkcji read()
- Automatyczne zamykanie pliku za pomocą instrukcji with
- Przesuwanie wskaźnika za pomocą funkcji seek()
- Mapowane pamięci
- Operacje na plikach
- Sprawdzanie dostępności pliku za pomocą funkcji exists()
- Sprawdzanie rodzaju elementu za pomocą funkcji isfile()
- Kopiowanie pliku za pomocą funkcji copy()
- Zmienianie nazwy pliku za pomocą funkcji rename()
- Tworzenie odnośników za pomocą funkcji link() i symlink()
- Zmienianie uprawnień do pliku za pomocą funkcji chmod()
- Zmienianie właściciela pliku za pomocą funkcji chown()
- Usuwanie pliku za pomocą funkcji remove()
- Operacje na katalogach
- Tworzenie katalogu za pomocą funkcji mkdir()
- Usuwanie katalogu za pomocą funkcji rmdir()
- Odczytywanie zawartości katalogu za pomocą funkcji listdir()
- Zmienianie katalogu za pomocą funkcji chdir()
- Wyszukiwanie plików i katalogów za pomocą funkcji glob()
- Nazwy ścieżek
- Uzyskiwanie ścieżki za pomocą funkcji abspath()
- Uzyskiwanie ścieżki na podstawie symbolicznego odnośnika za pomocą funkcji realpath()
- Tworzenie ścieżki za pomocą funkcji os.path.join()
- Moduł pathlib
- Klasy BytesIO i StringIO
- Formaty plików - wykrywanie
- Powtórka/Zapowiedź
- Do zrobienia
- Zapisywanie i odczytywanie plików
- Rozdział 21. Dane w czasie, czyli procesy i współbieżność
- Programy i procesy
- Tworzenie procesu za pomocą modułu subprocess
- Tworzenie procesu za pomocą modułu multiprocessing
- Przerywanie procesu za pomocą funkcji terminate()
- Uzyskiwanie informacji systemowych za pomocą modułu os
- Uzyskiwanie informacji o procesie za pomocą pakietu psutil
- Automatyzacja poleceń
- Pakiet invoke
- Inne przydatne pakiety
- Współbieżność
- Kolejki
- Procesy
- Wątki
- Blokada GIL
- Moduł concurrent.futures
- Zielone wątki i biblioteka gevent
- Moduł twisted
- Biblioteka asyncio
- Koprocedury i pętle zdarzeń
- Alternatywy dla pakietu asyncio
- Asynchroniczność a.
- Asynchroniczne platformy i serwery
- Biblioteka Redis
- Nie tylko kolejki
- Powtórka/zapowiedź
- Do zrobienia
- Programy i procesy
- Rozdział 22. Dane w przestrzeni, czyli sieć
- TCP/IP
- Gniazda sieciowe
- Narzędzie Scapy
- Narzędzie Netcat
- Wzorce komunikacji sieciowej
- Wzorzec "zapytanie-odpowiedź"
- Biblioteka ZeroMQ
- Inne narzędzia do przesyłania komunikatów
- Wzorzec "publikuj-subskrybuj"
- Serwer Redis
- Biblioteka ZeroMQ
- Inne narzędzia typu "publikuj-subskrybuj"
- Usługi internetowe
- Usługa DNS
- Moduły do obsługi poczty e-mail
- Inne protokoły
- Usługi WWW i interfejsy API
- Serializacja danych
- Moduł pickle
- Inne formaty serializacyjne
- Protokół RPC
- Protokół XML-RPC
- Protokół JSON-RPC
- Biblioteka MessagePack RPC
- Biblioteka zerorpc
- Biblioteka gRPC
- Narzędzia do zdalnego zarządzania
- Big Fat Data
- Hadoop
- Spark
- Disco
- Dask
- Chmury
- Amazon Web Services
- Google Cloud
- Microsoft Azure
- OpenStack
- Docker
- Kubernetes
- Powtórka/zapowiedź
- Do zrobienia
- TCP/IP
- Rozdział 23. Dane w pudełku, czyli trwałe zapisywanie
- Płaskie pliki tekstowe
- Tabelaryczne pliki tekstowe
- Format CSV
- Format XML
- Dane XML i bezpieczeństwo systemu
- Format HTML
- Format JSON
- Format YAML
- Format TOML
- Moduł tablib
- Pliki konfiguracyjne
- Pliki binarne
- Dopełniane pliki binarne i mapowanie pamięci
- Arkusze kalkulacyjne
- Format HDF5
- Format TileDB
- Relacyjne bazy danych
- Język SQL
- Interfejs DB-API
- Baza SQLite
- Baza DuckDB
- Baza MySQL
- Baza PostgreSQL
- Biblioteka SQLAlchemy
- Inne pakiety do obsługi baz danych
- Bazy danych NoSQL
- Rodzina formatów dbm
- Baza Memcached
- Baza Redis
- Alternatywa dla Redis - Valkey
- Bazy dokumentowe
- Bazy danych czasowych
- Bazy grafowe
- Inne bazy NoSQL
- Bazy pełnotekstowe
- Wektorowe bazy danych
- Bazy danych geoprzestrzennych
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 24. Sieć WWW
- Podstawy internetu
- Testowanie HTTP
- Testowanie strony za pomocą programu telnet
- Testowanie strony za pomocą programu curl
- Testowanie strony za pomocą programu httpie
- Testowanie strony za pomocą programu httpbin
- Klienci internetowi
- Standardowe biblioteki WWW w Pythonie
- Moduł requests
- Inne klienty internetowe
- Serwery WWW
- Najprostszy serwer WWW
- Interfejs WSGI
- Interfejs ASGI
- Serwer Apache
- Serwer NGINX
- Inne serwery WWW dla języka Python
- Frameworki dla serwerów WWW
- Framework Bottle
- Framework Flask
- Framework Django
- Framework FastAPI
- Litestar
- Frameworki bazodanowe
- Usługi WWW i automatyzacja
- Moduł webbrowser
- Moduł webview
- Interfejsy API i REST
- Protokół WebSockets
- Metoda webhook
- Frontendy webowe
- Biblioteka htmx
- Framework FastHTML
- Surfowanie i drapanie
- Scrapy
- BeautifulSoup
- Moduł requests-html
- Obejrzyjmy film
- Powtórka/zapowiedź
- Do zrobienia
- Rozdział 25. Nauka o danych
- Standardowa biblioteka Pythona
- Konwersja formatów
- Funkcje matematyczne
- Liczby zespolone
- Precyzja obliczeń i moduł decimal
- Działania na ułamkach zwykłych
- Klasa array, czyli spakowana sekwencja wartości
- Prosta statystyka w module statistics
- Mnożenie...
- Standardowa biblioteka Pythona
| Kategoria: | Programowanie |
| Zabezpieczenie: |
Watermark
|
| ISBN: | 978-83-289-4092-5 |
| Rozmiar pliku: | 13 MB |