Категорії
Електронні книги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комп'ютер в офісі
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Мультимедійне навчання
- Нерухомість
- Переконання та НЛП
- Податки
- Соціальна політика
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Звіти, аналізи
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Електронна преса
- Architektura i wnętrza
- Безпека життєдіяльності
- Biznes i Ekonomia
- Будинок та сад
- Електронний бізнес
- Ekonomia i finanse
- Езотерика
- Фінанси
- Особисті фінанси
- Бізнес
- Фотографія
- Інформатика
- Відділ кадрів та оплата праці
- Для жінок
- Комп'ютери, Excel
- Бухгалтерія
- Культура та література
- Наукові та академічні
- Охорона навколишнього середовища
- Впливові
- Освіта
- Податки
- Подорожі
- Психологія
- Релігія
- Сільське господарство
- Ринок книг і преси
- Транспорт та спедиція
- Здоров'я та краса
-
Історія
-
Інформатика
- Офісні застосунки
- Бази даних
- Біоінформатика
- Бізнес ІТ
- CAD/CAM
- Digital Lifestyle
- DTP
- Електроніка
- Цифрова фотографія
- Комп'ютерна графіка
- Ігри
- Хакування
- Hardware
- IT w ekonomii
- Наукові пакети
- Шкільні підручники
- Основи комп'ютера
- Програмування
- Мобільне програмування
- Інтернет-сервери
- Комп'ютерні мережі
- Стартап
- Операційні системи
- Штучний інтелект
- Технологія для дітей
- Вебмайстерність
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Оповідна поезія
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Шкільні підручники
-
Науково-популярна та академічна
- Археологія
- Bibliotekoznawstwo
- Кінознавство / Теорія кіно
- Філологія
- Польська філологія
- Філософія
- Finanse i bankowość
- Географія
- Економіка
- Торгівля. Світова економіка
- Історія та археологія
- Історія мистецтва і архітектури
- Культурологія
- Мовознавство
- літературні студії
- Логістика
- Математика
- Ліки
- Гуманітарні науки
- Педагогіка
- Навчальні засоби
- Науково-популярна
- Інше
- Психологія
- Соціологія
- Театральні студії
- Богослов’я
- Економічні теорії та науки
- Transport i spedycja
- Фізичне виховання
- Zarządzanie i marketing
-
Порадники
-
Ігрові посібники
-
Професійні та спеціальні порадники
-
Юридична
- Безпека життєдіяльності
- Історія
- Дорожній кодекс. Водійські права
- Юридичні науки
- Охорона здоров'я
- Загальне, компендіум
- Академічні підручники
- Інше
- Закон про будівництво і житло
- Цивільне право
- Фінансове право
- Господарське право
- Господарське та комерційне право
- Кримінальний закон
- Кримінальне право. Кримінальні злочини. Кримінологія
- Міжнародне право
- Міжнародне та іноземне право
- Закон про охорону здоров'я
- Закон про освіту
- Податкове право
- Трудове право та законодавство про соціальне забезпечення
- Громадське, конституційне та адміністративне право
- Кодекс про шлюб і сім'ю
- Аграрне право
- Соціальне право, трудове право
- Законодавство Євросоюзу
- Промисловість
- Сільське господарство та захист навколишнього середовища
- Словники та енциклопедії
- Державні закупівлі
- Управління
-
Путівники та подорожі
- Африка
- Альбоми
- Південна Америка
- Центральна та Північна Америка
- Австралія, Нова Зеландія, Океанія
- Австрія
- Азії
- Балкани
- Близький Схід
- Болгарія
- Китай
- Хорватія
- Чеська Республіка
- Данія
- Єгипет
- Естонія
- Європа
- Франція
- Гори
- Греція
- Іспанія
- Нідерланди
- Ісландія
- Литва
- Латвія
- Mapy, Plany miast, Atlasy
- Мініпутівники
- Німеччина
- Норвегія
- Активні подорожі
- Польща
- Португалія
- Інше
- Przewodniki po hotelach i restauracjach
- Росія
- Румунія
- Словаччина
- Словенія
- Швейцарія
- Швеція
- Світ
- Туреччина
- Україна
- Угорщина
- Велика Британія
- Італія
-
Психологія
- Філософія життя
- Kompetencje psychospołeczne
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Аудіокниги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Нерухомість
- Переконання та НЛП
- Податки
- Соціальна політика
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Електронна преса
-
Історія
-
Інформатика
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Науково-популярна та академічна
-
Порадники
-
Професійні та спеціальні порадники
-
Юридична
-
Путівники та подорожі
-
Психологія
- Філософія життя
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Відеокурси
-
Бази даних
-
Big Data
-
Biznes, ekonomia i marketing
-
Кібербезпека
-
Data Science
-
DevOps
-
Для дітей
-
Електроніка
-
Графіка / Відео / CAX
-
Ігри
-
Microsoft Office
-
Інструменти розробки
-
Програмування
-
Особистісний розвиток
-
Комп'ютерні мережі
-
Операційні системи
-
Тестування програмного забезпечення
-
Мобільні пристрої
-
UX/UI
-
Веброзробка, Web development
-
Управління
Подкасти
- Електронні книги
- Програмування
- Python
- Efektywny Python. 125 sposobów na lepszy kod. Wydanie III
Деталі електронної книги

Python cieszy się dużym uznaniem. Jest wszechstronny i efektywny, a przy tym konsekwentnie rozwijany. Język ten ma również wiele trudniejszych do uchwycenia zalet. Aby uzyskać imponujące efekty wydajności kodu, jego wieloplatformowość i bezpieczeństwo, a przy tym w pełni korzystać z możliwości Pythona, potrzebujesz czegoś więcej niż tylko znajomość jego składni.
To trzecie, zaktualizowane i uzupełnione wydanie lubianego podręcznika programowania w Pythonie. Zawiera dodatkowe rozdziały dotyczące tak ważnych zagadnień jak algorytmy i struktury danych. Zawarty w książce materiał, w tym słowniki , ułatwi Ci tworzenie solidnego i wydajnego kodu. Znajdziesz tu jasne, zwięzłe i praktyczne rady przeznaczone dla programistów na różnym poziomie zaawansowania. Niezależnie od tego, czy tworzysz aplikacje internetowe, analizujesz dane, czy trenujesz modele sztucznej inteligencji, dzięki temu podręcznikowi zdobędziesz cenne umiejętności pracy z Pythonem!
W książce:
- 125 gotowych do użycia sposobów na lepszy kod
- uaktualnione najlepsze praktyki, uwzględniające nowości w Pythonie do wersji 3.13
- dodatkowe rozdziały poświęcone tworzeniu niezawodnych, wysoko wydajnych programów
- tworzenie modułów rozszerzeń w języku C
- współpraca z natywnymi bibliotekami współdzielonymi
- praktyczne przykłady kodu odzwierciedlające najlepsze praktyki
Programujesz w Pythonie? Poznaj 125 sposobów na lepszy kod!
Podziękowania
O autorze
Rozdział 1. Programowanie zgodne z duchem Pythona
- Sposób 1. Ustalenie używanej wersji Pythona
- Sposób 2. Stosuj styl PEP 8
- Sposób 3. Nigdy nie oczekuj, że Python wykryje błędy podczas kompilacji
- Sposób 4. Decyduj się na funkcje pomocnicze zamiast na skomplikowane wyrażenia
- Sposób 5. Zamiast indeksowania wybieraj rozpakowanie wielu operacji przypisania
- Sposób 6. Krotkę jednoelementową zawsze umieszczaj w nawiasie
- Sposób 7. W prostej logice osadzonej używaj wyrażeń warunkowych
- Sposób 8. Unikaj powtórzeń w wyrażeniach przypisania
- Sposób 9. Stosuj polecenie match w celu destrukturyzacji kontroli przepływu, ale unikaj go, gdy wystarczające będzie polecenie if
Rozdział 2. Ciągi tekstowe i wycinki
- Sposób 10. Różnice między typami bytes i str
- Sposób 11. Wybieraj interpolowane ciągi tekstowe f zamiast ciągów tekstowych formatowania w stylu C i funkcji str.format()
- Sposób 12. Różnice między wywołaniami repr i str podczas wyświetlania obiektów
- Sposób 13. Wybieraj jawną konkatenację ciągu tekstowego zamiast niejawnej, zwłaszcza w przypadku listy
- Sposób 14. Umiejętnie podziel sekwencje
- Sposób 15. Unikaj użycia indeksów początek, koniec i wartości kroku w pojedynczej operacji podziału
- Sposób 16. Wybieraj rozpakowanie typu catch-all zamiast tworzenia wycinków
Rozdział 3. Pętle i iteratory
- Sposób 17. Preferuj użycie funkcji enumerate() zamiast range()
- Sposób 18. Używaj funkcji zip() do równoczesnego przetwarzania iteratorów
- Sposób 19. Unikaj bloków else po pętlach for i while
- Sposób 20. Nigdy nie używaj zmiennych pętli for po zakończeniu jej działania
- Sposób 21. Podczas iteracji przez argumenty zachowuj postawę defensywną
- Sposób 22. Nigdy nie modyfikuj kontenerów podczas iteracji przez nie, lecz skorzystaj z kopii lub pamięci podręcznej
- Sposób 23. Przekazuj iteratory do wywołań any() i all() w celu skrócenia logiki
- Sposób 24. Rozważ stosowanie modułu itertools w pracy z iteratorami i generatorami
Rozdział 4. Słowniki
- Sposób 25. Zachowaj ostrożność, gdy polegasz na kolejności wstawiania elementów do obiektu typu dict
- Sposób 26. Podczas obsługi brakujących kluczy słownika wybieraj funkcję get() zamiast operatora in i wyjątku KeyError
- Sposób 27. Podczas obsługi brakujących elementów w wewnętrznym stanie wybieraj typ defaultdict zamiast metody setdefault()
- Sposób 28. Wykorzystaj metodę __missing__() do tworzenia wartości domyślnych w zależności od klucza
- Sposób 29. Twórz klasy, zamiast zagnieżdżać wiele poziomów słowników, list i krotek
Rozdział 5. Funkcje
- Sposób 30. Ustal, kiedy argumenty funkcji mogą być zmienione
- Sposób 31. Zwróć obiekt, gdy funkcja ma rozpakować więcej niż trzy zmienne
- Sposób 32. Preferuj wyjątki zamiast zwrotu wartości None
- Sposób 33. Zobacz, jak domknięcia współdziałają z zakresem zmiennej
- Sposób 34. Zmniejszenie wizualnego zagmatwania za pomocą zmiennej liczby argumentów pozycyjnych
- Sposób 35. Zdefiniowanie zachowania opcjonalnego za pomocą argumentów w postaci słów kluczowych
- Sposób 36. Użycie None i docstring w celu dynamicznego określenia argumentów domyślnych
- Sposób 37. Wymuszaj czytelność kodu za pomocą argumentów w postaci słów kluczowych i argumentów jedynie pozycyjnych
- Sposób 38. Dekoratory funkcji definiuj za pomocą functools.wraps
- Sposób 39. Podczas łączenia funkcji preferuj functools.partial zamiast wyrażeń lambda
Rozdział 6. Konstrukcje składane i generatory
- Sposób 40. Używaj list składanych zamiast funkcji map() i filter()
- Sposób 41. Unikaj więcej niż dwóch wyrażeń na liście składanej
- Sposób 42. Stosuj wyrażenia przypisania, aby unikać powielania zadań w konstrukcjach składanych
- Sposób 43. Rozważ użycie generatorów, zamiast zwracać listy
- Sposób 44. Rozważ użycie generatora wyrażeń dla dużych list składanych
- Sposób 45. Twórz wiele generatorów za pomocą wyrażenia yield from
- Sposób 46. Iteratory przekazuj generatorom jako argumenty zamiast za pomocą metody send()
- Sposób 47. Przejścia między stanami obsługuj za pomocą klasy, zamiast używać metody throw()
Rozdział 7. Klasy i interfejsy
- Sposób 48. Dla prostych interfejsów akceptuj funkcje zamiast klas
- Sposób 49. Wybieraj zorientowany obiektowo polimorfizm zamiast funkcji z wywołaniami isinstance()
- Sposób 50. W stylu programowania funkcyjnego używaj functools.singledispatch zamiast polimorfizmu zorientowanego obiektowo
- Sposób 51. Używaj typu dataclasses zamiast lekkich klas
- Sposób 52. Użycie polimorfizmu @classmethod w celu ogólnego tworzenia obiektów
- Sposób 53. Inicjalizacja klasy nadrzędnej za pomocą wywołania super()
- Sposób 54. Rozważ łączenie funkcjonalności za pomocą klas domieszek
- Sposób 55. Preferuj atrybuty publiczne zamiast prywatnych
- Sposób 56. Wybieraj moduł dataclasses, zamiast tworzyć niemodyfikowalne obiekty
- Sposób 57. Stosuj dziedziczenie po collections.abc w kontenerach typów niestandardowych
Rozdział 8. Metaklasy i atrybuty
- Sposób 58. Używaj zwykłych atrybutów zamiast metod typu getter i setter
- Sposób 59. Rozważ użycie @property zamiast refaktoryzacji atrybutów
- Sposób 60. Stosuj deskryptory, aby wielokrotnie wykorzystywać metody udekorowane przez @property
- Sposób 61. Używaj metod __getattr__(), __getattribute__() i __setattr__() dla opóźnionych atrybutów
- Sposób 62. Sprawdzaj podklasy za pomocą __init_subclass__
- Sposób 63. Rejestruj istniejące klasy za pomocą __init_subclass__()
- Sposób 64. Adnotacje atrybutów klas dodawaj za pomocą metody __set_name__()
- Sposób 65. Przemyśl kolejność definicji klasy, aby zdefiniować powiązania między atrybutami
- Sposób 66. Dla złożonych rozszerzeń klas wybieraj dekoratory klas zamiast metaklas
Rozdział 9. Współbieżność i równoległość
- Sposób 67. Używaj modułu subprocess do zarządzania procesami potomnymi
- Sposób 68. Użycie wątków dla operacji blokujących wejście-wyjście, unikanie równoległości
- Sposób 69. Używaj klasy Lock, aby unikać stanu wyścigu w wątkach
- Sposób 70. Używaj klasy Queue do koordynacji pracy między wątkami
- Sposób 71. Naucz się rozpoznawać, kiedy współbieżność jest niezbędna
- Sposób 72. Unikaj tworzenia nowych egzemplarzy Thread na żądanie fan-out
- Sposób 73. Pamiętaj, że stosowanie Queue do obsługi współbieżności wymaga refaktoringu
- Sposób 74. Rozważ użycie klasy ThreadPoolExecutor, gdy wątki są potrzebne do zapewnienia współbieżności
- Sposób 75. Zapewnij wysoką współbieżność operacji wejścia-wyjścia dzięki użyciu współprogramów
- Sposób 76. Naucz się przekazywać do asyncio wątkowane operacje wejścia-wyjścia
- Sposób 77. Połączenie wątków i współprogramów w celu ułatwienia konwersji na wersję stosującą asyncio
- Sposób 78. Maksymalizuj responsywność przez unikanie blokującej pętli zdarzeń asyncio
- Sposób 79. Rozważ użycie concurrent.futures(), aby otrzymać prawdziwą równoległość
Rozdział 10. Niezawodność
- Sposób 80. Wykorzystuj zalety wszystkich bloków w konstrukcji try-except-else-finally
- Sposób 81. Używaj polecenia assert dla wewnętrznych założeń i raise w przypadku niespełnionych oczekiwań
- Sposób 82. Rozważ użycie poleceń contextlib i with w celu uzyskania wielokrotnego użycia konstrukcji try-finally
- Sposób 83. Zawsze staraj się maksymalnie skracać blok try
- Sposób 84. Uważaj na znikające zmienne wyjątku
- Sposób 85. Uważaj podczas przechwytywania klasy Exception
- Sposób 86. Poznaj różnicę między klasami Exception i BaseException
- Sposób 87. Używaj modułu traceback w celu dostarczania dokładniejszych informacji o wyjątkach
- Sposób 88. Rozważ jawne łączenie wyjątków, aby otrzymać przejrzyste stosy wywołań
- Sposób 89. Zawsze przekazuj zasoby do generatorów i nakazuj komponentom wywołującym przeprowadzanie operacji porządkowych
- Sposób 90. Nigdy nie przypisuj wartości False zmiennej __debug__
- Sposób 91. Unikaj wywołań exec() i eval(), o ile nie tworzysz narzędzia programistycznego
Rozdział 11. Wydajność
- Sposób 92. Przed optymalizacją przeprowadzaj profilowanie
- Sposób 93. Wydajność działania kodu o znaczeniu krytycznym optymalizuj za pomocą testów wydajności modułu timeit
- Sposób 94. Dostrzegaj, kiedy i jak zastąpić Pythona innym językiem programowania
- Sposób 95. Rozważ użycie modułu ctypes w celu sprawnej integracji z bibliotekami natywnymi
- Sposób 96. Rozważ użycie modułów rozszerzeń, aby zmaksymalizować wydajność działania i ergonomię
- Sposób 97. Aby skrócić czas uruchamiania programu, korzystaj ze wstępnie skompilowanego kodu bajtowego i buforowania systemu plików
- Sposób 98. Stosuj wczytywanie modułów z opóźnieniem i importowanie dynamiczne, aby skrócić czas uruchamiania programu
- Sposób 99. Rozważ użycie typów memoryview i bytearray, gdy podczas pracy z typem bytes stosujesz tzw. kopiowanie zero
Rozdział 12. Algorytmy i struktury danych
- Sposób 100. Używaj parametru key podczas sortowania według skomplikowanych kryteriów
- Sposób 101. Poznaj różnice między metodami sort() i sorted()
- Sposób 102. Podczas wyszukiwania danych w sortowanych sekwencjach stosuj moduł bisect
- Sposób 103. Wybieraj typ deque podczas tworzenia kolejek typu producent - konsument
- Sposób 104. Przekonaj się, jak używać heapq w kolejce priorytetowej
- Sposób 105. Podczas obsługi czasu lokalnego używaj modułu datetime zamiast time
- Sposób 106. Gdy ważna jest precyzja, używaj modułu decimal
- Sposób 107. Niezawodne użycie pickle wraz z copyreg
Rozdział 13. Testowanie i debugowanie
- Sposób 108. W podklasach klasy TestCase sprawdzaj powiązane ze sobą zachowanie
- Sposób 109. Wybieraj testy integracyjne zamiast testów jednostkowych
- Sposób 110. Izoluj testy od siebie za pomocą metod setUp(), tearDown(), setUpModule() i tearDownModule()
- Sposób 111. Podczas testowania kodu zawierającego skomplikowane zależności korzystaj z imitacji
- Sposób 112. Hermetyzuj zależności, aby ułatwić tworzenie imitacji i testowanie
- Sposób 113. Używaj metody assertAlmostEqual() do kontrolowania precyzji w testach liczb zmiennoprzecinkowych
- Sposób 114. Rozważ interaktywne usuwanie błędów za pomocą pdb
- Sposób 115. Stosuj moduł tracemalloc, aby poznać sposób użycia pamięci i wykryć jej wycieki
Rozdział 14. Współpraca
- Sposób 116. Kiedy szukać modułów opracowanych przez społeczność?
- Sposób 117. Używaj środowisk wirtualnych dla odizolowanych i powtarzalnych zależności
- Sposób 118. Dla każdej funkcji, klasy i modułu utwórz docstring
- Sposób 119. Używaj pakietów do organizacji modułów i dostarczania stabilnych API
- Sposób 120. Rozważ użycie kodu o zasięgu modułu w celu konfiguracji środowiska wdrożenia
- Sposób 121. Zdefiniuj główny wyjątek Exception w celu odizolowania komponentu wywołującego od API
- Sposób 122. Zobacz, jak przerwać krąg zależności
- Sposób 123. Rozważ użycie modułu warnings podczas refaktoryzacji i migracji kodu
- Sposób 124. Rozważ stosowanie analizy statycznej za pomocą modułu typing w celu usuwania błędów
- Sposób 125. Podczas tworzenia paczek programów w Pythonie wybieraj projekty otwartoźródłowe zamiast modułów zipimport i zipapp
- Назва: Efektywny Python. 125 sposobów na lepszy kod. Wydanie III
- Автор: Brett Slatkin
- Оригінальна назва: Effective Python: 125 Specific Ways to Write Better Python, 3rd Edition (Effective Software Development Series)
- Переклад: Robert Górczyński
- ISBN: 978-83-289-2696-7, 9788328926967
- Дата видання: 2025-07-29
- Формат: Eлектронна книга
- Ідентифікатор видання: efpyt3
- Видавець: Helion