Watrak Andrzej
Sortowanie
Źródło opisu
Książki, czasopisma i zbiory specjalne
(50)
Forma i typ
Książki
(49)
Publikacje fachowe
(32)
Publikacje dydaktyczne
(11)
Publikacje popularnonaukowe
(1)
Dostępność
tylko na miejscu
(47)
dostępne
(7)
wypożyczone
(3)
nieokreślona
(1)
Placówka
Wypożyczalnia
(10)
Biblioteka WB
(1)
Biblioteka Międzywydziałowa
(3)
Biblioteka WEiZ
(1)
Biblioteka WWFiF
(1)
Biblioteka WEAiI
(42)
Autor
Berłowski Paweł
(189)
Kotowski Włodzimierz
(179)
Praca zbiorowa
(157)
Skoczylas Zbigniew
(152)
Stiasny Grzegorz
(143)
Watrak Andrzej
(50)
Sadlik Ryszard
(142)
Blum Maciej
(140)
Michalski Dariusz
(134)
Lewandowski Maciej
(131)
Majewski Jerzy S
(131)
Etzold Hans-Rüdiger
(120)
Leśniewski Mariusz
(116)
Gewert Marian
(108)
Maruchin Wojciech
(107)
Guryn Halina
(105)
Traczyk Wojciech
(101)
Chalastra Michał
(99)
Kardyś Marta
(97)
Marx Karl (1818-1883)
(94)
Nazwisko Imię
(94)
Berkieta Mateusz
(93)
Tomczak Małgorzata
(93)
Polkowski Sławomir
(92)
Engels Friedrich (1820-1895)
(91)
Jakubiec Izabela
(90)
Kotapski Roman
(90)
Rybicki Piotr
(90)
Krysicki Włodzimierz (1905-2001)
(88)
Teleguj Kazimierz
(88)
Kapołka Maciej
(86)
Mikołajewska Emilia
(84)
Zaborowska Joanna
(81)
Piątek Grzegorz
(79)
Rudnicki Bogdan
(79)
Starosolski Włodzimierz (1933- )
(79)
Górczyński Robert
(78)
Meryk Radosław
(78)
Polit Ryszard
(77)
Mroczek Wojciech
(76)
Kulawik Marta
(74)
Mycielski Krzysztof
(74)
Myszkorowski Jakub
(73)
Konopka Eduard
(71)
Jabłoński Marek
(70)
Bielecki Jan (1942-2001)
(69)
Knosala Ryszard (1949- )
(68)
Rajca Piotr (1970- )
(68)
Rymarz Małgorzata
(68)
Walczak Krzysztof
(68)
Walkiewicz Łukasz
(68)
Wiecheć Marek
(68)
Jabłoński Adam
(67)
Laszczak Mirosław
(66)
Piwko Łukasz
(66)
Wodziczko Piotr
(65)
Dziedzic Zbigniew
(64)
Sidor-Rządkowska Małgorzata
(64)
Żakowski Wojciech (1929-1993)
(64)
Pasko Marian
(62)
Włodarski Lech (1916-1997)
(62)
Czakon Wojciech
(61)
Leyko Jerzy (1918-1995)
(61)
Jankowski Mariusz
(60)
Kostecka Alicja
(60)
Lenin Włodzimierz (1870-1924)
(60)
Paszkowska Małgorzata
(60)
Wróblewski Piotr
(60)
Karpińska Marta
(59)
Próchnicki Wojciech
(59)
Rogala Elżbieta
(59)
Bielecki Maciej
(57)
Jelonek Jakub
(57)
Malkowski Tomasz
(57)
Pilch Piotr
(57)
Rauziński Robert (1933- )
(57)
Gawrońska Joanna
(56)
Ajdukiewicz Andrzej (1939- )
(55)
Cieślak Piotr
(55)
Draniewicz Bartosz
(55)
Godek Piotr
(55)
Osiński Zbigniew (1926-2001)
(55)
Jasiński Filip
(54)
Kuliński Włodzisław
(54)
Suchodolski Bogdan (1903-1992)
(54)
Forowicz Krystyna
(53)
Klupiński Kamil
(53)
Szkutnik Leon Leszek
(52)
Zdanikowski Paweł
(52)
Wantuch-Matla Dorota
(51)
Barowicz Marek
(50)
Trammer Hubert
(50)
Walczak Tomasz
(50)
Zgółkowa Halina (1947- )
(50)
Barańska Katarzyna
(49)
Czajkowska-Matosiuk Katarzyna
(49)
Jurlewicz Teresa
(49)
Pikoń Andrzej
(49)
Szargut Jan (1923- )
(49)
Chojnacki Ireneusz
(48)
Rok wydania
2020 - 2024
(19)
2010 - 2019
(31)
Okres powstania dzieła
2001-
(32)
1989-2000
(1)
Kraj wydania
Polska
(49)
nieznany (pol)
(1)
Język
polski
(50)
Odbiorca
Programiści
(12)
Informatycy
(6)
Analitycy danych
(1)
Hakerzy
(1)
Inżynierowie
(1)
Menedżerowie
(1)
Poziom średniozaawansowany
(1)
Szkoły wyższe
(1)
Temat
Programowanie (informatyka)
(7)
Python (język programowania)
(6)
Excel
(5)
Programy komputerowe
(5)
Bezpieczeństwo teleinformatyczne
(4)
Aplikacja internetowa
(3)
Arduino (mikrokontroler)
(3)
Arkusz kalkulacyjny
(3)
Haking
(3)
Android (system operacyjny)
(2)
JavaScript (język programowania)
(2)
Przetwarzanie danych
(2)
Przetwarzanie mobilne (informatyka)
(2)
Sztuczna inteligencja
(2)
Uczenie maszynowe
(2)
Urządzenia elektroniczne
(2)
API (interfejs)
(1)
Analiza danych
(1)
Ansible
(1)
Aplikacje internetowe
(1)
Arkusze kalkulacyjne
(1)
Automatyka domowa
(1)
Badania marketingowe
(1)
Bazy danych relacyjne
(1)
Bezpieczeństwo informacyjne
(1)
Biznes
(1)
Borland Delphi
(1)
C (język programowania)
(1)
C++ (język programowania)
(1)
Cyberprzestępczość
(1)
Deep learning
(1)
Docker (oprogramowanie)
(1)
Informatyka śledcza
(1)
Interfejsy użytkowników (systemy informatyczne)
(1)
Internet
(1)
Internet rzeczy
(1)
Inwigilacja
(1)
Java (język programowania)
(1)
Język skryptowy
(1)
Kali Linux (system operacyjny)
(1)
Kontener (struktura danych)
(1)
Kotlin (język programowania)
(1)
Linux (system operacyjny)
(1)
Mac OS (system operacyjny)
(1)
Microsoft Project (oprogramowanie)
(1)
Microsoft Windows (system operacyjny)
(1)
Minikomputery i mikrokomputery
(1)
Model-View-Controller (informatyka)
(1)
Oracle (system informatyczny)
(1)
Platforma internetowa
(1)
PowerPoint
(1)
Programowanie reaktywne
(1)
Programowanie zwinne
(1)
Przetwarzanie rozproszone
(1)
Przetwarzanie w chmurze
(1)
PyTorch (biblioteka programistyczna)
(1)
React.js
(1)
Refaktoryzacja (informatyka)
(1)
Roboty i manipulatory
(1)
Rzeczywistość wirtualna
(1)
SAP ERP (system informatyczny)
(1)
SQL Server
(1)
Sieci neuronowe
(1)
Sieć komputerowa
(1)
Spring (środowisko programistyczne)
(1)
Sprzęt komputerowy
(1)
Sterowniki programowalne
(1)
Strony WWW
(1)
Strony WWW responsywne
(1)
System wbudowany (informatyka)
(1)
Systemy operacyjne
(1)
Systemy sterowania
(1)
Systemy zarządzania bazami danych
(1)
TCP/IP (protokół sieci komputerowych)
(1)
Technologie mobilne
(1)
TensorFlow (biblioteka programistyczna)
(1)
Test penetracyjny (informatyka)
(1)
Twitter Bootstrap (platforma informatyczna)
(1)
Unix (system operacyjny)
(1)
Usługi elektroniczne
(1)
VMware vSphere (system operacyjny)
(1)
Visual Basic
(1)
Wzorce projektowe (informatyka)
(1)
Zarządzanie projektami
(1)
Śledztwo i dochodzenie
(1)
Temat: czas
2001-
(6)
Gatunek
Podręcznik
(38)
Poradnik
(6)
Opracowanie
(1)
Dziedzina i ujęcie
Informatyka i technologie informacyjne
(35)
Zarządzanie i marketing
(1)
50 wyników Filtruj
Książka
W koszyku
Na okł. i s. tyt.: Klasy generyczne, metody anonimowe i atrybuty - nowe funkcjonalności języka Delphi, testy jednostkowe, poprawianie jakości kodu i wykorzystanie platformy izolacyjnej, wstrzykiwanie zależności a tworzenie czytelnego, luźno sprzężonego i łatwego do testowania kodu.
Indeks.
Sygnatura czytelni BWEAiI: XII M 7
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 142222 N (1 egz.)
Książka
W koszyku
Indeks.
CZĘŚĆ I. WPROWADZENIE DO JĘZYKA KOTLIN 23 Rozdział 1. Kotlin: co to jest i po co? 25 1.1. Przedsmak Kotlina 25 1.2. Najważniejsze cechy języka Kotlin 26 1.2.1. Docelowe platformy: serwery, Android i wszystko, gdzie jest Java 26 1.2.2. Statyczne typowanie danych 27 1.2.3. Programowanie funkcyjne i obiektowe 28 1.2.4. Bezpłatne i otwarte oprogramowanie 29 1.3. Zastosowania języka Kotlin 30 1.3.1. Kotlin na serwerach 30 1.3.2. Kotlin w Androidzie 31 1.4. Filozofia języka Kotlin 32 1.4.1. Pragmatyzm 32 1.4.2. Zwięzłość 33 1.4.3. Bezpieczeństwo 34 1.4.4. Kompatybilność 35 1.5. Narzędzia języka Kotlin 35 1.5.1. Kompilator kodu 36 1.5.2. Wtyczki dla IntelliJ IDAE i Android Studio 36 1.5.3. Interaktywna powłoka 37 1.5.4. Wtyczka dla Eclipse 37 1.5.5. Internetowy "plac zabaw" 37 1.5.6. Konwerter Java-Kotlin 37 Rozdział 2. Podstawy języka Kotlin 39 2.1. Podstawowe elementy: funkcje i zmienne 39 2.1.1. Witaj, świecie! 40 2.1.2. Funkcje 40 2.1.3. Zmienne 42 2.1.4. Proste formatowanie ciągów znaków: szablony 43 2.2. Klasy i właściwości 44 2.2.1. Właściwości 45 2.2.2. Własne metody dostępowe 47 2.2.3. Układ kodu źródłowego: katalogi i pakiety 48 2.3. Kodowanie i dokonywanie wyborów: klasa wyliczeniowa i wyrażenie when 49 2.3.1. Deklarowanie klasy wyliczeniowej 49 2.3.2. Wyrażenie when i klasy wyliczeniowe 50 2.3.3. Wyrażenie when i dowolne obiekty 51 2.3.4. Wyrażenie when bez argumentów 52 2.3.5. Inteligentne rzutowanie: połączenie sprawdzania i rzutowania typów 53 2.3.6. Refaktoryzacja kodu: zamiana if na when 55 2.3.7. Bloki kodu w odgałęzieniach wyrażeń if i when 56 2.4. Iteracje: pętle while i for 57 2.4.1. Pętla while 57 2.4.2. Iteracje liczb: zakresy i postępy 57 2.4.3. Iterowanie elementów map 59 2.4.4. Sprawdzanie przynależności do zakresu i kolekcji za pomocą słowa in 60 2.5. Wyjątki w Kotlinie 61 2.5.1. Instrukcje try, catch i finally 62 2.5.2. Słowo kluczowe try jako wyrażenie 63 Rozdział 3. Definiowanie i wywoływanie funkcji 65 3.1. Tworzenie kolekcji 66 3.2. Łatwiejsze wywoływanie funkcji 67 3.2.1. Nazwane argumenty 68 3.2.2. Domyślne wartości argumentów 68 3.2.3. Koniec ze statycznymi klasami pomocniczymi, czyli funkcje i właściwości najwyższego poziomu 70 3.3. Dodawanie elementów do zewnętrznych klas: funkcje i właściwości rozszerzające 72 3.3.1. Importowanie klas a funkcje rozszerzające 73 3.3.2. Wywoływanie funkcji rozszerzających w kodzie Java 74 3.3.3. Funkcje pomocnicze jako rozszerzenia 74 3.3.4. Nienadpisywalność funkcji rozszerzających 75 3.3.5. Właściwości rozszerzające 76 3.4. Przetwarzanie kolekcji: funkcjonalność varargs, wywołania infix i obsługa bibliotek 77 3.4.1. Rozbudowa interfejsu API kolekcji Java 78 3.4.2. Deklarowanie funkcji o dowolnej liczbie argumentów 78 3.4.3. Działania w parach: wywołania infix i deklaracje destrukturyzujące 79 3.5. Operacje na ciągach znaków i wyrażeniach regularnych 80 3.5.1. Dzielenie ciągów znaków 81 3.5.2. Wyrażenia regularne i potrójne cudzysłowy 81 3.5.3. Potrójne cudzysłowy i wielowierszowe ciągi znaków 83 3.6. Wygładzanie kodu: lokalne funkcje i rozszerzenia 84 Rozdział 4. Klasy, obiekty i interfejsy 89 4.1. Definiowanie hierarchii klas 90 4.1.1. Interfejsy w Kotlinie 90 4.1.2. Modyfikatory open, final (domyślny) i abstract 92 4.1.3. Modyfikatory widoczności, domyślny public 94 4.1.4. Klasy wewnętrzne i zagnieżdżone (domyślnie) 96 4.1.5. Klasy zapieczętowane: definiowanie ograniczonych hierarchii klas 98 4.2. Deklarowanie klas z nietrywialnymi konstruktorami i właściwościami 100 4.2.1. Inicjowanie klas: konstruktor główny i bloki inicjatora 100 4.2.2. Konstruktory dodatkowe i różne sposoby inicjowania klas nadrzędnych 102 4.2.3. Implementowanie właściwości zadeklarowanych w interfejsie 104 4.2.4. Dostęp do pól za pomocą getterów i setterów 105 4.2.5. Zmienianie widoczności metody dostępowej 106 4.3. Metody generowane przez kompilator, klasy danych i delegowanie klas 108 4.3.1. Metody uniwersalnych obiektów 108 4.3.2. Klasy danych i automatyczne generowanie uniwersalnych metod 111 4.3.3. Delegowanie klas i słowo kluczowe by 112 4.4. Słowo kluczowe object łączące deklarację klasy z utworzeniem jej instancji 114 4.4.1. Łatwe tworzenie singletonów poprzez deklarowanie obiektów 114 4.4.2. Obiekty towarzyszące: miejsce dla metod wytwórczych i elementów statycznych 116 4.4.3. Obiekty towarzyszące jako zwykłe obiekty 118 4.4.4. Wyrażenia obiektowe, czyli anonimowe klasy wewnętrzne 121 Rozdział 5. Wyrażenia lambda 123 5.1. Wyrażenia lambda i odwołania do elementów obiektów 123 5.1.1. Wprowadzenie do wyrażeń lambda: bloki kodu jako argumenty funkcji 124 5.1.2. Lambdy i kolekcje 125 5.1.3. Składnia wyrażenia lambda 126 5.1.4. Odwołania do zmiennych w bieżącym kontekście 129 5.1.5. Odwołania do elementów klas 131 5.2. Interfejsy funkcyjne do przetwarzania kolekcji 133 5.2.1. Podstawy: filtry i mapy 133 5.2.2. Warunki i funkcje all(), any(), count() oraz find() w kolekcjach 135 5.2.3. Funkcja groupBy() i konwersja listy na mapę grup 136 5.2.4. Funkcja flatMap(), spłaszczanie struktury danych i przetwarzanie zagnieżdżonych kolekcji 137 5.3. Leniwe operacje na kolekcjach oraz sekwencje 138 5.3.1. Pośrednie i końcowe operacje na sekwencjach 139 5.3.2. Tworzenie sekwencji 142 5.4. Interfejsy funkcyjne Java 143 5.4.1. Umieszczanie wyrażeń lambda w argumentach metod Java 144 5.4.2. Konstruktory SAM i jawna konwersja wyrażeń lambda na interfejsy funkcyjne 146 5.5. Wyrażenia lambda, odbiorniki oraz funkcje with() i apply() 147 5.5.1. Funkcja with() 147 5.5.2. Funkcja apply() 149 Rozdział 6. System typów danych 153 6.1. Zerowalność typów danych 153 6.1.1. Zerowalne typy danych 154 6.1.2. Znaczenie typów danych 156 6.1.3. Bezpieczny operator wywołania "?." 157 6.1.4. Operator Elvisa "?:" 158 6.1.5. Bezpieczne rzutowanie typów: operator "as?" 160 6.1.6. Asercja niezerowa "!!" 161 6.1.7. Funkcja let() 163 6.1.8. Właściwości inicjowane z opóźnieniem 164 6.1.9. Rozszerzenia typów zerowalnych 166 6.1.10. Zerowalność argumentów typowanych 167 6.1.11. Zerowalność typów i Java 168 6.2. Typy proste oraz inne typy podstawowe 172 6.2.1. Typy proste Int, Boolean i inne 172 6.2.2. Zerowalne typy proste Int?, Boolean? i inne 173 6.2.3. Przekształcanie liczb 174 6.2.4. Typy główne "Any" i "Any?" 176 6.2.5. Typ Unit, odpowiednik "void" 177 6.2.6. Typ Nothing, czyli "funkcja nigdy nie kończy działania" 178 6.3. Kolekcje i tablice 178 6.3.1. Zerowalność typów danych i kolekcje 178 6.3.2. Kolekcje tylko do odczytu i kolekcje mutowalne 181 6.3.3. Kolekcje w Kotlinie i w Javie 182 6.3.4. Kolekcje jako typy platformowe 184 6.3.5. Tablice obiektów i typów prostych 186 CZĘŚĆ II. WZBOGACANIE KOTLINA 191 Rozdział 7. Przeciążanie operatorów oraz inne konwencje 193 7.1. Przeciążanie operatorów arytmetycznych 194 7.1.1. Przeciążanie dwuargumentowych operatorów arytmetycznych 194 7.1.2. Przeciążanie złożonych operatorów przypisania 196 7.1.3. Przeciążanie operatorów jednoargumentowych 198 7.2. Przeciążanie operatorów porównania 199 7.2.1. Operatory równości 199 7.2.2. Przeciążanie operatorów nierówności: metoda compareTo() 200 7.3. Konwencje stosowane w kolekcjach i zakresach 202 7.3.1. Dostęp do elementu za pomocą indeksu, metod get() i set() 202 7.3.2. Konwencja operatora in 203 7.3.3. Metoda rangeTo() 204 7.3.4. Konwencja "iterator" w pętli loop 205 7.4. Deklaracje destrukturyzujące i metody komponentowe 206 7.4.1. Deklaracje destrukturyzujące i pętle 207 7.5. Współdzielenie metod dostępowych i delegowanie właściwości 208 7.5.1. Podstawy delegowania właściwości 209 7.5.2. Korzystanie z delegowanych właściwości: inicjalizacja z opóźnieniem i funkcja lazy 209 7.5.3. Implementacja delegowanych właściwości 211 7.5.4. Zasady translacji delegowanych właściwości 215 7.5.5. Przechowywanie wartości właściwości w mapie 215 7.5.6. Delegowane właściwości w bibliotekach 216
Rozdział 8. Funkcje wysokopoziomowe: wyrażenia lambda jako argumenty oraz wyniki 219 8.1. Deklarowanie funkcji wysokopoziomowych 220 8.1.1. Typy funkcyjne 220 8.1.2. Wywoływanie funkcji podanych w argumentach 221 8.1.3. Stosowanie typów funkcyjnych w kodzie Java 222 8.1.4. Wartość domyślna i wartość null w argumentach typów funkcyjnych 223 8.1.5. Funkcje zawierające w wynikach inne funkcje 226 8.1.6. Usuwanie duplikatów kodu za pomocą wyrażeń lambda 227 8.2. Funkcje śródwierszowe i wydajność wyrażeń lambda 229 8.2.1. Wstawianie kodu funkcji 230 8.2.2. Ograniczenia funkcji śródwierszowych 232 8.2.3. Wstawianie operacji na kolekcjach 233 8.2.4. Kiedy należy stosować funkcje śródwierszowe 234 8.2.5. Zarządzanie zasobami za pomocą śródwierszowych wyrażeń lambda 234 8.3. Sterowanie realizacją kodu w funkcjach wysokopoziomowych 236 8.3.1. Instrukcja return w wyrażeniach lambda: wyjście z nadrzędnej funkcji 236 8.3.2. Wyjście z wyrażenia lambda: instrukcja return z etykietą 237 8.3.3. Funkcje anonimowe i domyślne wyjścia lokalne 239 Rozdział 9. Typy generyczne 241 9.1. Generyczne argumenty typowane 242 9.1.1. Generyczne funkcje i właściwości 243 9.1.2. Deklarowanie klas generycznych 244 9.1.3. Ograniczenia argumentów typowanych 245 9.1.4. Deklarowanie niezerowalnego argumentu typowanego 247 9.2. Typy generyczne w działającym kodzie, wymazane i urzeczowione argumenty typowane 248 9.2.1. Typy generyczne w działającym kodzie: sprawdzanie i rzutowanie typów 248 9.2.2. Deklarowanie funkcji z urzeczowionymi argumentami typowanymi 250 9.2.3. Zastępowanie odwołań do klas urzeczowionymi argumentami typowanymi 252 9.2.4. Ograniczenia urzeczowionych argumentów typowanych 253 9.3. Wariancje, typy generyczne i podtypy 254 9.3.1. Idea wariancji i umieszczanie wartości w argumentach funkcji 254 9.3.2. Klasy, typy i podtypy 255 9.3.3. Kowariancja: zachowanie zależności między podtypami 257 9.3.4. Kontrawariancja: odwrotna zależność podtypów 261 9.3.5. Wariancja typu w miejscu deklaracji 263 9.3.6. Projekcja z gwiazdką: symbol * zamiast argumentu typowanego 266 Rozdział 10. Adnotacje i refleksja 271 10.1. Deklarowanie i stosowanie adnotacji 272 10.1.1. Stosowanie adnotacji 272 10.1.2. Adres adnotacji 273 10.1.3. Dostosowywanie procesu serializacji JSON za pomocą adnotacji 275 10.1.4. Deklarowanie adnotacji 277 10.1.5. Metaadnotacje: kontrolowanie procesu przetwarzania adnotacji 277 10.1.6. Klasy jako argumenty adnotacji 278 10.1.7. Klasy generyczne jako argumenty adnotacji 279 10.2. Refleksja: badanie obiektów w trakcie działania kodu 280 10.2.1. Interfejs API refleksji w Kotlinie: interfejsy KClass, KCallable, KFunction i KProperty 281 10.2.2. Serializacja obiektów z wykorzystaniem refleksji 285 10.2.3. Dostosowywanie serializacji za pomocą adnotacji 286 10.2.4. Analiza danych JSON i deserializacja obiektów 289 10.2.5. Ostatni etap deserializacji: wywołanie metody callBy() i utworzenie obiektu za pomocą refleksji 293 Rozdział 11. Definiowanie języka DSL 299 11.1. Od interfejsu API do języka DSL 300 11.1.1. Idea języków domenowych 301 11.1.2. Wewnętrzny język DSL 302 11.1.3. Struktura języka DSL 303 11.1.4. Generowanie kodu HTML za pomocą wewnętrznego języka DSL 304 11.2. Tworzenie strukturalnego interfejsu API: wyrażenia lambda z odbiornikami w języku DSL 305 11.2.1. Wyrażenie lambda z odbiornikiem i typ funkcyjny rozszerzający 305 11.2.2. Wyrażenia lambda z odbiornikami w generatorze HTML 309 11.2.3. Generatory w Kotlinie, abstrakcje i powtarzalny kod 313 11.3. Bardziej elastyczne zagnieżdżanie bloków kodu dzięki konwencji invoke 316 11.3.1. Konwencja invoke, czyli obiekty wywoływane tak jak funkcje 316 11.3.2. Konwencja invoke i typy funkcyjne 317 11.3.3. Konwencja invoke w języku DSL: deklarowanie zależności w narzędziu Gradle 318 11.4. Język DSL w praktyce 319 11.4.1. Łączenie wywołań infix i asercja should w platformach testowych 319 11.4.2. Rozszerzenia typów prostych i przetwarzanie dat 321 11.4.3. Funkcje rozszerzające i wewnętrzny język DSL do obsługi zapytań SQL 322 11.4.4. Biblioteka Anko i dynamiczne tworzenie interfejsu użytkownika w systemie Android 325 Dodatek A. Kompilowanie projektów Kotlin 331 A.1. Kompilowanie kodu Kotlin za pomocą narzędzia Gradle 331 A.1.1. Kompilowanie za pomocą narzędzia Gradle aplikacji dla systemu Android 332 A.1.2. Kompilowanie projektów wykorzystujących adnotacje 332 A.2. Kompilowanie kodu Kotlin za pomocą narzędzia Maven 333 A.3. Kompilowanie kodu Kotlin za pomocą narzędzia Ant 333 Dodatek B. Dokumentowanie kodu Kotlin 335 B.1. Umieszczanie komentarzy dokumentacyjnych 335 B.2. Generowanie dokumentacji interfejsu API 336 Dodatek C. Ekosystem Kotlina 339 C.1. Testowanie kodu 339 C.2. Wstrzykiwanie zależności 340 C.3. Serializacja JSON 340 C.4. Klienty HTTP 340 C.5. Aplikacje WWW 340 C.6. Operacje na bazach danych 341 C.7. Narzędzia i struktury danych 341 C.8. Aplikacje stacjonarne 341
Sygnatura czytelni BWEAiI: XII N 129
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 147417 N (1 egz.)
Książka
W koszyku
Czysty kod w Pythonie / Sunil Kapil ; przekład Andrzej Watrak. - Gliwice : Helion, copyright 2020. - 176 stron : portrety ; 24 cm.
Rozdział 1. Kodowanie pythoniczne 13 Tworzenie pythonicznego kodu 13 Nazewnictwo 14 Wyrażenia i instrukcje 16 Pythoniczny styl kodowania 19 Komentarze dokumentacyjne 24 Komentarze dokumentacyjne do modułów 26 Komentarze dokumentacyjne do klas 26 Komentarze dokumentacyjne do funkcji 27 Przydatne narzędzia dokumentacyjne 28 Pythoniczne struktury sterujące 28 Wyrażenia listowe 28 Nie twórz skomplikowanych wyrażeń listowych 29 Kiedy stosować wyrażenia lambda? 31 Kiedy stosować generatory, a kiedy wyrażenia listowe? 31 Dlaczego nie należy stosować instrukcji else w pętlach? 32 Dlaczego warto stosować funkcję range() w języku Python 3? 34 Zgłaszanie wyjątków 35 Często zgłaszane wyjątki 36 Obsługuj wyjątki za pomocą instrukcji finally 37 Twórz własne klasy wyjątków 37 Obsługuj konkretne wyjątki 39 Zwracaj uwagę na zewnętrzne wyjątki 40 Twórz jak najmniejsze bloki try 41 Rozdział 2. Struktury danych 43 Popularne struktury danych 43 Zbiory i wydajny kod 43 Przetwarzanie danych za pomocą struktury namedtuple 45 Typ str i znaki diakrytyczne 47 Zamiast list stosuj iteratory 48 Przetwarzaj listy za pomocą funkcji zip() 50 Wykorzystuj zalety wbudowanych funkcji 51 Zalety słownika 53 Kiedy używać słownika zamiast innych struktur? 53 Kolekcje 53 Słowniki uporządkowany, domyślny i zwykły 56 Słownik jako odpowiednik instrukcji switch 57 Scalanie słowników 58 Czytelne wyświetlanie zawartości słownika 59 Rozdział 3. Jak pisać lepsze funkcje i klasy? 61 Funkcje 61 Twórz małe funkcje 61 Twórz generatory 63 Używaj wyjątku zamiast wyniku None 64 Stosuj w argumentach klucze i wartości domyślne 65 Nie twórz funkcji jawnie zwracających wynik None 66 Krytycznie podchodź do tworzonych funkcji 68 Stosuj w wyrażeniach funkcje lambda 70 Klasy 71 Jak duża powinna być klasa? 71 Struktura klasy 72 Właściwe użycie dekoratora @property 74 Kiedy należy stosować metody statyczne? 75 Dziedziczenie klas abstrakcyjnych 76 Odwołania do stanu klasy przy użyciu dekoratora @classmethod 77 Atrybuty publiczne zamiast prywatnych 78 Rozdział 4. Praca z modułami i metaklasami 81 Moduły i metaklasy 81 Porządkowanie kodu za pomocą modułów 82 Zalety pliku __init__.py 84 Importowanie funkcji i klas z modułów 86 Blokowanie importu całego modułu za pomocą metaklasy __all__ 87 Kiedy stosować metaklasy? 88 Weryfikowanie podklas za pomocą metody __new__() 89 Dlaczego atrybut __slots__ jest tak przydatny? 91 Modyfikowanie funkcjonowania klasy za pomocą metaklasy 93 Deskryptory w języku Python 94 Rozdział 5. Dekoratory i menedżery kontekstu 97 Dekoratory 97 Czym są dekoratory i dlaczego są tak przydatne? 98 Korzystanie z dekoratorów 99 Modyfikowanie działania funkcji za pomocą dekoratorów 101 Stosowanie kilku dekoratorów jednocześnie 102 Dekorowanie funkcji z argumentami 103 Używaj dekoratorów z biblioteki 104 Dekoratory obsługujące stan klasy i weryfikujące poprawność danych 106 Menedżery kontekstu 108 Zalety menedżerów kontekstu 108 Tworzenie menedżera kontekstu od podstaw 109 Tworzenie menedżera kontekstu za pomocą biblioteki contextlib 111 Praktyczne przykłady użycia menedżera kontekstu 111 Rozdział 6. Generatory i iteratory 115 Zalety generatorów i iteratorów 115 Iteratory 115 Generatory 117 Kiedy stosować iteratory? 118 Moduł itertools 119 Dlaczego generatory są tak przydatne? 121 Wyrażenia listowe i iteratory 122 Zalety instrukcji yield 122 Instrukcja yield from 123 Instrukcja yield jest szybka 123 Rozdział 7. Nowe funkcjonalności języka Python 125 Programowanie asynchroniczne 125 Wprowadzenie do programowania asynchronicznego 126 Jak to działa? 128 Obiekty oczekiwalne 133 Biblioteki do tworzenia kodu asynchronicznego 139 Python i typy danych 143 Typy danych w Pythonie 143 Moduł typing 144 Czy typy danych spowalniają kod? 145 Jak dzięki modułowi typing można pisać lepszy kod? 146 Metoda super() 147 Lepsza obsługa ścieżek dzięki bibliotece pathlib 147 print() jest teraz funkcją 147 f-ciągi 147 Obowiązkowe argumenty pozycyjne 148 Kontrolowana kolejność elementów w słownikach 148 Iteracyjne rozpakowywanie struktur 149 Rozdział 8. Diagnostyka i testy kodu 151 Diagnostyka 151 Narzędzia diagnostyczne 152 Funkcja breakpoint() 155 Moduł logging zamiast funkcji print() 155 Identyfikowanie słabych punktów kodu za pomocą metryk 159 Do czego przydaje się środowisko IPython? 159 Testy 161 Dlaczego testowanie kodu jest ważne? 161 Biblioteki pytest i unittest 161 Testowanie oparte na właściwościach 164 Tworzenie raportów z testów 165 Automatyzacja testów jednostkowych 166 Przygotowanie kodu do uruchomienia w środowisku produkcyjnym 166 Sprawdzanie pokrycia kodu testami 167 Program virtualenv 168 Dodatek. Niezwykłe narzędzia dla języka Python 171 Sphinx 171 Coverage.py 172 pre-commit 173 Pyenv 173 Jupyter Lab 174 Pycharm/VSCode/Sublime 174 Flake8 i Pylint 175
Sygnatura czytelni BWEAiI: XII A 29
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 149932 N (1 egz.)
Książka
W koszyku
Nazwa pierwszego autora wyróżniona typograficznie. Na stronie redakcyjnej rok wydania: 2022, data wpływu egzemplarza obowiązkowego: 2021.
I. WPROWADZENIE DO GŁĘBOKIEGO UCZENIA (1) 1. Widzenie biologiczne i maszynowe (3) Widzenie biologiczne (3) Widzenie maszynowe (8) Neocognitron (8) LeNet-5 (9) Tradycyjne podejście w uczeniu maszynowym (12) Sieć ImageNet i konkurs ILSVRC (13) AlexNet (14) Plac zabaw TensorFlow (17) Quick, Draw! (19) 2. Języki ludzki i maszynowy (21) Przetwarzanie języka naturalnego przy użyciu głębokiego uczenia (21) Sieci głębokiego uczenia automatycznie uczą się reprezentacji danych (22) Przetwarzanie języka naturalnego (23) Krótka historia wykorzystania głębokiego uczenia w przetwarzaniu języka naturalnego (24) Matematyczne reprezentacje języka (25) Kodowanie słów 1 z n (26) Wektory słów (27) Działania na wektorach słów (29) word2viz (30) Reprezentacje lokalne i rozproszone (32) Elementy naturalnego języka ludzi (33) Google Duplex (35) 3. Sztuka maszynowa (39) Zakrapiana impreza (39) Arytmetyka nieprawdziwych twarzy (41) Transfer stylu: konwersja zdjęcia na obraz Moneta (i odwrotnie) (44) Tworzenie własnych, fotograficznie realistycznych rysunków (45) Tworzenie realistycznych obrazów na podstawie tekstu (45) Przetwarzanie obrazów przy użyciu głębokiego uczenia (46) 4. Maszyny i gry (49) Głębokie uczenie, sztuczna inteligencja i inne bestie (49) Sztuczna inteligencja (49) Uczenie maszynowe (50) Uczenie się reprezentacji (51) Sztuczne sieci neuronowe (51) Głębokie uczenie (51) Widzenie maszynowe (52) Przetwarzanie języka naturalnego (53) Trzy kategorie problemów uczenia maszynowego (53) Uczenie nadzorowane (53) Uczenie nienadzorowane (54) Uczenie przez wzmacnianie (54) Głębokie uczenie przez wzmacnianie (56) Gry wideo (57) Gry planszowe (60) AlphaGo (60) AlphaGo Zero (62) AlphaZero (64) Manipulowanie obiektami (66) Popularne środowiska dla głębokiego uczenia przez wzmacnianie (68) OpenAI Gym (68) DeepMind Lab (68) Unity ML-Agents (71) Trzy kategorie sztucznej inteligencji (71) Sztuczna wąska inteligencja (71) Sztuczna ogólna inteligencja (71) Sztuczna superinteligencja (72) II. PODSTAWY TEORETYCZNE W ILUSTRACJACH (73) 5. Wóz (kodu) przed koniem (teorii) (75) Wymagania (75) Instalacja (76) Prosta sieć i biblioteka Keras (76) Baza MNIST odręcznych cyfr (76) Schemat sieci (78) Załadowanie danych (79) Przeformatowanie danych (81) Zaprojektowanie architektury sieci neuronowej (82) Trenowanie modelu sieci neuronowej (83) 6. Sztuczny neuron wykrywający hot dogi (85) Biologiczna neuroanatomia (85) Perceptron (86) Wykrywacz: "hot dog" - "nie hot dog" (86) Najważniejsza formuła w tej książce (90) Współczesne neurony i funkcje aktywacji (91) Neuron sigmoidalny (92) Neuron tangensowy (94) Neuron ReLU (94) Wybór neuronu (96) Podsumowanie (96) Kluczowe pojęcia (97) 7. Sztuczne sieci neuronowe (99) Warstwa wejściowa (99) Warstwa zagęszczona (99) Zagęszczona sieć wykrywająca hot dogi (101) Propagacja w przód w pierwszej warstwie ukrytej (102) Propagacja w przód w kolejnych warstwach (103) Warstwa softmax w sieci wykrywającej hot dogi (105) Nowe spojrzenie na naszą płytką sieć (107) 8. Trenowanie głębokich sieci (111) Funkcja kosztu (111) Kwadratowa funkcja straty (112) Wysycenie neuronu (112) Entropia skrośna (113) Optymalizacja - uczenie się minimalizowania kosztu (115) Gradient prosty (115) Szybkość uczenia się (117) Wielkość paczki i stochastyczny gradient prosty (119) Ucieczka z lokalnego minimum (121) Propagacja wstecz (123) Dobór liczby warstw ukrytych i liczby neuronów (124) Średniogłęboka sieć w Keras (126) 9. Usprawnianie głębokich sieci (131) Inicjalizacja wag (131) Rozkłady Xaviera Glorota (134) Niestabilne gradienty (137) Zanikające gradienty (137) Eksplodujące gradienty (137) Normalizacja paczki (138) Uogólnianie modelu (zapobieganie nadmiernemu dopasowaniu) (139) Regularyzacja L1 i L2 (141) Dropout (141) Powiększenie danych (144) Pomysłowe optymalizatory (144) Impet (144) Impet Nesterowa (145) AdaGrad (145) AdaDelta i RMSprop (146) Adam (146) Głęboka sieć neuronowa w Keras (147) Regresja (148) TensorBoard (151) III. INTERAKTYWNE ZASTOSOWANIA GŁĘBOKIEGO UCZENIA (155) 10. Widzenie maszynowe (157) Konwolucyjne sieci neuronowe (157) Dwuwymiarowa struktura obrazów (157) Złożoność obliczeniowa (158) Warstwy konwolucyjne (158) Wielokrotne filtry (160) Konwolucyjny przykład (161) Hiperparametry filtru konwolucyjnego (165) Warstwy redukujące (166) Sieć LeNet-5 w Keras (168) Sieci AlexNet i VGGNet w Keras (173) Sieci rezydualne (176) Zanikający gradient - zmora głębokiej sieci konwolucyjnej (176) Połączenia rezydualne (177) Sieć ResNet (178) Zastosowania widzenia maszynowego (180) Wykrywanie obiektów (180) Segmentacja obrazów (183) Uczenie transferowe (185) Sieci kapsułowe (189) 11. Przetwarzanie języka naturalnego (193) Wstępne przetwarzanie danych języka naturalnego (193) Tokenizacja (196) Zamiana wszystkich znaków na małe litery (198) Usunięcie stop-słów i interpunkcji (198) Stemming (199) Przetwarzanie n-gramów (200) Wstępne przetworzenie całego korpusu (202) Osadzanie słów przy użyciu techniki word2vec (205) Teoretyczne podstawy techniki word2vec (206) Ocenianie wektorów słów (208) Stosowanie techniki word2vec (208) Tworzenie wykresów wektorów słów (212) Pole pod krzywą ROC (215) Macierz pomyłek (217) Wyliczanie pola pod krzywą ROC (218) Klasyfikowanie języka naturalnego za pomocą znanych sieci (220) Załadowanie recenzji filmów z bazy IMDb (221) Badanie bazy IMDb (224) Ujednolicenie długości recenzji (227) Sieć zagęszczona (227) Sieci konwolucyjne (234) Sieci przystosowane do danych sekwencyjnych (238) Rekurencyjne sieci neuronowe (238) Jednostka LSTM (242) Dwukierunkowa jednostka LSTM (245) Spiętrzone modele rekurencyjne (246) Techniki sekwencja-sekwencja i atencja (248) Uczenie transferowe w przetwarzaniu języka naturalnego (249) Modele niesekwencyjne: funkcyjny interfejs API biblioteki Keras (249) 12. Sieci GAN (257) Teoretyczne podstawy sieci GAN (257) Zbiór rysunków Quick, Draw! (260) Sieć dyskryminatora (263) Sieć generatora (266) Sieć antagonistyczna (269) Trening sieci GAN (271) 13. Głębokie uczenie przez wzmacnianie (281) Podstawy teoretyczne uczenia przez wzmacnianie (281) Gra Cart-Pole (282) Proces decyzyjny Markowa (284) Optymalna polityka (286) Podstawy teoretyczne sieci głębokiego Q-uczenia (287) Funkcja wartości (288) Funkcja Q-wartości (288) Szacowanie optymalnej Q-wartości (289) Definiowanie agenta sieci DQN (290) Parametry inicjalizacyjne (293) Tworzenie sieci neuronowej agenta (294) Rejestrowanie przebiegu gry (295) Trening poprzez odtwarzanie zapisanych informacji (295) Wybór czynności do wykonania (297) Zapisywanie i ładowanie parametrów modelu (297) Interakcja ze środowiskiem OpenAI Gym (297) Optymalizacja hiperparametrów za pomocą narzędzia SLM Lab (301) Agenci nie tylko DQN (303) Algorytmy gradientu polityki i REINFORCE (304) Algorytm aktor-krytyk (304) IV TY I SZTUCZNA INTELIGENCJA (307) 14. Rozwijanie własnych projektów głębokiego uczenia (309) Pomysły na projekty głębokiego uczenia (309) Widzenie maszynowe i sieci GAN (309) Przetwarzanie języka naturalnego (311) Głębokie uczenie przez wzmacnianie (312) Przekształcanie istniejących projektów uczenia maszynowego (312) Materiały do kolejnych projektów (313) Projekty pożytku publicznego (314) Proces modelowania i strojenie hiperparametrów (314) Automatyzacja strojenia hiperparametrów (316) Biblioteki głębokiego uczenia (317) Keras i TensorFlow (317) PyTorch (319) MXNet, CNTK, Caffe i inne biblioteki (320) Software 2.0 (320) Nadejście ogólnej sztucznej inteligencji (322)
Sygnatura czytelni BWEAiI: XII Ą 24
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Wszystkie egzemplarze są obecnie wypożyczone: sygn. 151514, 151513 (2 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 151512 N (1 egz.)
Książka
W koszyku
Na 4. stronie okładki: Systemy reaktywne - odpowiedź na wyzwania naszych czasów!
Nazwa tłumacza na stronie redakcyjnej.
Indeks.
System reaktywny? Anatomia systemu reaktywnego Problem obciążenia Problem awarii Tworzenie responsywnego systemu Zapobieganie efektowi kuli błota Integrowanie komponentów niereaktywnych Przegląd Manifestu reaktywnego Reagowanie systemu na interakcje użytkowników Podejście tradycyjne Analiza czasu odpowiedzi współdzielonego zasobu Ograniczanie maksymalnego czasu odpowiedzi za pomocą kolejki Analiza paralelizmu Skrócenie czasu odpowiedzi z wykorzystaniem paralelizmu Usprawnianie paralelizmu za pomocą komponowanych futur Cena szeregowej iluzji Ograniczenia paralelizmu Prawo Amdahla Uniwersalne prawo skalowalności Obsługa awarii Rozczłonkowywanie i grodzenie Bezpieczniki Nadzorowanie usług Utrata wysokiej spójności danych ACID 2.0 Odbieranie zmian Wzorce projektowania reaktywnego Zarządzanie złożonością oprogramowania Przystosowanie modeli programistycznych do rzeczywistości Narzędzia Pierwsze rozwiązania reaktywne Programowanie funkcyjne Niezmienność Przejrzystość referencyjna Efekty uboczne Funkcje pierwszej klasy Responsywność dla użytkowników Ustalanie priorytetów cech wydajnościowych Dostępne narzędzia reaktywne Zielone wątki Pętle zdarzeń Język CSP Futury i promesy Rozszerzenia reaktywne Model Aktor FILOZOFIA REAKTYWNOŚCI W PIGUŁCE Przesyłanie komunikatów Komunikaty Pionowa skalowalność aplikacji Sterowanie zdarzeniami i komunikatami Synchroniczne i asynchroniczne przesyłanie komunikatów Sterowanie przepływem danych Gwarancja dostarczania komunikatów Zdarzenia jako komunikaty Synchroniczne przesyłanie komunikatów Przezroczystość lokalizacji Czym jest przezroczystość lokalizacji? Błędne wyobrażenia o przezroczystości wywołań Ratunek w jawnym przesyłaniu komunikatów Optymalizacja lokalnego przekazywania komunikatów Utraty komunikatów Pozioma skalowalność aplikacji Przezroczystość lokalizacji upraszcza testy Dynamiczne komponowanie systemu Dziel i rządź Hierarchiczna struktura problemu Tworzenie hierarchii modułów Zależności i moduły pochodne Zapobieganie powstawaniu matryc Budowanie własnej ogromnej korporacji Zalety precyzyjnej specyfikacji i testów Skalowalność pozioma i pionowa aplikacji Strukturalna obsługa awarii Własność oznacza zobowiązanie Własność określa kontrolę cyklu życia modułu Odporność na awarie na wszystkich poziomach Rozdzielona spójność danych Ratunek w niezależnych modułach Grupowanie danych i transakcji Modelowanie przepływów danych ponad granicami transakcyjnymi Jednostka awaryjności = jednostka spójności Segregacja odpowiedzialności Utrzymywanie odizolowanych zakresów spójności Niedeterminizm na życzenie Programowanie logiczne i deklaratywny przepływ danych Reaktywne programowanie funkcyjne Współdzielenie niczego upraszcza równoległość operacji Współdzielenie stanu i równoległość Co zatem powinniśmy robić? Przepływ danych Wysyłanie danych Modelowanie procesów w domenie Określanie ograniczeń odporności na awarie Szacowanie ilości komunikatów i skali wdrożenia Planowanie sterowania przepływami WZORCE Testy aplikacji reaktywnych Jak testować aplikacje? Testy jednostkowe Testy komponentów Testy łańcuchowe Testy integracyjne Testy akceptacyjne Testy czarnej i białej skrzynki Środowisko testowe Testy asynchroniczne Blokujące odbiorniki komunikatów Sztuka doboru czasu oczekiwania Wykrywanie braku komunikatów Tworzenie synchronicznych kodów wykonawczych Asercje asynchroniczne Testy w pełni asynchroniczne Wykrywanie braku błędów asynchronicznych Testowanie systemów niedeterministycznych Problem z planowaniem wykonywania testów (176) Testowanie komponentów rozproszonych Aktorzy imitacyjni Komponenty rozproszone Testowanie elastyczności systemu Testowanie sprężystości systemu Sprężystość aplikacji Sprężystość infrastruktury Testowanie responsywności systemu Wzorce uodporniania na awarie i odtwarzania systemu Wzorzec Prosty Komponent Wzorzec Jądro Błędu Wzorzec Pozwól Na Awarię Zagadnienia implementacyjne Konkluzja: wzorzec Bicie Serca Konkluzja: wzorzec Proaktywny Sygnał Awaryjny Wzorzec Bezpiecznik Wzorce replikacyjne Wzorzec Replikacja Aktywna-Pasywna Wzorzec Replikacja Wielokrotna-Główna Replikacja oparta na konsensusie Replikacja z wykrywaniem i rozwiązywaniem konfliktów Bezkonfliktowe typy replikowanych danych Wzorzec Replikacja Aktywna-Aktywna Odniesienie do wirtualnej synchroniczności Wzorce zarządzania zasobami Wzorzec Enkapsulacja Zasobów Wzorzec Wypożyczenie Zasobu Zagadnienia implementacyjne Wariant: zastosowanie wzorca Wypożyczenie Zasobu do częściowego udostępniania zasobu Wzorzec Złożone Polecenie Wzorzec Pula Zasobów Zagadnienia implementacyjne Wzorzec Zarządzane Blokowanie Wzorce przepływów komunikatów Wzorzec Zapytanie-Odpowiedź Popularne implementacje wzorca Wzorzec Samowystarczalny Komunikat Wzorzec Zapytaj Wzorzec Przekaż Przepływ Wzorzec Agregator Wzorzec Saga Wzorzec Biznesowy Uścisk Dłoni (lub Niezawodna Dostawa) Wzorce sterowania przepływem komunikatów Wzorzec Pobierz Wzorzec Zarządzana Kolejka Wzorzec Pomiń Wzorzec Dławik Wzorce zarządzania i zapisywania stanów Wzorzec Obiekt Domenowy Wzorzec Odłamkowanie Wzorzec Źródło Zdarzeń Wzorzec Strumień Zdarzeń Tworzenie diagramów systemów reaktywnych Partycje geograficzne Planowanie przepływu informacji Krok 1.: odbieranie danych Krok 2.: przesyłanie danych do odpowiedniego węzła Krok 3.: relokacja i efektywne odczytywanie danych Bilans Co będzie w przypadku awarii? Awaria klienta Awaria łącza sieciowego Awaria węzła wejściowego dla danych Awaria łącza sieciowego między punktem wejścia danych a kwadratem mapy Awaria węzła z kwadratami mapy Awaria komponentu kwadratu sumarycznego Awaria łącza pomiędzy kwadratami mapy Awaria węzła z widokami map Podsumowanie obsługi awarii Czego nauczyliśmy się z tego przykładu? Co dalej? Manifest reaktywny Asynchronizm Ciśnienie wsteczne Przetwarzanie wsadowe Komponent Delegowanie Elastyczność Awaria Izolacja Przezroczystość lokalizacji Sterowanie komunikatami Algorytm nieblokujący Protokół Replikacja Zasób Skalowalność System Użytkownik
Sygnatura czytelni BWEAiI: XII A 97
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 145587 N (1 egz.)
Książka
W koszyku
Na s. tyt., okł. logo wyd. oryg.: SAMS Publishing.
Pliki z przykładami omawianymi w książce można znaleźć pod adresem internet. podanym na s. red.
Indeks.
Sygnatura czytelni BWEAiI: XII Ź 64
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 143172 N (1 egz.)
Książka
W koszyku
Wydanie 3. odnosi się do oryginału.
Indeks.
Pierwsze kroki z uczeniem maszynowym w Pythonie Różnice między uczeniem maszynowym a automatyką Nadmierne i niedostateczne dopasowanie modelu oraz kompromis między obciążeniem a wariancją Zapobieganie nadmiernemu dopasowaniu poprzez weryfikację krzyżową Zapobieganie nadmiernemu dopasowaniu za pomocą regularyzacji Zapobieganie nadmiernemu dopasowaniu poprzez selekcję cech i redukcję wymiarowości Wstępne przetwarzanie danych i inżynieria cech Wstępne przetwarzanie i eksploracja danych Inżynieria cech Łączenie modeli Głosowanie i uśrednianie Agregacja bootstrap Wzmacnianie Składowanie Instalacja i konfiguracja oprogramowania Przygotowanie Pythona i środowiska pracy Instalacja najważniejszych pakietów Pythona Wprowadzenie do pakietu TensorFlow 2 Tworzenie systemu rekomendacji filmów na bazie naiwnego klasyfikatora Bayesa Pierwsze kroki z klasyfikacją Klasyfikacja binarna Klasyfikacja wieloklasowa Klasyfikacja wieloetykietowa Naiwny klasyfikator Bayesa Twierdzenie Bayesa w przykładach Mechanizm naiwnego klasyfikatora Bayesa Implementacja naiwnego klasyfikatora Bayesa Implementacja od podstaw Implementacja z wykorzystaniem pakietu scikit-learn Budowanie systemu rekomendacyjnego na bazie klasyfikatora Bayesa Ocena jakości klasyfikacji Strojenie modeli poprzez weryfikację krzyżową Rozpoznawanie twarzy przy użyciu maszyny wektorów nośnych Określanie granic klas za pomocą maszyny wektorów nośnych Scenariusz 1. Określenie hiperpłaszczyzny rozdzielającej Scenariusz 2. Określenie optymalnej hiperpłaszczyzny rozdzielającej Scenariusz 3. Przetwarzanie punktów odstających Implementacja maszyny wektorów nośnych Scenariusz 4. Więcej niż dwie klasy Scenariusz 5. Rozwiązywanie nierozdzielnego liniowo problemu za pomocą jądra Wybór między jądrem liniowym a radialną funkcją bazową Klasyfikowanie zdjęć twarzy za pomocą maszyny wektorów nośnych Badanie zbioru zdjęć twarzy Tworzenie klasyfikatora obrazów opartego na maszynie wektorów nośnych Zwiększanie skuteczności klasyfikatora obrazów za pomocą analizy głównych składowych Klasyfikacja stanu płodu w kardiotokografii Prognozowanie kliknięć reklam internetowych przy użyciu algorytmów drzewiastych Wprowadzenie do prognozowania kliknięć reklam Wprowadzenie do dwóch typów danych: liczbowych i kategorialnych Badanie drzewa decyzyjnego od korzeni do liści Budowanie drzewa decyzyjnego Wskaźniki jakości podziału zbioru Implementacja drzewa decyzyjnego od podstaw Implementacja drzewa decyzyjnego za pomocą biblioteki scikit-learn Prognozowanie kliknięć reklam za pomocą drzewa decyzyjnego Gromadzenie drzew decyzyjnych: las losowy Gromadzenie drzew decyzyjnych: drzewa ze wzmocnieniem gradientowym Prognozowanie kliknięć reklam internetowych przy użyciu regresji logistycznej Klasyfikowanie danych z wykorzystaniem regresji logistycznej Wprowadzenie do funkcji logistycznej Przejście od funkcji logistycznej do regresji logistycznej Trening modelu opartego na regresji logistycznej Trening modelu opartego na regresji logistycznej z gradientem prostym Prognozowanie kliknięć reklam z wykorzystaniem regresji logistycznej z gradientem prostym Trening modelu opartego na regresji logistycznej ze stochastycznym gradientem prostym Trening modelu opartego na regresji logistycznej z regularyzacją Selekcja cech w regularyzacji L1 Trening modelu na dużym zbiorze danych z uczeniem online Klasyfikacja wieloklasowa Implementacja regresji logistycznej za pomocą pakietu TensorFlow Selekcja cech z wykorzystaniem lasu losowego Skalowanie modelu prognozującego do terabajtowych dzienników kliknięć Podstawy Apache Spark Komponenty Instalacja Uruchamianie i wdrażanie programów Programowanie z wykorzystywaniem modułu PySpark Trenowanie modelu na bardzo dużych zbiorach danych za pomocą narzędzia Apache Spark Załadowanie danych o kliknięciach reklam Podzielenie danych i umieszczenie ich w pamięci Zakodowanie "1 z n" cech kategorialnych Trening i testy modelu regresji logistycznej Inżynieria cech i wartości kategorialnych przy użyciu narzędzia Apache Spark Mieszanie cech kategorialnych Interakcja cech, czyli łączenie zmiennych Prognozowanie cen akcji za pomocą algorytmów regresji Krótkie wprowadzenie do giełdy i cen akcji Co to jest regresja? Pozyskiwanie cen akcji Pierwsze kroki z inżynierią cech Pozyskiwanie danych i generowanie cech Szacowanie za pomocą regresji liniowej Jak działa regresja liniowa? Implementacja regresji liniowej od podstaw Implementacja regresji liniowej z wykorzystaniem pakietu scikit-learn Implementacja regresji liniowej z wykorzystaniem pakietu TensorFlow Prognozowanie za pomocą regresyjnego drzewa decyzyjnego Przejście od drzewa klasyfikacyjnego do regresyjnego Implementacja regresyjnego drzewa decyzyjnego Implementacja lasu regresyjnego Prognozowanie za pomocą regresji wektorów nośnych Implementacja regresji wektorów nośnych Ocena jakości regresji Prognozowanie cen akcji za pomocą trzech algorytmów regresji Prognozowanie cen akcji za pomocą sieci neuronowych Demistyfikacja sieci neuronowych Pierwsze kroki z jednowarstwową siecią neuronową Funkcje aktywacji Propagacja wstecz Wprowadzanie kolejnych warstw do sieci neuronowej i uczenie głębokie Tworzenie sieci neuronowej Implementacja sieci neuronowej od podstaw Implementacja sieci neuronowej przy użyciu pakietu scikit-learn Implementacja sieci neuronowej przy użyciu pakietu TensorFlow Dobór właściwej funkcji aktywacji Zapobieganie nadmiernemu dopasowaniu sieci Dropout Wczesne zakończenie treningu Prognozowanie cen akcji za pomocą sieci neuronowej Trening prostej sieci neuronowej Dostrojenie parametrów sieci neuronowej. Badanie 20 grup dyskusyjnych przy użyciu technik analizy tekstu
Jak komputery rozumieją ludzi, czyli przetwarzanie języka naturalnego Czym jest przetwarzanie języka naturalnego? Historia przetwarzania języka naturalnego Zastosowania przetwarzania języka naturalnego Przegląd bibliotek Pythona i podstawy przetwarzania języka naturalnego Instalacja najważniejszych bibliotek Korpusy Tokenizacja Oznaczanie części mowy Rozpoznawanie jednostek nazwanych Stemming i lematyzacja Modelowanie semantyczne i tematyczne Pozyskiwanie danych z grup dyskusyjnych Badanie danych z grup dyskusyjnych Przetwarzanie cech danych tekstowych Zliczanie wystąpień wszystkich tokenów Wstępne przetwarzanie tekstu Usuwanie stop-słów Upraszczanie odmian Wizualizacja danych tekstowych z wykorzystaniem techniki t-SNE Co to jest redukcja wymiarowości? Redukcja wymiarowości przy użyciu techniki t-SNE Rozdział 10. Wyszukiwanie ukrytych tematów w grupach dyskusyjnych poprzez ich klastrowanie i modelowanie tematyczne Nauka bez wskazówek, czyli uczenie nienadzorowane Klastrowanie grup dyskusyjnych metodą k-średnich Jak działa klastrowanie metodą k-średnich? Implementacja klastrowania metodą k-średnich od podstaw Implementacja klastrowania metodą k-średnich z wykorzystaniem pakietu scikit-learn Dobór wartości k Klastrowanie danych z grup dyskusyjnych metodą k-średnich Odkrywanie ukrytych tematów grup dyskusyjnych Modelowanie tematyczne z wykorzystaniem nieujemnej faktoryzacji macierzy Modelowanie tematyczne z wykorzystaniem ukrytej alokacji Dirichleta Proces rozwiązywania problemów uczenia maszynowego Dobre praktyki przygotowywania danych Dobra praktyka nr 1. Dokładne poznanie celu projektu Dobra praktyka nr 2. Zbieranie wszystkich istotnych pól Dobra praktyka nr 3. Ujednolicenie danych Dobra praktyka nr 4. Opracowanie niekompletnych danych Dobra praktyka nr 5. Przechowywanie dużych ilości danych Dobre praktyki tworzenia zbioru treningowego Dobra praktyka nr 6. Oznaczanie cech kategorialnych liczbami Dobra praktyka nr 7. Rozważenie kodowania cech kategorialnych Dobra praktyka nr 8. Rozważenie selekcji cech i wybór odpowiedniej metody Dobra praktyka nr 9. Rozważenie redukcji wymiarowości i wybór odpowiedniej metody Dobra praktyka nr 10. Rozważenie normalizacji cech Dobra praktyka nr 11. Inżynieria cech na bazie wiedzy eksperckiej Dobra praktyka nr 12. Inżynieria cech bez wiedzy eksperckiej Dobra praktyka nr 13. Dokumentowanie procesu tworzenia cech Dobra praktyka nr 14. Wyodrębnianie cech z danych tekstowych Dobre praktyki trenowania, oceniania i wybierania modelu Dobra praktyka nr 15. Wybór odpowiedniego algorytmu początkowego Dobra praktyka nr 16. Zapobieganie nadmiernemu dopasowaniu Dobra praktyka nr 17. Diagnozowanie nadmiernego i niedostatecznego dopasowania Dobra praktyka nr 18. Modelowanie dużych zbiorów danych Dobre praktyki wdrażania i monitorowania modelu Dobra praktyka nr 19. Zapisywanie, ładowanie i wielokrotne stosowanie modelu Dobra praktyka nr 20. Monitorowanie skuteczności modelu Dobra praktyka nr 21. Regularne aktualizowanie modelu Kategoryzacja zdjęć odzieży przy użyciu konwolucyjnej sieci neuronowej Bloki konstrukcyjne konwolucyjnej sieci neuronowej Warstwa konwolucyjna Warstwa nieliniowa Warstwa redukująca Budowanie konwolucyjnej sieci neuronowej na potrzeby klasyfikacji Badanie zbioru zdjęć odzieży Klasyfikowanie zdjęć odzieży za pomocą konwolucyjnej sieci neuronowej Tworzenie sieci Trening sieci Wizualizacja filtrów konwolucyjnych Wzmacnianie konwolucyjnej sieci neuronowej poprzez uzupełnianie danych Odwracanie obrazów w poziomie i pionie Obracanie obrazów Przesuwanie obrazów Usprawnianie klasyfikatora obrazów poprzez uzupełnianie danych Prognozowanie sekwencji danych przy użyciu rekurencyjnej sieci neuronowej Wprowadzenie do uczenia sekwencyjnego Architektura rekurencyjnej sieci neuronowej na przykładzie Mechanizm rekurencyjny Sieć typu "wiele do jednego" Sieć typu "jedno do wielu" Sieć synchroniczna typu "wiele do wielu" Sieć niesynchroniczna typu "wiele do wielu" Trening rekurencyjnej sieci neuronowej Długoterminowe zależności i sieć LSTM Analiza recenzji filmowych za pomocą sieci neuronowej Analiza i wstępne przetworzenie recenzji Zbudowanie prostej sieci LSTM Poprawa skuteczności poprzez wprowadzenie dodatkowych warstw Pisanie nowej powieści "Wojna i pokój" za pomocą rekurencyjnej sieci neuronowej Pozyskanie i analiza danych treningowych Utworzenie zbioru treningowego dla generatora tekstu Utworzenie generatora tekstu Trening generatora tekstu Zaawansowana analiza języka przy użyciu modelu Transformer Architektura modelu Samouwaga . Podejmowanie decyzji w skomplikowanych warunkach z wykorzystaniem uczenia przez wzmacnianie Przygotowanie środowiska do uczenia przez wzmacnianie Instalacja biblioteki PyTorch Instalacja narzędzi OpenAI Gym Wprowadzenie do uczenia przez wzmacnianie z przykładami Komponenty uczenia przez wzmacnianie Sumaryczna nagroda Algorytmy uczenia przez wzmacnianie Problem FrozenLake i programowanie dynamiczne Utworzenie środowiska FrozenLake Rozwiązanie problemu przy użyciu algorytmu iteracji wartości Rozwiązanie problemu przy użyciu algorytmu iteracji polityki Metoda Monte Carlo uczenia przez wzmacnianie Utworzenie środowiska Blackjack Ocenianie polityki w metodzie Monte Carlo Sterowanie Monte Carlo z polityką Problem taksówkarza i algorytm Q-uczenia Utworzenie środowiska Taxi Implementacja algorytmu Q-uczenia
Sygnatura czytelni BWEAiI: XII Ł 214
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 153052 (1 egz.)
Książka
W koszyku
Wydanie 5. odnosi się do oryginału.
Na stronie tytułowej również informacje o miejscach wydania i wydawcy oryginału - O'Reilly.
Rozdział 1. Pytania i odpowiedzi dotyczące Pythona Dlaczego ludzie używają Pythona? Jakość oprogramowania Wydajność programistów Czy Python jest językiem skryptowym? Jakie są wady języka Python? Kto dzisiaj używa Pythona? Co mogę zrobić za pomocą Pythona? Programowanie systemowe Graficzne interfejsy użytkownika (GUI) Skrypty internetowe Integracja komponentów Programowanie bazodanowe Szybkie prototypowanie Programowanie numeryczne i naukowe I dalej: gry, przetwarzanie obrazu, wyszukiwanie danych, robotyka, Excel Jak Python jest rozwijany i wspierany? Kompromisy związane z modelem open source Jakie są techniczne mocne strony Pythona? Jest zorientowany obiektowo i funkcyjny Jest darmowy Jest przenośny Ma duże możliwości Można go łączyć z innymi językami Jest względnie łatwy w użyciu Jest względnie łatwy do nauczenia się Zawdzięcza swoją nazwę Monty Pythonowi Jak Python wygląda na tle innych języków? Rozdział 2. Jak Python wykonuje programy? Wprowadzenie do interpretera Pythona Wykonywanie programu Z punktu widzenia programisty Z punktu widzenia Pythona Kompilacja kodu bajtowego Maszyna wirtualna Pythona Wpływ na wydajność Wpływ na proces programowania Warianty modeli wykonywania Alternatywne implementacje Pythona CPython standard Jython Python dla języka Java IronPython Python dla .NET Stackless: Python dla programowania współbieżnego PyPy Python dla szybkości i wydajności Narzędzia do optymalizacji działania programu Cython: hybryda Pythona/C Shed Skin: translator języka Python na C ++ Psyco oryginalny kompilator JIT Zamrożone pliki binarne Przyszłe możliwości? Rozdział 3. Jak wykonuje się programy? Interaktywny wiersz poleceń Uruchamianie sesji interaktywnej Ścieżka systemowa Nowe opcje systemu Windows w wersji 3.3: PATH, Launcher Gdzie zapisywać programy katalogi z kodem źródłowym Czego nie wpisywać znaki zachęty i komentarze Interaktywne wykonywanie kodu Do czego służy sesja interaktywna Eksperymentowanie Testowanie Uwagi praktyczne wykorzystywanie sesji interaktywnej Wpisywanie instrukcji wielowierszowych Systemowy wiersz poleceń i pliki źródłowe Pierwszy skrypt Wykonywanie plików z poziomu wiersza poleceń powłoki Sposoby użycia wiersza poleceń Uwagi praktyczne wykorzystywanie wierszy poleceń i plików Skrypty wykonywalne w stylu uniksowym #! Podstawy skryptów uniksowych Sztuczka z wyszukiwaniem programu przy użyciu polecenia env w systemie Unix Python 3.3 launcher #! w systemie Windows Klikanie ikon plików Podstawowe zagadnienia związane z klikaniem ikon plików Kliknięcie ikony w systemie Windows Sztuczka z funkcją input Inne ograniczenia programów uruchamianych kliknięciem ikony Importowanie i przeładowywanie modułów Podstawy importowania i przeładowywania modułów Więcej o modułach atrybuty Moduły i przestrzenie nazw Uwagi praktyczne instrukcje import i reload Wykorzystywanie funkcji exec do wykonywania plików modułów Interfejs użytkownika środowiska IDLE Szczegóły uruchamiania środowiska IDLE Podstawy środowiska IDLE Wybrane funkcje środowiska IDLE Zaawansowane narzędzia środowiska IDLE Uwagi praktyczne korzystanie ze środowiska IDLE Inne środowiska IDE Inne opcje wykonywania kodu Osadzanie wywołań Zamrożone binarne pliki wykonywalne Uruchamianie kodu z poziomu edytora tekstu Jeszcze inne możliwości uruchamiania Przyszłe możliwości? Jaką opcję wybrać? Część II Typy i operacje Rozdział 4. Wprowadzenie do typów obiektów Pythona Hierarchia pojęć w Pythonie Dlaczego korzystamy z typów wbudowanych Najważniejsze typy danych w Pythonie Liczby Łańcuchy znaków Operacje na sekwencjach Niezmienność Metody specyficzne dla typu Uzyskiwanie pomocy Inne sposoby kodowania łańcuchów znaków Ciągi znaków w formacie Unicode Dopasowywanie wzorców Listy Operacje na typach sekwencyjnych Operacje specyficzne dla typu Sprawdzanie granic Zagnieżdżanie Listy składane Słowniki Operacje na odwzorowaniach Zagnieżdżanie raz jeszcze Brakujące klucze testowanie za pomocą if Sortowanie kluczy pętle for Iteracja i optymalizacja Krotki Do czego służą krotki Pliki Pliki binarne Pliki tekstowe Unicode Inne narzędzia podobne do plików Inne typy podstawowe Jak zepsuć elastyczność kodu Klasy definiowane przez użytkownika I wszystko inne Rozdział 5. Typy liczbowe Podstawy typów liczbowych Pythona Literały liczbowe Wbudowane narzędzia liczbowe Operatory wyrażeń Pythona Połączone operatory stosują się do priorytetów Podwyrażenia grupowane są w nawiasach Pomieszane typy poddawane są konwersji Wprowadzenie: przeciążanie operatorów i polimorfizm Liczby w akcji Zmienne i podstawowe wyrażenia Formaty wyświetlania liczb Porównania zwykłe i łączone Dzielenie klasyczne, bez reszty i prawdziwe Obsługa różnych wersji Pythona Dzielenie bez reszty a odcinanie Dlaczego odcinanie ma znaczenie? Precyzja liczb całkowitych Liczby zespolone Notacja szesnastkowa, ósemkowa i dwójkowa literały i konwersje Operacje na poziomie bitów Inne wbudowane narzędzia numeryczne Inne typy liczbowe Typ Decimal (liczby dziesiętne) Typ Decimal zagadnienia podstawowe Globalne ustawianie precyzji liczb dziesiętnych Menedżer kontekstu dziesiętnego Typ Fraction (liczby ułamkowe) Typ Fraction zagadnienia podstawowe Dokładność numeryczna ułamków zwykłych i dziesiętnych Konwersje ułamków i typy mieszane Zbiory Podstawy zbiorów w Pythonie 2.6 i wersjach wcześniejszych Literały zbiorów w Pythonie 3.x i 2.7 Ograniczenia na obiekty niemutowalne i zbiory zamrożone Zbiory składane w Pythonie 3.x i 2.7 Dlaczego zbiory? Wartości Boolean Rozszerzenia numeryczne Rozdział 6. Wprowadzenie do typów dynamicznych Sprawa brakujących deklaracji typu Zmienne, obiekty i referencje Typy powiązane są z obiektami, a nie ze zmiennymi Obiekty są uwalniane Referencje współdzielone Referencje współdzielone a modyfikacje w miejscu Referencje współdzielone a równość Typy dynamiczne są wszędzie Rozdział 7. Łańcuchy znaków Co znajdziesz w tym rozdziale Unicode krótka historia Łańcuchy znaków podstawy Literały łańcuchów znaków Łańcuchy znaków w apostrofach i cudzysłowach są tym samym Sekwencje ucieczki reprezentują znaki specjalne Surowe łańcuchy znaków blokują sekwencje ucieczki Potrójne cudzysłowy i apostrofy kodują łańcuchy znaków będące wielowierszowymi blokami Łańcuchy znaków w akcji Podstawowe operacje Indeksowanie i wycinki Rozszerzone wycinki trzeci limit i obiekty wycinków Narzędzia do konwersji łańcuchów znaków Konwersje kodu znaków Modyfikowanie łańcuchów znaków Metody łańcuchów znaków Składnia wywoływania metod Metody typów znakowych Przykłady metod łańcuchów znaków modyfikowanie Przykłady metod łańcuchów znaków analiza składniowa tekstu Inne często używane metody łańcuchów znaków Oryginalny moduł string (usunięty w wersji 3.0) Wyrażenia formatujące łańcuchy znaków Formatowanie łańcuchów tekstu z użyciem wyrażeń formatujących podstawy Składnia zaawansowanych wyrażeń formatujących Przykłady zaawansowanych wyrażeń formatujących Wyrażenia formatujące oparte na słowniku Formatowanie łańcuchów z użyciem metody format Podstawy Używanie kluczy, atrybutów i przesunięć Zaawansowana składnia wywołań metody format Przykłady zaawansowanego formatowania łańcuchów znaków z użyciem metody format Porównanie metody format z wyrażeniami formatującymi Dlaczego miałbyś korzystać z metody format Dodatkowe możliwości: wbudowane funkcje czy ogólne techniki programowania Elastyczna składnia odwołań: dodatkowa złożoność i nakładanie się funkcjonalności Jawne odwołania do wartości: teraz opcjonalne i prawdopodobnie nie będą używane Nazwy metod i argumenty neutralne kontekstowo estetyka kodu kontra zastosowania praktyczne Funkcje a wyrażenia: niewielka wygoda Generalne kategorie typów Typy z jednej kategorii współdzielą zbiory operacji Typy mutowalne można modyfikować w miejscu Rozdział 8. Listy oraz słowniki Listy Listy w akcji Podstawowe operacje na listach Iteracje po listach i składanie list Indeksowanie, wycinki i macierze Modyfikacja list w miejscu Przypisywanie do indeksu i wycinków Wywołania metod list Kilka słów o sortowaniu list Inne, często stosowane metody list Inne popularne operacje na listach Słowniki Słowniki w akcji Podstawowe operacje na słownikach Modyfikacja słowników w miejscu Inne metody słowników Przykład baza danych o filmach Przykład mapowanie wartości na klucze Uwagi na temat korzystania ze słowników Wykorzystywanie słowników do symulowania elastycznych list liczby całkowite jako klucze Wykorzystywanie słowników z rzadkimi strukturami danych krotki jako klucze Unikanie błędów z brakującymi kluczami Zagnieżdżanie słowników Inne sposoby tworzenia słowników Zmiany dotyczące słowników w Pythonie 3.x i 2.7 Słowniki składane w wersjach 3.x i 2.7 Widoki słowników w wersji 3.x (oraz wersji 2.7 przy użyciu nowych metod) Widoki słowników i zbiory Sortowanie kluczy słowników w wersji 3.x Porównywanie rozmiarów słowników nie działa w 3.x W wersji 3.x metoda has_key nie istnieje, niech żyje in! Rozdział 9. Krotki, pliki i wszystko inne Krotki Krotki w akcji Właściwości składni krotek przecinki i nawiasy Konwersje, metody oraz niemutowalność Dlaczego istnieją listy i krotki Repetytorium: rekordy krotki nazwane Pliki Otwieranie plików Wykorzystywanie plików Pliki w akcji Pliki tekstowe i binarne krótka historia Przechowywanie obiektów Pythona w plikach i przetwarzanie ich Przechowywanie natywnych obiektów Pythona moduł pickle Przechowywanie obiektów Pythona w formacie JSON Przechowywanie spakowanych danych binarnych moduł struct Menedżery kontekstu plików Inne narzędzia powiązane z plikami Przegląd i podsumowanie podstawowych typów obiektów Elastyczność obiektów Referencje a kopie Porównania, testy równości i prawda Porównywania i sortowania typów mieszanych w Pythonie 2.x i 3.x Porównywanie słowników w Pythonie 2.x i 3.x Prawda czy fałsz, czyli znaczenie True i False w Pythonie Obiekt None Typ bool Hierarchie typów Pythona Obiekty typów Inne typy w Pythonie Pułapki typów wbudowanych Przypisanie tworzy referencje, nie kopie Powtórzenie dodaje jeden poziom zagłębienia Uwaga na cykliczne struktury danych Typów niemutowalnych nie można modyfikować w miejscu Sprawdź swoją wiedzę ćwiczenia do części drugiej Część III Instrukcje i składnia Rozdział 10. Wprowadzenie do instrukcji Pythona Raz jeszcze o hierarchii pojęciowej języka Python Instrukcje Pythona Historia dwóch if Co dodaje Python Co usuwa Python Nawiasy są opcjonalne Koniec wiersza jest końcem instrukcji Koniec wcięcia to koniec bloku Skąd bierze się składnia z użyciem wcięć Kilka przypadków specjalnych Przypadki specjalne dla reguły o końcu wiersza Przypadki specjalne dla reguły o wcięciach bloków Szybki przykład interaktywne pętle Prosta pętla interaktywna Wykonywanie obliczeń na danych wpisywanych przez użytkownika Obsługa błędów poprzez sprawdzanie danych wejściowych Obsługa błędów za pomocą instrukcji try Obsługa liczb zmiennoprzecinkowych Kod zagnieżdżony na trzy poziomy głębokości Rozdział 11. Przypisania, wyrażenia i wyświetlanie Instrukcje przypisania Formy instrukcji przypisania Przypisanie sekwencji Zaawansowane wzorce przypisywania sekwencji Rozszerzona składnia rozpakowania sekwencji w Pythonie 3.x Rozszerzona składania rozpakowania w działaniu Przypadki brzegowe Wygodny gadżet Zastosowanie w pętli for Przypisanie z wieloma celami Przypisanie z wieloma celami a współdzielone referencje Przypisania rozszerzone Przypisania rozszerzone a współdzielone referencje Reguły dotyczące nazw zmiennych Konwencje dotyczące nazewnictwa Nazwy nie mają typu, ale obiekty tak Instrukcje wyrażeń Instrukcje wyrażeń i modyfikacje w miejscu Polecenia print Funkcja print z Pythona 3.x Format wywołania Funkcja print z wersji 3.x w działaniu Instrukcja print w Pythonie 2.x Formy instrukcji Instrukcja print Pythona 2.x w działaniu Przekierowanie strumienia wyjściowego Program Witaj, świecie! Ręczne przekierowanie strumienia wyjścia Automatyczne przekierowanie strumienia Wyświetlanie niezależne od wersji Konwerter 2to3 Importowanie z __future__ Neutralizacja różnic w wyświetlaniu za pomocą kodu Rozdział 12. Testy if i reguły składni Instrukcje if Ogólny format Proste przykłady Rozgałęzienia kodu Obsługa domyślnych wartości wyboru Obsługa bardziej złożonych operacji Reguły składni Pythona raz jeszcze Ograniczniki bloków reguły tworzenia wcięć Unikaj mieszania tabulatorów i spacji nowa opcja sprawdzania błędów w Pythonie 3.x Ograniczniki instrukcji wiersze i znaki kontynuacji Kilka przypadków specjalnych Testy prawdziwości i testy logiczne Wyrażenie trójargumentowe if/else Rozdział 13. Pętle while i for Pętle while Ogólny format Przykłady Instrukcje break, continue, pass oraz else w pętli Ogólny format pętli Instrukcja pass Instrukcja continue Instrukcja break Klauzula else pętli Więcej o części pętli else Pętle for Ogólny format Przykłady Podstawowe zastosowanie Inne typy danych Przypisanie krotek w pętli for Rozszerzone przypisanie sekwencji w pętlach for w Pythonie 3.x Zagnieżdżone pętle for Techniki tworzenia pętli Pętle z licznikami range Skanowanie sekwencji pętla while z funkcją range kontra pętla for Przetasowania sekwencji funkcje range i len Przechodzenie niewyczerpujące range kontra wycinki Modyfikowanie list range kontra listy składane Przechodzenie równoległe zip oraz map Równoznaczność funkcji map w Pythonie 2.x Tworzenie słowników za pomocą funkcji zip Generowanie wartości przesunięcia i elementów enumerate Rozdział 14. Iteracje i listy składane Iteracje pierwsze spojrzenie Protokół iteracyjny iteratory plików Iterowanie ręczne iter i next Pełny protokół iteracji Iteracje ręczne Inne wbudowane typy iterowalne Listy składane wprowadzenie Podstawy list składanych Wykorzystywanie list składanych w plikach Rozszerzona składnia list składanych Klauzula filtrująca: if Zagnieżdżone pętle: klauzula for Inne konteksty iteracyjne Nowe obiekty iterowalne w Pythonie 3.x Wpływ na kod w wersji 2.x zalety i wady Obiekt iterowalny range Obiekty iterowalne map, zip i filter Iteratory wielokrotne kontra pojedyncze Obiekty iterowalne widoki słownika Inne zagadnienia związane z iteracjami Rozdział 15. Wprowadzenie do dokumentacji Źródła dokumentacji Pythona Komentarze ze znakami # Funkcja dir Notki dokumentacyjne __doc__ Notki dokumentacyjne zdefiniowane przez użytkownika Standardy i priorytety notek dokumentacyjnych Wbudowane notki dokumentacyjne PyDoc funkcja help PyDoc raporty HTML Python 3.2 i nowsze wersje: tryb PyDoc dla wszystkich przeglądarek Python 3.2 i wersje wcześniejsze: klient GUI Nie tylko notki docstrings pakiet Sphinx Zbiór standardowej dokumentacji Zasoby internetowe Publikowane książki Często spotykane problemy programistyczne Sprawdź swoją wiedzę ćwiczenia do części trzeciej Część IV Funkcje i generatory Rozdział 16. Podstawy funkcji Dlaczego używamy funkcji Tworzenie funkcji Instrukcje def Instrukcja def uruchamiana jest w czasie wykonania Pierwszy przykład definicje i wywoływanie Definicja Wywołanie Polimorfizm w Pythonie Drugi przykład przecinające się sekwencje Definicja Wywołania Raz jeszcze o polimorfizmie Zmienne lokalne Rozdział 17. Zasięgi Podstawy zasięgów w Pythonie Reguły dotyczące zasięgów Rozwiązywanie nazw reguła LEGB Inne zasięgi Pythona przegląd Przykład zasięgu Zasięg wbudowany Przedefiniowanie wbudowanych nazw: lepiej czy gorzej? Instrukcja global Projektowanie programów: minimalizowanie stosowania zmiennych globalnych Projektowanie programów: minimalizowanie modyfikacji dokonywanych pomiędzy plikami Inne metody dostępu do zmiennych globalnych Zasięgi a funkcje zagnieżdżone Szczegóły dotyczące zasięgów zagnieżdżonych Przykłady zasięgów zagnieżdżonych Funkcje fabrykujące: domknięcia Proste funkcje fabrykujące Funkcje fabrykujące kontra klasy, runda pierwsza Zachowywanie stanu zasięgu zawierającego za pomocą argumentów domyślnych Zasięgi zagnieżdżone, wartości domyślne i wyrażenia lambda Zmienne pętli mogą wymagać wartości domyślnych, a nie zasięgów Dowolne zagnieżdżanie zasięgów Instrukcja nonlocal w Pythonie 3.x Podstawy instrukcji nonlocal Instrukcja nonlocal w akcji Użycie zmiennych nielokalnych w celu modyfikacji Przypadki graniczne Czemu służą zmienne nonlocal? Opcje zachowania stanu Zachowanie stanu: zmienne nonlocal (tylko w wersji 3.x) Zachowanie stanu: zmienne globalne tylko jedna kopia Zachowanie stanu: klasy jawne atrybuty (wprowadzenie) Zachowanie stanu: atrybuty funkcji (w wersjach 3.x i 2.x) Zachowanie stanu: obiekty mutowalne duchy przeszłości języka Pyton? Rozdział 18. Argumenty Podstawy przekazywania argumentów Argumenty a współdzielone referencje Unikanie modyfikacji argumentów mutowalnych Symulowanie parametrów wyjścia i wielu wyników działania Specjalne tryby dopasowywania argumentów Podstawy dopasowywania argumentów Składnia dopasowania argumentów Dopasowywanie argumentów szczegóły Przykłady ze słowami kluczowymi i wartościami domyślnymi Słowa kluczowe Wartości domyślne Łączenie słów kluczowych i wartości domyślnych Przykłady dowolnych argumentów Nagłówki: zbieranie argumentów Wywołania: rozpakowywanie argumentów Ogólne zastosowanie funkcji Zlikwidowana wbudowana funkcja apply (Python 2.x) Argumenty tylko ze słowami kluczowymi (z Pythona 3.x) Reguły dotyczące kolejności Czemu służą argumenty ze słowami kluczowymi? Przykład z funkcją obliczającą minimum Pełne rozwiązanie Dodatkowy bonus Puenta Uogólnione funkcje działające na zbiorach Emulacja funkcji print z Pythona 3.0 Wykorzystywanie argumentów ze słowami kluczowymi Rozdział 19. Zaawansowane zagadnienia dotyczące funkcji Koncepcje projektowania funkcji Funkcje rekurencyjne Sumowanie z użyciem rekurencji Implementacje alternatywne Pętle a rekurencja Obsługa dowolnych struktur Rekurencja kontra kolejki i stosy Cykle, ścieżki i ograniczenia stosu Więcej przykładów rekurencji Obiekty funkcji atrybuty i adnotacje Pośrednie wywołania funkcji obiekty pierwszej klasy Introspekcja funkcji Atrybuty funkcji Adnotacje funkcji w Pythonie 3.x Funkcje anonimowe lambda Podstawy wyrażeń lambda Po co używamy wyrażeń lambda Wielotorowe rozgałęzienia kodu finał Jak (nie) zaciemniać kodu napisanego w Pythonie Zasięgi: wyrażenia lambda również można zagnieżdżać Narzędzia programowania funkcyjnego Odwzorowywanie funkcji na obiekty iterowalne map Wybieranie elementów obiektów iterowalnych funkcja filter Łączenie elementów obiektów iterowalnych funkcja reduce Rozdział 20. Listy składane i generatory Listy składane i narzędzia funkcyjne Listy składane kontra funkcja map Dodajemy warunki i pętle zagnieżdżone filter Formalna składnia list składanych Przykład listy składane i macierze Nie nadużywaj list składanych: reguła KISS Druga strona medalu: wydajność, zwięzłość, ekspresyjność Funkcje i wyrażenia generatorów Funkcje generatorów yield kontra return Zawieszanie stanu Integracja protokołu iteracji Funkcje generatorów w działaniu Dlaczego funkcje generatorów? Rozszerzony protokół funkcji generatorów send kontra next Wyrażenia generatorów obiekty iterowalne spotykają złożenia Dlaczego wyrażenia generatora? Wyrażenia generatora a funkcja map Wyrażenia generatora a filtry Funkcje generatorów a wyrażenia generatorów Generatory są obiektami o jednoprzebiegowej iteracji Generowanie wyników we wbudowanych typach, narzędziach i klasach Generatory i narzędzia biblioteczne: skanery katalogów Generatory i funkcje aplikacji Przegląd: obiekty iterowalne definiowane przez użytkownika w klasach Przykład generowanie mieszanych sekwencji Sekwencje mieszające Proste funkcje Funkcje generatora Wyrażenia generatora Funkcja tester Permutacje: wszystkie możliwe kombinacje Nie nadużywaj generatorów: reguła EIBTI Inne spojrzenie: miejsce i czas, zwięzłość, ekspresyjność Przykład emulowanie funkcji zip i map za pomocą narzędzi iteracyjnych Tworzymy własną implementację funkcji map Własna wersja funkcji zip(...) i map(None, ...) Podsumowanie obiektów składanych Zakresy i zmienne składane Zrozumieć zbiory i słowniki składane Rozszerzona składnia zbiorów i słowników składanych Rozdział 21. Wprowadzenie do pomiarów wydajności Pomiary wydajności iteracji Moduł pomiaru czasu domowej roboty Skrypt mierzący wydajność Wyniki pomiarów czasu Wpływ wywołań funkcji: map Inne rozwiązania dla modułu do pomiaru czasu Użycie argumentów ze słowami kluczowymi w wersji 3.x Inne sugestie Mierzenie czasu iteracji z wykorzystaniem modułu timeit Podstawowe reguły korzystania z modułu timeit Interaktywne użycie i wywołania API Korzystanie z poziomu wiersza polecenia Mierzenie czasu działania instrukcji wielowierszowych Inne tryby użytkowania: instalacje, podsumowania i obiekty Moduł i skrypt testujący z użyciem modułu timeit Wyniki działania skryptu testującego Jeszcze trochę zabawy z mierzeniem wydajności Wygrana funkcji map i rzadka porażka PyPy Jeszcze kilka słów o wpływie wywołań funkcji Techniki porównywania własne funkcje kontra moduł timeit Możliwości ulepszenia kod instalacyjny Inne zagadnienia związane z mierzeniem szybkości działania kodu test pystone Pułapki związane z funkcjami Lokalne nazwy są wykrywane w sposób statyczny Wartości domyślne i obiekty mutowalne Funkcje, które nie zwracają wyników Różne problemy związane z funkcjami Otaczanie zasięgów i zmiennych pętli: funkcje fabrykujące Ukrywanie wbudowanych funkcji przez przypisania: cieniowanie Część V Moduły i pakiety Rozdział 22. Moduły wprowadzenie Dlaczego używamy modułów Architektura programu w Pythonie Struktura programu Importowanie i atrybuty Moduły biblioteki standardowej Jak działa importowanie 1. Odszukanie modułu 2. Kompilowanie (o ile jest to potrzebne) 3. Wykonanie Pliki kodu bajtowego __pycache__ w Pythonie 3.2+ Modele plików kodu bajtowego w akcji Ścieżka wyszukiwania modułów Konfigurowanie ścieżki wyszukiwania Wariacje ścieżki wyszukiwania modułów Lista sys.path Wybór pliku modułu Kody źródłowe modułów Priorytety wyboru Importowanie punktów zaczepienia i plików ZIP Pliki zoptymalizowanego kodu bajtowego
Rozdział 23. Podstawy tworzenia modułów Tworzenie modułów Nazwy modułów Inne rodzaje modułów Używanie modułów Instrukcja import Instrukcja from Instrukcja from * Operacja importowania jest przeprowadzana tylko raz Kod inicjalizujący Instrukcje import oraz from są przypisaniami Modyfikowanie elementów mutowalnych w modułach Modyfikowanie nazw pomiędzy plikami Równoważność instrukcji import oraz from Potencjalne pułapki związane z użyciem instrukcji from Kiedy wymagane jest stosowanie instrukcji import Przestrzenie nazw modułów Pliki generują przestrzenie nazw Słowniki przestrzeni nazw: __dict__ Kwalifikowanie nazw atrybutów Importowanie a zasięgi Zagnieżdżanie przestrzeni nazw Przeładowywanie modułów Podstawy przeładowywania modułów Przykład przeładowywania z użyciem reload Rozdział 24. Pakiety modułów Podstawy importowania pakietów Pakiety a ustawienia ścieżki wyszukiwania Pliki pakietów __init__.py Role pliku inicjalizacji pakietu Przykład importowania pakietu Instrukcja from a instrukcja import w importowaniu pakietów Do czego służy importowanie pakietów Historia trzech systemów Względne importowanie pakietów Zmiany w Pythonie 3.0 Podstawy importowania względnego Do czego służą importy względne Importowanie względne w wersji 3.x Względne importy a bezwzględne ścieżki pakietów Zasięg importów względnych Podsumowanie reguł wyszukiwania modułów Importy względne w działaniu Importowanie spoza pakietów Importy wewnątrz pakietów Importy są nadal względne w stosunku do bieżącego katalogu roboczego Użycie importów względnych i bezwzględnych Importy względne przeszukują tylko pakiety Importy są nadal względne w stosunku do katalogu roboczego (cd.) Pułapki związane z importem względnym w pakietach: zastosowania mieszane Problem Rozwiązanie nr 1: podkatalogi pakietów Rozwiązanie 2: import bezwzględny z użyciem pełnej ścieżki Przykład: aplikacja z kodem autotestu modułu (wprowadzenie) Pakiety przestrzeni nazw w Pythonie 3.3 Semantyka pakietów przestrzeni nazw Algorytm importu Wpływ na zwykłe pakiety: opcjonalne pliki __init__.py Pakiety przestrzeni nazw w akcji Zagnieżdżanie pakietów przestrzeni nazw Pliki nadal mają pierwszeństwo przed katalogami Rozdział 25. Zaawansowane zagadnienia związane z modułami Koncepcje związane z projektowaniem modułów Ukrywanie danych w modułach Minimalizacja niebezpieczeństw użycia from * _X oraz __all__ Włączanie opcji z przyszłych wersji Pythona: __future__ Mieszane tryby użycia __name__ oraz __main__ Testy jednostkowe z wykorzystaniem atrybutu __name__ Przykład kod działający w dwóch trybach Symbole walut: Unicode w akcji Notki dokumentacyjne: dokumentacja modułu w działaniu Modyfikacja ścieżki wyszukiwania modułów Rozszerzenie as dla instrukcji import oraz from Przykład moduły są obiektami Importowanie modułów z użyciem nazwy w postaci ciągu znaków Uruchamianie ciągów znaków zawierających kod Bezpośrednie wywołania: dwie opcje Przykład przechodnie przeładowywanie modułów Przeładowywanie rekurencyjne Testowanie przeładowań rekurencyjnych Rozwiązania alternatywne Testowanie wariantów przeładowania Pułapki związane z modułami Kolizje nazw modułów: pakiety i importowanie względne w pakietach W kodzie najwyższego poziomu kolejność instrukcji ma znaczenie Instrukcja from kopiuje nazwy, jednak łącza już nie Instrukcja from * może zaciemnić znaczenie zmiennych Funkcja reload może nie mieć wpływu na obiekty importowane za pomocą from Funkcja reload i instrukcja from a testowanie interaktywne Rekurencyjne importowanie za pomocą from może nie działać Część VI Klasy i programowanie zorientowane obiektowo Rozdział 26. Programowanie zorientowane obiektowo wprowadzenie Po co używa się klas Programowanie zorientowane obiektowo z dystansu Wyszukiwanie atrybutów dziedziczonych Klasy a instancje Wywołania metod klasy Tworzenie drzew klas Przeciążanie operatorów Programowanie zorientowane obiektowo oparte jest na ponownym wykorzystaniu kodu Polimorfizm i klasy Programowanie przez dostosowanie Rozdział 27. Podstawy tworzenia klas Klasy generują wiele obiektów instancji Obiekty klas udostępniają zachowania domyślne Obiekty instancji są rzeczywistymi elementami Pierwszy przykład Klasy dostosowujemy do własnych potrzeb przez dziedziczenie Drugi przykład Klasy są atrybutami w modułach Klasy mogą przechwytywać operatory Pythona Trzeci przykład Zwracamy wyniki lub nie Po co przeciążamy operatory Najprostsza klasa Pythona na świecie Jeszcze kilka słów o rekordach: klasy kontra słowniki Rozdział 28. Bardziej realistyczny przykład Krok 1. tworzenie instancji Tworzenie konstruktorów Testowanie w miarę pracy Wykorzystywanie kodu na dwa sposoby Krok 2. dodawanie metod Tworzenie kodu metod Krok 3. przeciążanie operatorów Udostępnienie sposobów wyświetlania Krok 4. dostosowywanie zachowania za pomocą klas podrzędnych Tworzenie klas podrzędnych Rozszerzanie metod niepoprawny sposób Rozszerzanie metod poprawny sposób Polimorfizm w akcji Dziedziczenie, dostosowanie do własnych potrzeb i rozszerzenie Programowanie zorientowane obiektowo idea Krok 5. dostosowanie do własnych potrzeb także konstruktorów Programowanie zorientowane obiektowo jest prostsze, niż się wydaje Inne sposoby łączenia klas Krok 6. wykorzystywanie narzędzi do introspekcji Specjalne atrybuty klas Uniwersalne narzędzie do wyświetlania Atrybuty instancji a atrybuty klas Nazwy w klasach narzędziowych Ostateczna postać naszych klas Krok 7. i ostatni przechowywanie obiektów w bazie danych Obiekty pickle i shelve Moduł pickle Moduł shelve Przechowywanie obiektów w bazie danych za pomocą shelve Interaktywna eksploracja obiektów shelve Uaktualnianie obiektów w pliku shelve Przyszłe kierunki rozwoju Rozdział 29. Szczegóły kodowania klas Instrukcja class Ogólna forma Przykład Metody Przykład metody Wywoływanie konstruktorów klas nadrzędnych Inne możliwości wywoływania metod Dziedziczenie Tworzenie drzewa atrybutów Specjalizacja odziedziczonych metod Techniki interfejsów klas Abstrakcyjne klasy nadrzędne Abstrakcyjne klasy nadrzędne z Pythona 3.x oraz 2.6+: wprowadzenie Przestrzenie nazw cała historia Proste nazwy globalne, o ile nie są przypisane Nazwy atrybutów przestrzenie nazw obiektów Zen przestrzeni nazw Pythona przypisania klasyfikują zmienne Klasy zagnieżdżone jeszcze kilka słów o regule LEGB Słowniki przestrzeni nazw przegląd Łącza przestrzeni nazw przechodzenie w górę drzewa klas Raz jeszcze o notkach dokumentacyjnych Klasy a moduły Rozdział 30. Przeciążanie operatorów Podstawy Konstruktory i wyrażenia __init__ i __sub__ Często spotykane metody przeciążania operatorów Indeksowanie i wycinanie __getitem__ i __setitem__ Wycinki Wycinanie i indeksowanie w Pythonie 2.x Metoda __index__ w wersji 3.x nie służy do indeksowania! Iteracja po indeksie __getitem__ Obiekty iteratorów __iter__ i __next__ Iteratory zdefiniowane przez użytkownika Skanowanie pojedyncze i wielokrotne Klasy i generatory Wiele iteracji po jednym obiekcie Klasy i wycinki Alternatywa: metoda__iter__ i instrukcja yield Wielokrotne iteracje za pomocą instrukcji yield Test przynależności __contains__, __iter__ i __getitem__ Dostęp do atrybutów __getattr__ oraz __setattr__ Odwołania do atrybutów Przypisywanie wartości i usuwanie atrybutów Inne narzędzia do zarządzania atrybutami Emulowanie prywatności w atrybutach instancji Reprezentacje łańcuchów __repr__ oraz __str__ Po co nam dwie metody wyświetlania? Uwagi dotyczące wyświetlania Dodawanie prawostronne i miejscowa modyfikacja: metody __radd__ i __iadd__ Dodawanie prawostronne Stosowanie metody __add__ w __radd__ Eskalowanie typu klasy Dodawanie w miejscu Wywołania __call__ Interfejsy funkcji i kod oparty na wywołaniach zwrotnych Porównania __lt__, __gt__ i inne Metoda __cmp__ w 2.x Testy logiczne __bool__ i __len__ Metody logiczne w Pythonie 2.x Destrukcja obiektu __del__ Uwagi dotyczące stosowania destruktorów Rozdział 31. Projektowanie z użyciem klas Python a programowanie zorientowane obiektowo Polimorfizm to interfejsy, a nie sygnatury wywołań Programowanie zorientowane obiektowo i dziedziczenie związek jest Programowanie zorientowane obiektowo i kompozycja związki typu ma Raz jeszcze procesor strumienia danych Programowanie zorientowane obiektowo a delegacja obiekty opakowujące Pseudoprywatne atrybuty klas Przegląd zniekształcania nazw zmiennych Po co używa się atrybutów pseudoprywatnych Metody są obiektami z wiązaniem i bez wiązania W wersji 3.x metody niezwiązane są funkcjami Metody związane i inne obiekty wywoływane Inne obiekty wywoływane Klasy są obiektami uniwersalne fabryki obiektów Do czego służą fabryki Dziedziczenie wielokrotne klasy mieszane Tworzenie klas mieszanych Odczyt listy atrybutów obiektu __dict__ Wydobywanie atrybutów odziedziczonych z użyciem dir() Wypisywanie atrybutów dla każdego obiektu w drzewie klas Uruchomienie kodu wyświetlającego drzewo Inny przykład użycia: wyświetlenie nazw zawierających znaki podkreślenia Inny przykład użycia: uruchomienie kodu z większymi modułami Moduł kolektora Miejsce na udoskonalenia: algorytm MRO, sloty, interfejsy graficzne Inne zagadnienia związane z projektowaniem Rozdział 32. Zaawansowane zagadnienia związane z klasami Rozszerzanie typów wbudowanych Rozszerzanie typów za pomocą osadzania Rozszerzanie typów za pomocą klas podrzędnych Klasy w nowym stylu Jak nowy jest nowy styl Nowości w klasach w nowym stylu Pomijanie instancji we wbudowanych operacjach przy pobieraniu atrybutów Dlaczego zmieniło się wyszukiwanie? Implikacje wynikające z przechwytywania atrybutów Wymogi kodowania obiektów pośredniczących Więcej informacji Zmiany w modelu typów Konsekwencje z perspektywy kontroli typów Wszystkie obiekty dziedziczą po klasie object Implikacje wynikające z użycia metod domyślnych Zmiany w dziedziczeniu diamentowym Implikacje wynikające z dziedziczenia diamentowego Jawne rozwiązywanie konfliktów Zakres zmian kolejności wyszukiwania Więcej o kolejności odwzorowywania nazw Algorytm MRO Śledzenie algorytmu MRO Przykład wiązanie atrybutów ze źródłami dziedziczenia Nowości w klasach w nowym stylu Sloty: deklaracje atrybutów Podstawy slotów Sloty i słowniki przestrzeni nazw Wiele slotów w klasach nadrzędnych Generyczna obsługa slotów i innych wirtualnych atrybutów Zasady używania slotów Przykład stosowania slotów: klasa ListTree i funkcja mapattrs Co z szybkością slotów? Właściwości klas: dostęp do atrybutów Podstawy właściwości Narzędzia atrybutów: __getattribute__ i deskryptory Inne zmiany i rozszerzenia klas Metody statyczne oraz metody klasy Do czego potrzebujemy metod specjalnych Metody statyczne w 2.x i 3.x Alternatywy dla metod statycznych Używanie metod statycznych i metod klas Zliczanie instancji z użyciem metod statycznych Zliczanie instancji z metodami klas Zliczanie instancji dla każdej z klas z użyciem metod klas Dekoratory i metaklasy część 1. Podstawowe informacje o dekoratorach funkcji Pierwsze spojrzenie na funkcję dekoratora zdefiniowaną przez użytkownika Pierwsze spojrzenie na dekoratory klas i metaklasy Dalsza lektura Wbudowana funkcja super: zmiana na lepsze czy na gorsze? Wielka debata o funkcji super Tradycyjny, uniwersalny i ogólny sposób wywoływania klasy nadrzędnej Podstawy i kompromisy użycia funkcji super Stara semantyka: magiczny obiekt pośredniczący w wersji 3.x Pułapka: beztroskie stosowanie wielokrotnego dziedziczenia Ograniczenie: przeciążanie operatorów Różnice w użyciu w wersji 2.x: rozbudowane wywołania Zalety funkcji super: zmiany drzewa i kierowania metod Zmiana klasy w trakcie działania programu a funkcja super Kooperatywne kierowanie metod w drzewie wielokrotnego dziedziczenia Podstawy: kooperatywne wywołanie funkcji super w akcji Ograniczenie: wymóg zakotwiczenia łańcucha wywołań Zakresy: model wszystko lub nic Elastyczność założenia dotyczącego kolejności wywołań Dostosowywanie: zastąpienie metody Sprzęganie: zastosowanie w mieszaniu klas Dostosowywanie: wymóg takich samych argumentów Podsumowanie funkcji super Pułapki związane z klasami Modyfikacja atrybutów klas może mieć efekty uboczne Modyfikowanie mutowalnych atrybutów klas również może mieć efekty uboczne Dziedziczenie wielokrotne kolejność ma znaczenie Zakresy w metodach i klasach Różne pułapki związane z klasami Rozsądnie wybieraj miejsce przechowywania atrybutu w instancji lub w klasie Zazwyczaj wywołuj konstruktory klasy nadrzędnej Klasy wykorzystujące delegację w 3.x __getattr__ i funkcje wbudowane Przesadne opakowywanie Część VII Wyjątki oraz narzędzia Rozdział 33. Podstawy wyjątków Po co używa się wyjątków Role wyjątków Wyjątki w skrócie Domyślny program obsługi wyjątków Przechwytywanie wyjątków Zgłaszanie wyjątków Wyjątki zdefiniowane przez użytkownika Działania końcowe Rozdział 34. Szczegółowe informacje dotyczące wyjątków Instrukcja try/except/else Jak działa instrukcja try Części instrukcji try Przechwytywanie wybranych i wszystkich wyjątków Przechwytywanie wszystkich wyjątków: pusta instrukcja except i klasa Exception Część try/else Przykład zachowanie domyślne Przykład przechwytywanie wbudowanych wyjątków Instrukcja try/finally Przykład działania kończące kod z użyciem try/finally Połączona instrukcja try/except/finally Składnia połączonej instrukcji try Łączenie finally oraz except za pomocą zagnieżdżania Przykład połączonego try Instrukcja raise Zgłaszanie wyjątków Zakresy widoczności zmiennych w instrukcjach try i except Przekazywanie wyjątków za pomocą raise Łańcuchy wyjątków w Pythonie 3.x raise from Instrukcja assert Przykład wyłapywanie ograniczeń (ale nie błędów!) Menedżery kontekstu with/as Podstawowe zastosowanie Protokół zarządzania kontekstem Kilka menedżerów kontekstu w wersjach 3.1, 2.7 i nowszych Rozdział 35. Obiekty wyjątków Wyjątki powrót do przyszłości Wyjątki oparte na łańcuchach znaków znikają Wyjątki oparte na klasach Tworzenie klas wyjątków Do czego służą hierarchie wyjątków Wbudowane klasy wyjątków Kategorie wbudowanych wyjątków Domyślne wyświetlanie oraz stan Własne sposoby wyświetlania Własne dane oraz zachowania Udostępnianie szczegółów wyjątku Udostępnianie metod wyjątków Rozdział 36. Projektowanie z wykorzystaniem wyjątków Zagnieżdżanie programów obsługi wyjątków Przykład zagnieżdżanie przebiegu sterowania Przykład zagnieżdżanie składniowe Zastosowanie wyjątków Wychodzenie z głęboko zagnieżdżonych pętli: instrukcja go to Wyjątki nie zawsze są błędami Funkcje mogą sygnalizować warunki za pomocą raise Zamykanie plików oraz połączeń z serwerem Debugowanie z wykorzystaniem zewnętrznych instrukcji try Testowanie kodu wewnątrz tego samego procesu Więcej informacji na temat funkcji sys.exc_info Wyświetlanie błędów i śladów stosu Wskazówki i pułapki dotyczące projektowania wyjątków Co powinniśmy opakować w try Jak nie przechwytywać zbyt wiele unikanie pustych except i wyjątków Jak nie przechwytywać zbyt mało korzystanie z kategorii opartych na klasach Podsumowanie podstaw języka Python Zbiór narzędzi Pythona Narzędzia programistyczne przeznaczone do większych projektów Część VIII Zagadnienia zaawansowane Rozdział 37. Łańcuchy znaków Unicode oraz łańcuchy bajtowe Zmiany w łańcuchach znaków w Pythonie 3.x Podstawy łańcuchów znaków Kodowanie znaków Jak Python zapisuje ciągi znaków w pamięci Typy łańcuchów znaków Pythona Po co są stosowane różne typy ciągów? Pliki binarne i tekstowe Podstawy kodowania ciągów znaków Literały tekstowe w Pythonie 3.x Literały Unicode w Pythonie 2.x i 3.3 Literały tekstowe w Pythonie 2.x Konwersje typów ciągów Kod łańcuchów znaków Unicode Kod tekstu z zakresu ASCII Kod tekstu spoza zakresu ASCII Kodowanie i dekodowanie tekstu spoza zakresu ASCII Inne techniki kodowania łańcuchów Unicode Literały bajtowe Konwersja kodowania Łańcuchy znaków Unicode w Pythonie 2.x Mieszanie typów ciągów w wersji 2.x Deklaracje typu kodowania znaków pliku źródłowego Wykorzystywanie obiektów bytes z Pythona 3.x Wywołania metod Operacje na sekwencjach Inne sposoby tworzenia obiektów bytes Mieszanie typów łańcuchów znaków Obiekt bytearray w wersji 3.x (oraz 2.6 lub nowszej) Typ bytearray w akcji Podsumowanie typów ciągów znaków w Pythonie 3.x Wykorzystywanie plików tekstowych i binarnych Podstawy plików tekstowych Tryby tekstowy i binarny w Pythonie 2.x i 3.x Brak dopasowania typu i zawartości w Pythonie 3.x Wykorzystywanie plików Unicode Odczyt i zapis Unicode w Pythonie 3.x Kodowanie ręczne Kodowanie danych wyjściowych pliku Dekodowanie danych wejściowych pliku Dekodowanie błędnych dopasowań Obsługa BOM w Pythonie 3.x Pomijanie znacznika BOM w Notatniku Pomijanie znacznika BOM w Pythonie Pliki Unicode w Pythonie 2.x Unicode w nazwach plików i w strumieniach Nazwy plików: znaki i bajty Zawartość strumienia: zmienna PYTHONIOENCODING Inne zmiany w narzędziach do przetwarzania łańcuchów znaków w Pythonie 3.x Moduł dopasowywania wzorców re Moduł danych binarnych struct Moduł serializacji obiektów pickle Narzędzia do analizy składniowej XML Rozdział 38. Zarządzane atrybuty Po co zarządza się atrybutami Wstawianie kodu wykonywanego w momencie dostępu do atrybutów Właściwości Podstawy Pierwszy przykład Obliczanie atrybutów Zapisywanie właściwości w kodzie za pomocą dekoratorów Dekoratory setter i deleter Deskryptory Podstawy Argumenty metod deskryptorów Deskryptory tylko do odczytu Pierwszy przykład Obliczone atrybuty Wykorzystywanie informacji o stanie w deskryptorach Powiązania pomiędzy właściwościami a deskryptorami Deskryptory, sloty i nie tylko Metody __getattr__ oraz __getattribute__ Podstawy Unikanie pętli w metodach przechwytujących atrybuty Pierwszy przykład Metoda __getattribute__ Obliczanie atrybutów Metoda __getattribute__ Porównanie metod __getattr__ oraz __getattribute__ Porównanie technik zarządzania atrybutami Przechwytywanie atrybutów wbudowanych operacji Powrót do menedżerów opartych na delegacji Przykład sprawdzanie poprawności atrybutów Wykorzystywanie właściwości do sprawdzania poprawności Testowanie kodu Wykorzystywanie deskryptorów do sprawdzania poprawności Opcja 1: sprawdzanie z wykorzystaniem współdzielonego stanu deskryptora instancji Opcja 2: sprawdzanie z wykorzystaniem indywidualnego stanu instancji Wykorzystywanie metody __getattr__ do sprawdzania poprawności Wykorzystywanie metody __getattribute__ do sprawdzania poprawności Rozdział 39. Dekoratory Czym jest dekorator Zarządzanie wywołaniami oraz instancjami Zarządzanie funkcjami oraz klasami Wykorzystywanie i definiowanie dekoratorów Do czego służą dekoratory Podstawy Dekoratory funkcji Zastosowanie Implementacja Obsługa dekoracji metod Dekoratory klas Zastosowanie Implementacja Obsługa większej liczby instancji Zagnieżdżanie dekoratorów Argumenty dekoratorów Dekoratory zarządzają także funkcjami oraz klasami Kod dekoratorów funkcji Śledzenie wywołań Możliwości w zakresie zachowania informacji o stanie Atrybuty instancji klasy Zakresy zawierające oraz zmienne globalne Zakresy funkcji zawierających oraz zmienne nielokalne Atrybuty funkcji Uwagi na temat klas I dekorowanie metod klas Wykorzystywanie zagnieżdżonych funkcji do dekoracji metod Wykorzystywanie deskryptorów do dekorowania metod Mierzenie czasu wywołania Dekoratory a pomiar czasu wywołania Niuanse pomiaru czasu Dodawanie argumentów dekoratora Pomiar czasu z użyciem argumentów dekoratora Kod dekoratorów klas Klasy singletona Alternatywne rozwiązania Śledzenie interfejsów obiektów Śledzenie interfejsów za pomocą dekoratorów klas Stosowanie dekoratorów klas z wbudowanymi typami Uwagi na temat klas II zachowanie większej liczby instancji Dekoratory a funkcje zarządzające Do czego służą dekoratory (raz jeszcze) Bezpośrednie zarządzanie funkcjami oraz klasami Przykład atrybuty prywatne i publiczne Implementacja atrybutów prywatnych Szczegóły implementacji I Dziedziczenie a delegacja Argumenty dekoratora Zachowywanie stanu i zakresy funkcji zawierającej Wykorzystanie __dict__ oraz __slots__ (i innych nazw wirtualnych) Uogólnienie kodu pod kątem deklaracji atrybutów jako publicznych Szczegóły implementacji II Użycie nazw pseudoprywatnych __X Złamanie prywatności Kompromisy związane z dekoratorem Znane problemy Ograniczenie: delegacja metod przeciążania operatorów kończy się niepowodzeniem w Pythonie 3.x Sposoby redefiniowania metod przeciążających operatory w wersji 3.x Definicja śródwierszowa Nadrzędne klasy mieszane Warianty kodowania: routery, deskryptory, automatyzacja Czy metody operatorów należy weryfikować? Alternatywy implementacyjne: wstawianie __getattribute__, inspekcja stosu wywołań W Pythonie nie chodzi o kontrolę Przykład sprawdzanie poprawności argumentów funkcji Cel Prosty dekorator sprawdzający przedziały dla argumentów pozycyjnych Uogólnienie kodu pod kątem słów kluczowych i wartości domyślnych Szczegóły implementacji Dalsza introspekcja Założenia dotyczące argumentów Algorytm dopasowywania Znane problemy Niepoprawne wywołania Dowolne argumenty Zagnieżdżone dekoratory Argumenty dekoratora a adnotacje funkcji Inne zastosowania sprawdzanie typów (skoro nalegamy!) Rozdział 40. Metaklasy Tworzyć metaklasy czy tego nie robić? Zwiększające się poziomy magii Język pełen haczyków Wady funkcji pomocniczych Metaklasy a dekoratory klas runda 1. Model metaklasy Klasy są instancjami obiektu type Metaklasy są klasami podrzędnymi klasy type Protokół instrukcji class Deklarowanie metaklas Deklarowanie w wersji 3.x Deklarowanie w wersji 2.x Kierowanie metaklas w wersjach 3.x i 2.x Tworzenie metaklas Prosta metaklasa Dostosowywanie tworzenia do własnych potrzeb oraz inicjalizacja Pozostałe sposoby tworzenia metaklas Użycie prostych funkcji fabrycznych Przeciążenie wywołań tworzących klasę za pomocą zwykłych klas Przeciążenie wywołań tworzących klasę za pomocą metaklas Instancje a dziedziczenie Metaklasa a klasa nadrzędna Dziedziczenie: pełna historia Algorytm dziedziczenia w Pythonie: wersja prosta Specjalny przypadek deskryptorów Algorytm dziedziczenia w Pythonie: wersja nieco pełniejsza Dziedziczenie przypisań atrybutów Specjalny przypadek wbudowanych operacji Metody metaklas Metody metaklasy a metody klasy Przeciążanie operatorów w metodach metaklasy Przykład dodawanie metod do klas Ręczne rozszerzanie Rozszerzanie oparte na metaklasie Metaklasy a dekoratory klas runda 2. Rozszerzenie oparte na dekoratorach Zarządzanie instancjami zamiast klasami Metaklasa równoważna dekoratorowi klasy? Przykład zastosowanie dekoratorów do metod Ręczne śledzenie za pomocą dekoracji Śledzenie za pomocą metaklas oraz dekoratorów Zastosowanie dowolnego dekoratora do metod Metaklasy a dekoratory klas runda 3. (i ostatnia) Rozdział 41. Wszystko, co najlepsze Paradoks Pythona Opcjonalne cechy języka Przeciwko niepokojącym usprawnieniom Złożoność a siła Prostota a elitarność Końcowe wnioski Dokąd dalej? Na bis: wydrukuj swój certyfikat! Dodatki Dodatek A Instalacja i konfiguracja Instalowanie interpretera Pythona Czy Python jest już zainstalowany? Skąd pobrać Pythona Instalacja Pythona Konfiguracja Pythona Zmienne środowiskowe Pythona Jak ustawić opcje konfiguracyjne? Zmienne powłoki systemu Unix i Linux Zmienne DOS (system Windows) Graficzny interfejs użytkownika zmiennych środowiskowych Windows Rejestr systemu Windows Pliki ścieżek Opcje wiersza poleceń Pythona Uruchamianie skryptów z argumentami Uruchamianie kodu podanego w argumentach i pobranego ze standardowego wejścia Uruchamianie modułów umieszczonych w ścieżce wyszukiwania Tryby zoptymalizowany i niebuforowany Tryb interaktywny po wykonaniu skryptu Argumenty wiersza poleceń w Pythonie w.x Uruchamianie Pythona 3.3 za pomocą wiersza poleceń Windows Uzyskanie pomocy Dodatek B Uruchamianie Pythona 3.x w systemie Windows Dziedzictwo systemu Unix Dziedzictwo systemu Windows Wprowadzenie nowego programu uruchomieniowego w systemie Windows Podręcznik do programu uruchomieniowego Krok 1: dyrektywa wersji w pliku Krok 2: parametry w wierszu poleceń Krok 3: stosowanie i zmienianie ustawień domyślnych Pułapki nowego programu uruchomieniowego Pułapka 1: nierozpoznany w Uniksie wiersz #! uniemożliwia uruchomienie skryptu Wpływ zmian na przykłady użyte w książce i korekta Pułapka 2: domyślna wersja 2.x w programie uruchomieniowym Wpływ zmian na przykłady w książce i korekta Pułapka 3: nowa opcja modyfikacji zmiennej PATH Podsumowanie: ostateczny wynik dla systemu Windows Dodatek C Zmiany w języku Python a niniejsza książka Najważniejsze różnice między wersjami 2.x i 3.x Zmiany w wersji 3.x Rozszerzenia dostępne tylko w wersji 3.x Ogólne uwagi do zmian w wersji 3.x Zmiany w bibliotekach i narzędziach Zmiany w standardowej bibliotece Zmiany w narzędziach Migracja do wersji 3.x Zmiany opisane w piątym wydaniu: wersje 2.7, 3.2 i 3.3 Zmiany w wersji 2.7 Zmiany w wersji 3.3 Zmiany w wersji 3.2 Zmiany opisane w czwartym wydaniu: wersje 2.6, 3.0 i 3.1 Zmiany w wersji 3.1 Zmiany w wersjach 3.0 i 2.6 Niektóre elementy języka usunięte w Pythonie 3.0 Zmiany opisane w trzecim wydaniu: wersje 2.3, 2.4 i 2.5 Wcześniejsze i późniejsze zmiany w Pythonie Dodatek D Rozwiązania ćwiczeń podsumowujących poszczególne części książki Część I Wprowadzenie Część II Typy i operacje Część III Instrukcja i składnia Część IV Funkcje i generatory Część V Moduły i pakiety Część VI Klasy i programowanie zorientowane obiektowo Część VII Wyjątki oraz narzędzia
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Wypożyczalnia
Wszystkie egzemplarze są obecnie wypożyczone: sygn. 149860 N (1 egz.)
Książka
W koszyku
Wydanie 5. odnosi się do oryginału. W książce także ISBN oryginału.
Python 2.x i 3.x kiedyś Python 2.x i 3.x obecnie Omawiamy zarówno wersję 2.x, jak i 3.x Której wersji Pythona powinienem użyć? Rozdział 1. Pytania i odpowiedzi dotyczące Pythona Dlaczego ludzie używają Pythona? Jakość oprogramowania Wydajność programistów Czy Python jest językiem skryptowym? Jakie są wady języka Python? Kto dzisiaj używa Pythona? Co mogę zrobić za pomocą Pythona? Programowanie systemowe Graficzne interfejsy użytkownika (GUI) Skrypty internetowe Integracja komponentów Programowanie bazodanowe Szybkie prototypowanie Programowanie numeryczne i naukowe I dalej: gry, przetwarzanie obrazu, wyszukiwanie danych, robotyka, Excel Jak Python jest rozwijany i wspierany? Kompromisy związane z modelem open source Jakie są techniczne mocne strony Pythona? Jest zorientowany obiektowo i funkcyjny Jest darmowy Jest przenośny Ma duże możliwości Można go łączyć z innymi językami Jest względnie łatwy w użyciu Jest względnie łatwy do nauczenia się Zawdzięcza swoją nazwę Monty Pythonowi Jak Python wygląda na tle innych języków? Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Rozdział 2. Jak Python wykonuje programy? Wprowadzenie do interpretera Pythona Wykonywanie programu Z punktu widzenia programisty Z punktu widzenia Pythona Kompilacja kodu bajtowego Maszyna wirtualna Pythona Wpływ na wydajność Wpływ na proces programowania Warianty modeli wykonywania Alternatywne implementacje Pythona CPython standard Jython Python dla języka Java IronPython Python dla .NET Stackless: Python dla programowania współbieżnego PyPy Python dla szybkości i wydajności Narzędzia do optymalizacji działania programu Cython: hybryda Pythona/C Shed Skin: translator języka Python na C ++ Psyco oryginalny kompilator JIT Zamrożone pliki binarne Rozdział 3. Jak wykonuje się programy? Interaktywny wiersz poleceń Uruchamianie sesji interaktywnej Ścieżka systemowa Nowe opcje systemu Windows w wersji 3.3: PATH, Launcher Gdzie zapisywać programy katalogi z kodem źródłowym Czego nie wpisywać znaki zachęty i komentarze Interaktywne wykonywanie kodu Do czego służy sesja interaktywna Eksperymentowanie Testowanie Uwagi praktyczne wykorzystywanie sesji interaktywnej Wpisywanie instrukcji wielowierszowych Systemowy wiersz poleceń i pliki źródłowe Pierwszy skrypt Wykonywanie plików z poziomu wiersza poleceń powłoki Sposoby użycia wiersza poleceń Uwagi praktyczne wykorzystywanie wierszy poleceń i plików Skrypty wykonywalne w stylu uniksowym #! Podstawy skryptów uniksowych Sztuczka z wyszukiwaniem programu przy użyciu polecenia env w systemie Unix Python 3.3 launcher #! w systemie Windows Klikanie ikon plików Podstawowe zagadnienia związane z klikaniem ikon plików Kliknięcie ikony w systemie Windows Sztuczka z funkcją input Inne ograniczenia programów uruchamianych kliknięciem ikony Importowanie i przeładowywanie modułów Podstawy importowania i przeładowywania modułów Więcej o modułach atrybuty Moduły i przestrzenie nazw Uwagi praktyczne instrukcje import i reload Wykorzystywanie funkcji exec do wykonywania plików modułów Interfejs użytkownika środowiska IDLE Szczegóły uruchamiania środowiska IDLE Podstawy środowiska IDLE Wybrane funkcje środowiska IDLE Zaawansowane narzędzia środowiska IDLE Uwagi praktyczne korzystanie ze środowiska IDLE Inne środowiska IDE Inne opcje wykonywania kodu Osadzanie wywołań Zamrożone binarne pliki wykonywalne Uruchamianie kodu z poziomu edytora tekstu Jeszcze inne możliwości uruchamiania Część II Typy i operacje Rozdział 4. Wprowadzenie do typów obiektów Pythona Hierarchia pojęć w Pythonie Dlaczego korzystamy z typów wbudowanych Najważniejsze typy danych w Pythonie Liczby Łańcuchy znaków Operacje na sekwencjach Niezmienność Metody specyficzne dla typu Uzyskiwanie pomocy Inne sposoby kodowania łańcuchów znaków Ciągi znaków w formacie Unicode Dopasowywanie wzorców Listy Operacje na typach sekwencyjnych Operacje specyficzne dla typu Sprawdzanie granic Zagnieżdżanie Listy składane Słowniki Operacje na odwzorowaniach Zagnieżdżanie raz jeszcze Brakujące klucze testowanie za pomocą if Sortowanie kluczy pętle for Iteracja i optymalizacja Krotki Do czego służą krotki Pliki Pliki binarne Pliki tekstowe Unicode Inne narzędzia podobne do plików Inne typy podstawowe Jak zepsuć elastyczność kodu Klasy definiowane przez użytkownika Rozdział 5. Typy liczbowe Podstawy typów liczbowych Pythona Literały liczbowe Wbudowane narzędzia liczbowe Operatory wyrażeń Pythona Połączone operatory stosują się do priorytetów Podwyrażenia grupowane są w nawiasach Pomieszane typy poddawane są konwersji Wprowadzenie: przeciążanie operatorów i polimorfizm Liczby w akcji Zmienne i podstawowe wyrażenia Formaty wyświetlania liczb Porównania zwykłe i łączone Dzielenie klasyczne, bez reszty i prawdziwe Obsługa różnych wersji Pythona Dzielenie bez reszty a odcinanie Dlaczego odcinanie ma znaczenie? Precyzja liczb całkowitych Liczby zespolone Notacja szesnastkowa, ósemkowa i dwójkowa literały i konwersje Operacje na poziomie bitów Inne wbudowane narzędzia numeryczne Inne typy liczbowe Typ Decimal (liczby dziesiętne) Typ Decimal zagadnienia podstawowe Globalne ustawianie precyzji liczb dziesiętnych Menedżer kontekstu dziesiętnego Typ Fraction (liczby ułamkowe) Typ Fraction zagadnienia podstawowe Dokładność numeryczna ułamków zwykłych i dziesiętnych Konwersje ułamków i typy mieszane Zbiory Podstawy zbiorów w Pythonie 2.6 i wersjach wcześniejszych Literały zbiorów w Pythonie 3.x i 2.7 Ograniczenia na obiekty niemutowalne i zbiory zamrożone Zbiory składane w Pythonie 3.x i 2.7 Dlaczego zbiory? Wartości Boolean Rozszerzenia numeryczne Rozdział 6. Wprowadzenie do typów dynamicznych Sprawa brakujących deklaracji typu Zmienne, obiekty i referencje Typy powiązane są z obiektami, a nie ze zmiennymi Obiekty są uwalniane Referencje współdzielone Referencje współdzielone a modyfikacje w miejscu Referencje współdzielone a równość Typy dynamiczne są wszędzie Rozdział 7. Łańcuchy znaków Co znajdziesz w tym rozdziale Unicode krótka historia Łańcuchy znaków podstawy Literały łańcuchów znaków Łańcuchy znaków w apostrofach i cudzysłowach są tym samym Sekwencje ucieczki reprezentują znaki specjalne Surowe łańcuchy znaków blokują sekwencje ucieczki Potrójne cudzysłowy i apostrofy kodują łańcuchy znaków będące wielowierszowymi blokami Łańcuchy znaków w akcji Podstawowe operacje Indeksowanie i wycinki Rozszerzone wycinki trzeci limit i obiekty wycinków Narzędzia do konwersji łańcuchów znaków Konwersje kodu znaków Modyfikowanie łańcuchów znaków Metody łańcuchów znaków Składnia wywoływania metod Metody typów znakowych Przykłady metod łańcuchów znaków modyfikowanie Przykłady metod łańcuchów znaków analiza składniowa tekstu Inne często używane metody łańcuchów znaków Oryginalny moduł string (usunięty w wersji 3.0) Wyrażenia formatujące łańcuchy znaków Formatowanie łańcuchów tekstu z użyciem wyrażeń formatujących podstawy Składnia zaawansowanych wyrażeń formatujących Przykłady zaawansowanych wyrażeń formatujących Wyrażenia formatujące oparte na słowniku Formatowanie łańcuchów z użyciem metody format Używanie kluczy, atrybutów i przesunięć Zaawansowana składnia wywołań metody format Przykłady zaawansowanego formatowania łańcuchów znaków z użyciem metody format Porównanie metody format z wyrażeniami formatującymi Dlaczego miałbyś korzystać z metody format Dodatkowe możliwości: wbudowane funkcje czy ogólne techniki programowania Elastyczna składnia odwołań: dodatkowa złożoność i nakładanie się funkcjonalności Jawne odwołania do wartości: teraz opcjonalne i prawdopodobnie nie będą używane Nazwy metod i argumenty neutralne kontekstowo estetyka kodu kontra zastosowania praktyczne Funkcje a wyrażenia: niewielka wygoda Generalne kategorie typów Typy z jednej kategorii współdzielą zbiory operacji Typy mutowalne można modyfikować w miejscu Rozdział 8. Listy oraz słowniki Listy Listy w akcji Podstawowe operacje na listach Iteracje po listach i składanie list Indeksowanie, wycinki i macierze Modyfikacja list w miejscu Przypisywanie do indeksu i wycinków Wywołania metod list Kilka słów o sortowaniu list Inne, często stosowane metody list Inne popularne operacje na listach Słowniki Słowniki w akcji Podstawowe operacje na słownikach Modyfikacja słowników w miejscu Inne metody słowników Przykład baza danych o filmach Przykład mapowanie wartości na klucze Uwagi na temat korzystania ze słowników Wykorzystywanie słowników do symulowania elastycznych list liczby całkowite jako klucze Wykorzystywanie słowników z rzadkimi strukturami danych krotki jako klucze Unikanie błędów z brakującymi kluczami Zagnieżdżanie słowników Inne sposoby tworzenia słowników Zmiany dotyczące słowników w Pythonie 3.x i 2.7 Słowniki składane w wersjach 3.x i 2.7 Widoki słowników w wersji 3.x (oraz wersji 2.7 przy użyciu nowych metod) Widoki słowników i zbiory Sortowanie kluczy słowników w wersji 3.x Porównywanie rozmiarów słowników nie działa w 3.x W wersji 3.x metoda has_key nie istnieje, niech żyje in! Rozdział 9. Krotki, pliki i wszystko inne Krotki Krotki w akcji Właściwości składni krotek przecinki i nawiasy Konwersje, metody oraz niemutowalność Dlaczego istnieją listy i krotki Repetytorium: rekordy krotki nazwane Pliki Otwieranie plików Wykorzystywanie plików Pliki w akcji Pliki tekstowe i binarne krótka historia Przechowywanie obiektów Pythona w plikach i przetwarzanie ich Przechowywanie natywnych obiektów Pythona moduł pickle Przechowywanie obiektów Pythona w formacie JSON Przechowywanie spakowanych danych binarnych moduł struct Menedżery kontekstu plików Inne narzędzia powiązane z plikami Przegląd i podsumowanie podstawowych typów obiektów Elastyczność obiektów Referencje a kopie Porównania, testy równości i prawda Porównywania i sortowania typów mieszanych w Pythonie 2.x i 3.x Porównywanie słowników w Pythonie 2.x i 3.x Prawda czy fałsz, czyli znaczenie True i False w Pythonie Obiekt None Typ bool Hierarchie typów Pythona Obiekty typów Inne typy w Pythonie Pułapki typów wbudowanych Przypisanie tworzy referencje, nie kopie Powtórzenie dodaje jeden poziom zagłębienia Uwaga na cykliczne struktury danych Typów niemutowalnych nie można modyfikować w miejscu Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Sprawdź swoją wiedzę ćwiczenia do części drugiej Część III Instrukcje i składnia Rozdział 10. Wprowadzenie do instrukcji Pythona Raz jeszcze o hierarchii pojęciowej języka Python Instrukcje Pythona Historia dwóch if Co dodaje Python Co usuwa Python Nawiasy są opcjonalne Koniec wiersza jest końcem instrukcji Koniec wcięcia to koniec bloku Skąd bierze się składnia z użyciem wcięć Kilka przypadków specjalnych Przypadki specjalne dla reguły o końcu wiersza Przypadki specjalne dla reguły o wcięciach bloków Szybki przykład interaktywne pętle Prosta pętla interaktywna Wykonywanie obliczeń na danych wpisywanych przez użytkownika Obsługa błędów poprzez sprawdzanie danych wejściowych Obsługa błędów za pomocą instrukcji try Obsługa liczb zmiennoprzecinkowych Kod zagnieżdżony na trzy poziomy głębokości Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Rozdział 11. Przypisania, wyrażenia i wyświetlanie Instrukcje przypisania Formy instrukcji przypisania Przypisanie sekwencji Zaawansowane wzorce przypisywania sekwencji Rozszerzona składnia rozpakowania sekwencji w Pythonie 3.x Rozszerzona składania rozpakowania w działaniu Przypadki brzegowe Wygodny gadżet Zastosowanie w pętli for Przypisanie z wieloma celami Przypisanie z wieloma celami a współdzielone referencje Przypisania rozszerzone Przypisania rozszerzone a współdzielone referencje Reguły dotyczące nazw zmiennych Konwencje dotyczące nazewnictwa Nazwy nie mają typu, ale obiekty tak Instrukcje wyrażeń Instrukcje wyrażeń i modyfikacje w miejscu Polecenia print Funkcja print z Pythona 3.x Format wywołania Funkcja print z wersji 3.x w działaniu Instrukcja print w Pythonie 2.x Formy instrukcji Instrukcja print Pythona 2.x w działaniu Przekierowanie strumienia wyjściowego Program Witaj, świecie! Ręczne przekierowanie strumienia wyjścia Automatyczne przekierowanie strumienia Wyświetlanie niezależne od wersji Konwerter 2to3 Neutralizacja różnic w wyświetlaniu za pomocą kodu Rozdział 12. Testy if i reguły składni Instrukcje if Ogólny format Proste przykłady Rozgałęzienia kodu Obsługa domyślnych wartości wyboru Obsługa bardziej złożonych operacji Reguły składni Pythona raz jeszcze Ograniczniki bloków reguły tworzenia wcięć Unikaj mieszania tabulatorów i spacji nowa opcja sprawdzania błędów w Pythonie 3.x Ograniczniki instrukcji wiersze i znaki kontynuacji Kilka przypadków specjalnych Testy prawdziwości i testy logiczne Wyrażenie trójargumentowe if/else Rozdział 13. Pętle while i for Pętle while Ogólny format Przykłady Instrukcje break, continue, pass oraz else w pętli Ogólny format pętli Instrukcja pass Instrukcja continue Instrukcja break Klauzula else pętli Więcej o części pętli else Pętle for Ogólny format Przykłady Podstawowe zastosowanie Inne typy danych Przypisanie krotek w pętli for Rozszerzone przypisanie sekwencji w pętlach for w Pythonie 3.x Zagnieżdżone pętle for Techniki tworzenia pętli Pętle z licznikami range Skanowanie sekwencji pętla while z funkcją range kontra pętla for Przetasowania sekwencji funkcje range i len Przechodzenie niewyczerpujące range kontra wycinki Modyfikowanie list range kontra listy składane Przechodzenie równoległe zip oraz map Równoznaczność funkcji map w Pythonie 2.x Tworzenie słowników za pomocą funkcji zip Generowanie wartości przesunięcia i elementów enumerate Rozdział 14. Iteracje i listy składane Iteracje pierwsze spojrzenie Protokół iteracyjny iteratory plików Iterowanie ręczne iter i next Pełny protokół iteracji Iteracje ręczne Inne wbudowane typy iterowalne Listy składane wprowadzenie Podstawy list składanych Wykorzystywanie list składanych w plikach Rozszerzona składnia list składanych Klauzula filtrująca: if Zagnieżdżone pętle: klauzula for Inne konteksty iteracyjne Nowe obiekty iterowalne w Pythonie 3.x Wpływ na kod w wersji 2.x zalety i wady Obiekt iterowalny range Obiekty iterowalne map, zip i filter Iteratory wielokrotne kontra pojedyncze Obiekty iterowalne widoki słownika Inne zagadnienia związane z iteracjami Rozdział 15. Wprowadzenie do dokumentacji Źródła dokumentacji Pythona Komentarze ze znakami # Funkcja dir Notki dokumentacyjne doc Notki dokumentacyjne zdefiniowane przez użytkownika Standardy i priorytety notek dokumentacyjnych Wbudowane notki dokumentacyjne PyDoc funkcja help PyDoc raporty HTML Python 3.2 i nowsze wersje: tryb PyDoc dla wszystkich przeglądarek Python 3.2 i wersje wcześniejsze: klient GUI Nie tylko notki docstrings pakiet Sphinx Zbiór standardowej dokumentacji Zasoby internetowe Publikowane książki Często spotykane problemy programistyczne Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Sprawdź swoją wiedzę ćwiczenia do części trzeciej Część IV Funkcje i generatory Rozdział 16. Podstawy funkcji Dlaczego używamy funkcji Tworzenie funkcji Instrukcje def Instrukcja def uruchamiana jest w czasie wykonania Pierwszy przykład definicje i wywoływanie Definicja Wywołanie Polimorfizm w Pythonie Drugi przykład przecinające się sekwencje Definicja Wywołania Raz jeszcze o polimorfizmie Zmienne lokalne Rozdział 17. Zasięgi Podstawy zasięgów w Pythonie Reguły dotyczące zasięgów Rozwiązywanie nazw reguła LEGB Inne zasięgi Pythona przegląd Przykład zasięgu Zasięg wbudowany Przedefiniowanie wbudowanych nazw: lepiej czy gorzej? Instrukcja global Projektowanie programów: minimalizowanie stosowania zmiennych globalnych Projektowanie programów: minimalizowanie modyfikacji dokonywanych pomiędzy plikami Inne metody dostępu do zmiennych globalnych Zasięgi a funkcje zagnieżdżone Szczegóły dotyczące zasięgów zagnieżdżonych Przykłady zasięgów zagnieżdżonych Funkcje fabrykujące: domknięcia Proste funkcje fabrykujące Funkcje fabrykujące kontra klasy, runda pierwsza Zachowywanie stanu zasięgu zawierającego za pomocą argumentów domyślnych Zasięgi zagnieżdżone, wartości domyślne i wyrażenia lambda Zmienne pętli mogą wymagać wartości domyślnych, a nie zasięgów Dowolne zagnieżdżanie zasięgów Instrukcja nonlocal w Pythonie 3.x Podstawy instrukcji nonlocal Instrukcja nonlocal w akcji Użycie zmiennych nielokalnych w celu modyfikacji Przypadki graniczne Czemu służą zmienne nonlocal? Opcje zachowania stanu Zachowanie stanu: zmienne nonlocal (tylko w wersji 3.x) Zachowanie stanu: zmienne globalne tylko jedna kopia Zachowanie stanu: klasy jawne atrybuty (wprowadzenie) Zachowanie stanu: atrybuty funkcji (w wersjach 3.x i 2.x) Zachowanie stanu: obiekty mutowalne duchy przeszłości języka Pyton? Rozdział 18. Argumenty Podstawy przekazywania argumentów Argumenty a współdzielone referencje Unikanie modyfikacji argumentów mutowalnych Symulowanie parametrów wyjścia i wielu wyników działania Specjalne tryby dopasowywania argumentów Podstawy dopasowywania argumentów Składnia dopasowania argumentów Dopasowywanie argumentów szczegóły Przykłady ze słowami kluczowymi i wartościami domyślnymi Słowa kluczowe Wartości domyślne Łączenie słów kluczowych i wartości domyślnych Przykłady dowolnych argumentów Nagłówki: zbieranie argumentów Wywołania: rozpakowywanie argumentów Ogólne zastosowanie funkcji Zlikwidowana wbudowana funkcja apply (Python 2.x) Argumenty tylko ze słowami kluczowymi (z Pythona 3.x) Reguły dotyczące kolejności Czemu służą argumenty ze słowami kluczowymi? Przykład z funkcją obliczającą minimum Pełne rozwiązanie Dodatkowy bonus Puenta Uogólnione funkcje działające na zbiorach Emulacja funkcji print z Pythona 3.0 Wykorzystywanie argumentów ze słowami kluczowymi Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Rozdział 19. Zaawansowane zagadnienia dotyczące funkcji Koncepcje projektowania funkcji Funkcje rekurencyjne Sumowanie z użyciem rekurencji Implementacje alternatywne Pętle a rekurencja Obsługa dowolnych struktur Rekurencja kontra kolejki i stosy Cykle, ścieżki i ograniczenia stosu Więcej przykładów rekurencji Obiekty funkcji atrybuty i adnotacje Pośrednie wywołania funkcji obiekty pierwszej klasy Introspekcja funkcji Atrybuty funkcji Adnotacje funkcji w Pythonie 3.x Funkcje anonimowe lambda Podstawy wyrażeń lambda Po co używamy wyrażeń lambda Wielotorowe rozgałęzienia kodu finał Jak (nie) zaciemniać kodu napisanego w Pythonie Zasięgi: wyrażenia lambda również można zagnieżdżać Narzędzia programowania funkcyjnego Odwzorowywanie funkcji na obiekty iterowalne map Wybieranie elementów obiektów iterowalnych funkcja filter Łączenie elementów obiektów iterowalnych funkcja reduce Rozdział 20. Listy składane i generatory Listy składane i narzędzia funkcyjne Listy składane kontra funkcja map Dodajemy warunki i pętle zagnieżdżone filter Formalna składnia list składanych Przykład listy składane i macierze Nie nadużywaj list składanych: reguła KISS Druga strona medalu: wydajność, zwięzłość, ekspresyjność Funkcje i wyrażenia generatorów Funkcje generatorów yield kontra return Zawieszanie stanu Integracja protokołu iteracji Funkcje generatorów w działaniu Dlaczego funkcje generatorów? Rozszerzony protokół funkcji generatorów send kontra next Wyrażenia generatorów obiekty iterowalne spotykają złożenia Dlaczego wyrażenia generatora? Wyrażenia generatora a funkcja map Wyrażenia generatora a filtry Funkcje generatorów a wyrażenia generatorów Generatory są obiektami o jednoprzebiegowej iteracji Generowanie wyników we wbudowanych typach, narzędziach i klasach Generatory i narzędzia biblioteczne: skanery katalogów Generatory i funkcje aplikacji Przegląd: obiekty iterowalne definiowane przez użytkownika w klasach Przykład generowanie mieszanych sekwencji Sekwencje mieszające Proste funkcje Funkcje generatora Wyrażenia generatora Funkcja tester Permutacje: wszystkie możliwe kombinacje Nie nadużywaj generatorów: reguła EIBTI Inne spojrzenie: miejsce i czas, zwięzłość, ekspresyjność Przykład emulowanie funkcji zip i map za pomocą narzędzi iteracyjnych Tworzymy własną implementację funkcji map Własna wersja funkcji zip(...) i map(None, ...) Podsumowanie obiektów składanych Zakresy i zmienne składane Zrozumieć zbiory i słowniki składane Rozszerzona składnia zbiorów i słowników składanych Rozdział 21. Wprowadzenie do pomiarów wydajności Pomiary wydajności iteracji Moduł pomiaru czasu domowej roboty Skrypt mierzący wydajność Wyniki pomiarów czasu Wpływ wywołań funkcji: map Inne rozwiązania dla modułu do pomiaru czasu Użycie argumentów ze słowami kluczowymi w wersji 3.x Inne sugestie Mierzenie czasu iteracji z wykorzystaniem modułu timeit Podstawowe reguły korzystania z modułu timeit Interaktywne użycie i wywołania API Korzystanie z poziomu wiersza polecenia Mierzenie czasu działania instrukcji wielowierszowych Inne tryby użytkowania: instalacje, podsumowania i obiekty Moduł i skrypt testujący z użyciem modułu timeit Wyniki działania skryptu testującego Jeszcze trochę zabawy z mierzeniem wydajności Wygrana funkcji map i rzadka porażka PyPy Jeszcze kilka słów o wpływie wywołań funkcji Techniki porównywania własne funkcje kontra moduł timeit Możliwości ulepszenia kod instalacyjny Inne zagadnienia związane z mierzeniem szybkości działania kodu test pystone Pułapki związane z funkcjami Lokalne nazwy są wykrywane w sposób statyczny Wartości domyślne i obiekty mutowalne Funkcje, które nie zwracają wyników Różne problemy związane z funkcjami Otaczanie zasięgów i zmiennych pętli: funkcje fabrykujące Ukrywanie wbudowanych funkcji przez przypisania: cieniowanie Część V Moduły i pakiety Rozdział 22. Moduły wprowadzenie Dlaczego używamy modułów Architektura programu w Pythonie Struktura programu Importowanie i atrybuty Moduły biblioteki standardowej Jak działa importowanie 1. Odszukanie modułu 2. Kompilowanie (o ile jest to potrzebne) 3. Wykonanie Pliki kodu bajtowego pycache w Pythonie 3.2+ Modele plików kodu bajtowego w akcji Ścieżka wyszukiwania modułów Konfigurowanie ścieżki wyszukiwania Wariacje ścieżki wyszukiwania modułów Lista sys.path Wybór pliku modułu Kody źródłowe modułów Priorytety wyboru Importowanie punktów zaczepienia i plików ZIP Pliki zoptymalizowanego kodu bajtowego Rozdział 23. Podstawy tworzenia modułów Tworzenie modułów Nazwy modułów Inne rodzaje modułów Używanie modułów Instrukcja import Instrukcja from Instrukcja from * Operacja importowania jest przeprowadzana tylko raz Kod inicjalizujący Instrukcje import oraz from są przypisaniami Modyfikowanie elementów mutowalnych w modułach Modyfikowanie nazw pomiędzy plikami Równoważność instrukcji import oraz from Potencjalne pułapki związane z użyciem instrukcji from Kiedy wymagane jest stosowanie instrukcji import Przestrzenie nazw modułów Pliki generują przestrzenie nazw Słowniki przestrzeni nazw: dict Kwalifikowanie nazw atrybutów Importowanie a zasięgi Zagnieżdżanie przestrzeni nazw Przeładowywanie modułów Podstawy przeładowywania modułów Przykład przeładowywania z użyciem reload Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Rozdział 24. Pakiety modułów Podstawy importowania pakietów Pakiety a ustawienia ścieżki wyszukiwania Role pliku inicjalizacji pakietu Przykład importowania pakietu Instrukcja from a instrukcja import w importowaniu pakietów Do czego służy importowanie pakietów Historia trzech systemów Względne importowanie pakietów Zmiany w Pythonie 3.0 Podstawy importowania względnego Do czego służą importy względne Importowanie względne w wersji 3.x Względne importy a bezwzględne ścieżki pakietów Zasięg importów względnych Podsumowanie reguł wyszukiwania modułów Importy względne w działaniu Importowanie spoza pakietów Importy wewnątrz pakietów Importy są nadal względne w stosunku do bieżącego katalogu roboczego Użycie importów względnych i bezwzględnych Importy względne przeszukują tylko pakiety Importy są nadal względne w stosunku do katalogu roboczego (cd.) Pułapki związane z importem względnym w pakietach: zastosowania mieszane Problem Rozwiązanie nr 1: podkatalogi pakietów Rozwiązanie 2: import bezwzględny z użyciem pełnej ścieżki Przykład: aplikacja z kodem autotestu modułu (wprowadzenie) Pakiety przestrzeni nazw w Pythonie 3.3 Semantyka pakietów przestrzeni nazw Algorytm importu Pakiety przestrzeni nazw w akcji Zagnieżdżanie pakietów przestrzeni nazw Pliki nadal mają pierwszeństwo przed katalogami Rozdział 25. Zaawansowane zagadnienia związane z modułami Koncepcje związane z projektowaniem modułów Ukrywanie danych w modułach Przykład kod działający w dwóch trybach Symbole walut: Unicode w akcji Notki dokumentacyjne: dokumentacja modułu w działaniu Modyfikacja ścieżki wyszukiwania modułów Rozszerzenie as dla instrukcji import oraz from Przykład moduły są obiektami Importowanie modułów z użyciem nazwy w postaci ciągu znaków Uruchamianie ciągów znaków zawierających kod Bezpośrednie wywołania: dwie opcje Przykład przechodnie przeładowywanie modułów Przeładowywanie rekurencyjne Testowanie przeładowań rekurencyjnych Rozwiązania alternatywne Testowanie wariantów przeładowania Pułapki związane z modułami Kolizje nazw modułów: pakiety i importowanie względne w pakietach W kodzie najwyższego poziomu kolejność instrukcji ma znaczenie Instrukcja from kopiuje nazwy, jednak łącza już nie Instrukcja from może zaciemnić znaczenie zmiennych Funkcja reload może nie mieć wpływu na obiekty importowane za pomocą from Funkcja reload i instrukcja from a testowanie interaktywne Rekurencyjne importowanie za pomocą from może nie działać Część VI Klasy i programowanie zorientowane obiektowo Rozdział 26. Programowanie zorientowane obiektowo wprowadzenie Po co używa się klas Programowanie zorientowane obiektowo z dystansu Wyszukiwanie atrybutów dziedziczonych Klasy a instancje Wywołania metod klasy Tworzenie drzew klas Przeciążanie operatorów Programowanie zorientowane obiektowo oparte jest na ponownym wykorzystaniu kodu Polimorfizm i klasy Programowanie przez dostosowanie Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Rozdział 27. Podstawy tworzenia klas Klasy generują wiele obiektów instancji Obiekty klas udostępniają zachowania domyślne Obiekty instancji są rzeczywistymi elementami Pierwszy przykład Klasy dostosowujemy do własnych potrzeb przez dziedziczenie Drugi przykład Klasy są atrybutami w modułach Klasy mogą przechwytywać operatory Pythona Trzeci przykład Zwracamy wyniki lub nie Po co przeciążamy operatory Najprostsza klasa Pythona na świecie Jeszcze kilka słów o rekordach: klasy kontra słowniki Podsumowanie rozdziału Sprawdź swoją wiedzę quiz Sprawdź swoją wiedzę odpowiedzi Rozdział 28. Bardziej realistyczny przykład Krok 1. tworzenie instancji Tworzenie konstruktorów Testowanie w miarę pracy Wykorzystywanie kodu na dwa sposoby Krok 2. dodawanie metod Tworzenie kodu metod Krok 3. przeciążanie operatorów Udostępnienie sposobów wyświetlania Krok 4. dostosowywanie zachowania za pomocą klas podrzędnych Tworzenie klas podrzędnych Rozszerzanie metod niepoprawny sposób Rozszerzanie metod poprawny sposób Polimorfizm w akcji Dziedziczenie, dostosowanie do własnych potrzeb i rozszerzenie Programowanie zorientowane obiektowo idea Krok 5. dostosowanie do własnych potrzeb także konstruktorów Programowanie zorientowane obiektowo jest prostsze, niż się wydaje Inne sposoby łączenia klas Krok 6. wykorzystywanie narzędzi do introspekcji Specjalne atrybuty klas Uniwersalne narzędzie do wyświetlania Atrybuty instancji a atrybuty klas Nazwy w klasach narzędziowych Ostateczna postać naszych klas Krok 7. i ostatni przechowywanie obiektów w bazie danych Obiekty pickle i shelve Moduł pickle Moduł shelve Przechowywanie obiektów w bazie danych za pomocą shelve Interaktywna eksploracja obiektów shelve Uaktualnianie obiektów w pliku shelve Rozdział 29. Szczegóły kodowania klas Instrukcja class Ogólna forma Przykład Metody Przykład metody Wywoływanie konstruktorów klas nadrzędnych Inne możliwości wywoływania metod Dziedziczenie Tworzenie drzewa atrybutów Specjalizacja odziedziczonych metod Techniki interfejsów klas Abstrakcyjne klasy nadrzędne Abstrakcyjne klasy nadrzędne z Pythona 3.x oraz 2.6+: wprowadzenie Przestrzenie nazw cała historia Proste nazwy globalne, o ile nie są przypisane Nazwy atrybutów przestrzenie nazw obiektów Zen przestrzeni nazw Pythona przypisania klasyfikują zmienne Klasy zagnieżdżone jeszcze kilka słów o regule LEGB Słowniki przestrzeni nazw przegląd Łącza przestrzeni nazw przechodzenie w górę drzewa klas Raz jeszcze o notkach dokumentacyjnych Klasy a moduły Rozdział 30. Przeciążanie operatorów Podstawy Często spotykane metody przeciążania operatorów Wycinki Wycinanie i indeksowanie w Pythonie 2.x Iteratory zdefiniowane przez użytkownika Skanowanie pojedyncze i wielokrotne Klasy i generatory Wiele iteracji po jednym obiekcie Klasy i wycinki Wielokrotne iteracje za pomocą instrukcji yield Odwołania do atrybutów Przypisywanie wartości i usuwanie atrybutów Inne narzędzia do zarządzania atrybutami Emulowanie prywatności w atrybutach instancji Po co nam dwie metody wyświetlania? Uwagi dotyczące wyświetlania Dodawanie prawostronne i miejscowa modyfikacja Dodawanie prawostronne Eskalowanie typu klasy Dodawanie w miejscu Interfejsy funkcji i kod oparty na wywołaniach zwrotnych Metody logiczne w Pythonie 2.x Uwagi dotyczące stosowania destruktorów Rozdział 31. Projektowanie z użyciem klas Python a programowanie zorientowane obiektowo Polimorfizm to interfejsy, a nie sygnatury wywołań Programowanie zorientowane obiektowo i dziedziczenie związek jest Programowanie zorientowane obiektowo i kompozycja związki typu ma Raz jeszcze procesor strumienia danych Programowanie zorientowane obiektowo a delegacja obiekty opakowujące Pseudoprywatne atrybuty klas Przegląd zniekształcania nazw zmiennych Po co używa się atrybutów pseudoprywatnych Metody są obiektami z wiązaniem i bez wiązania W wersji 3.x metody niezwiązane są funkcjami Metody związane i inne obiekty wywoływane Inne obiekty wywoływane Klasy są obiektami uniwersalne fabryki obiektów Do czego służą fabryki Dziedziczenie wielokrotne klasy mieszane Tworzenie klas mieszanych Wydobywanie atrybutów odziedziczonych z użyciem dir() Wypisywanie atrybutów dla każdego obiektu w drzewie klas Uruchomienie kodu wyświetlającego drzewo Inny przykład użycia: wyświetlenie nazw zawierających znaki podkreślenia Inny przykład użycia: uruchomienie kodu z większymi modułami Moduł kolektora Miejsce na udoskonalenia: algorytm MRO, sloty, interfejsy graficzne Inne zagadnienia związane z projektowaniem Rozdział 32. Zaawansowane zagadnienia związane z klasami Rozszerzanie typów wbudowanych Rozszerzanie typów za pomocą osadzania Rozszerzanie typów za pomocą klas podrzędnych Klasy w nowym stylu Jak nowy jest nowy styl Nowości w klasach w nowym stylu Pomijanie instancji we wbudowanych operacjach przy pobieraniu atrybutów Dlaczego zmieniło się wyszukiwanie? Implikacje wynikające z przechwytywania atrybutów Wymogi kodowania obiektów pośredniczących Więcej informacji Zmiany w modelu typów Konsekwencje z perspektywy kontroli typów Wszystkie obiekty dziedziczą po klasie object Implikacje wynikające z użycia metod domyślnych Zmiany w dziedziczeniu diamentowym Implikacje wynikające z dziedziczenia diamentowego Jawne rozwiązywanie konfliktów Zakres zmian kolejności wyszukiwania Więcej o kolejności odwzorowywania nazw Algorytm MRO Śledzenie algorytmu MRO Przykład wiązanie atrybutów ze źródłami dziedziczenia Nowości w klasach w nowym stylu Sloty: deklaracje atrybutów Podstawy slotów Sloty i słowniki przestrzeni nazw Wiele slotów w klasach nadrzędnych Generyczna obsługa slotów i innych wirtualnych atrybutów Zasady używania slotów Przykład stosowania slotów: klasa ListTree i funkcja mapattrs Co z szybkością slotów? Właściwości klas: dostęp do atrybutów Podstawy właściwości Inne zmiany i rozszerzenia klas Metody statyczne oraz metody klasy Do czego potrzebujemy metod specjalnych Metody statyczne w 2.x i 3.x Alternatywy dla metod statycznych Używanie metod statycznych i metod klas Zliczanie instancji z użyciem metod statycznych Zliczanie instancji z metodami klas Zliczanie instancji dla każdej z klas z użyciem metod klas Dekoratory i metaklasy część 1. Podstawowe informacje o dekoratorach funkcji Pierwsze spojrzenie na funkcję dekoratora zdefiniowaną przez użytkownika Pierwsze spojrzenie na dekoratory klas i metaklasy Dalsza lektura Wbudowana funkcja super: zmiana na lepsze czy na gorsze? Wielka debata o funkcji super Tradycyjny, uniwersalny i ogólny sposób wywoływania klasy nadrzędnej Podstawy i kompromisy użycia funkcji super Stara semantyka: magiczny obiekt pośredniczący w wersji 3.x Pułapka: beztroskie stosowanie wielokrotnego dziedziczenia Ograniczenie: przeciążanie operatorów Różnice w użyciu w wersji 2.x: rozbudowane wywołania Zalety funkcji super: zmiany drzewa i kierowania metod Zmiana klasy w trakcie działania programu a funkcja super Kooperatywne kierowanie metod w drzewie wielokrotnego dziedziczenia Podstawy: kooperatywne wywołanie funkcji super w akcji Ograniczenie: wymóg zakotwiczenia łańcucha wywołań Zakresy: model wszystko lub nic Elastyczność założenia dotyczącego kolejności wywołań Dostosowywanie: zastąpienie metody Sprzęganie: zastosowanie w mieszaniu klas Dostosowywanie: wymóg takich samych argumentów Podsumowanie funkcji super Pułapki związane z klasami Modyfikacja atrybutów klas może mieć efekty uboczne Modyfikowanie mutowalnych atrybutów klas również może mieć efekty uboczne Dziedziczenie wielokrotne kolejność ma znaczenie Zakresy w metodach i klasach Różne pułapki związane z klasami Rozsądnie wybieraj miejsce przechowywania atrybutu w instancji lub w klasie Zazwyczaj wywołuj konstruktory klasy nadrzędnej Klasy wykorzystujące delegację w 3.x getattr i funkcje wbudowane Przesadne opakowywanie Część VII Wyjątki oraz narzędzia Rozdział 33. Podstawy wyjątków Po co używa się wyjątków Role wyjątków Wyjątki w skrócie Domyślny program obsługi wyjątków Przechwytywanie wyjątków Zgłaszanie wyjątków Wyjątki zdefiniowane przez użytkownika Działania końcowe Rozdział 34. Szczegółowe informacje dotyczące wyjątków Przechwytywanie wybranych i wszystkich wyjątków Przechwytywanie wszystkich wyjątków: pusta instrukcja except i klasa Exception Część try/else Przykład zachowanie domyślne Przykład przechwytywanie wbudowanych wyjątków Instrukcja try/finally Przykład działania kończące kod z użyciem try/finally Połączona instrukcja try/except/finally Składnia połączonej instrukcji try Łączenie finally oraz except za pomocą zagnieżdżania Przykład połączonego try Instrukcja raise Zgłaszanie wyjątków Zakresy widoczności zmiennych w instrukcjach try i except Przekazywanie wyjątków za pomocą raise Łańcuchy wyjątków w Pythonie 3.x raise from Instrukcja assert Przykład wyłapywanie ograniczeń (ale nie błędów!) Menedżery kontekstu with/as Podstawowe zastosowanie Protokół zarządzania kontekstem Kilka menedżerów kontekstu w wersjach 3.1, 2.7 i nowszych Rozdział 35. Obiekty wyjątków Wyjątki powrót do przyszłości Wyjątki oparte na łańcuchach znaków znikają Wyjątki oparte na klasach Tworzenie klas wyjątków Do czego służą hierarchie wyjątków Wbudowane klasy wyjątków Kategorie wbudowanych wyjątków Domyślne wyświetlanie oraz stan Własne sposoby wyświetlania Własne dane oraz zachowania Udostępnianie szczegółów wyjątku Udostępnianie metod wyjątków Rozdział 36. Projektowanie z wykorzystaniem wyjątków Zagnieżdżanie programów obsługi wyjątków Przykład zagnieżdżanie przebiegu sterowania Przykład zagnieżdżanie składniowe Zastosowanie wyjątków Wychodzenie z głęboko zagnieżdżonych pętli: instrukcja go to Wyjątki nie zawsze są błędami Funkcje mogą sygnalizować warunki za pomocą raise Zamykanie plików oraz połączeń z serwerem Debugowanie z wykorzystaniem zewnętrznych instrukcji try Testowanie kodu wewnątrz tego samego procesu Więcej informacji na temat funkcji sys.exc_info Wyświetlanie błędów i śladów stosu Wskazówki i pułapki dotyczące projektowania wyjątków Co powinniśmy opakować w try Jak nie przechwytywać zbyt wiele unikanie pustych except i wyjątków Jak nie przechwytywać zbyt mało korzystanie z kategorii opartych na klasach Podsumowanie podstaw języka Python Zbiór narzędzi Pythona Narzędzia programistyczne przeznaczone do większych projektów Część VIII Zagadnienia zaawansowane Rozdział 37. Łańcuchy znaków Unicode oraz łańcuchy bajtowe Zmiany w łańcuchach znaków w Pythonie 3.x Podstawy łańcuchów znaków Kodowanie znaków Jak Python zapisuje ciągi znaków w pamięci Typy łańcuchów znaków Pythona Po co są stosowane różne typy ciągów? Pliki binarne i tekstowe Podstawy kodowania ciągów znaków Literały tekstowe w Pythonie 3.x Literały Unicode w Pythonie 2.x i 3.3 Literały tekstowe w Pythonie 2.x Konwersje typów ciągów Kod łańcuchów znaków Unicode Kod tekstu z zakresu ASCII Kod tekstu spoza zakresu ASCII Kodowanie i dekodowanie tekstu spoza zakresu ASCII Inne techniki kodowania łańcuchów Unicode Literały bajtowe Konwersja kodowania Łańcuchy znaków Unicode w Pythonie 2.x Mieszanie typów ciągów w wersji 2.x Deklaracje typu kodowania znaków pliku źródłowego Wykorzystywanie obiektów bytes z Pythona 3.x Wywołania metod Operacje na sekwencjach Inne sposoby tworzenia obiektów bytes Mieszanie typów łańcuchów znaków Obiekt bytearray w wersji 3.x (oraz 2.6 lub nowszej) Typ bytearray w akcji Podsumowanie typów ciągów znaków w Pythonie 3.x Wykorzystywanie plików tekstowych i binarnych Podstawy plików tekstowych Tryby tekstowy i binarny w Pythonie 2.x i 3.x Brak dopasowania typu i zawartości w Pythonie 3.x Wykorzystywanie plików Unicode Odczyt i zapis Unicode w Pythonie 3.x Kodowanie ręczne Kodowanie danych wyjściowych pliku Dekodowanie danych wejściowych pliku Dekodowanie błędnych dopasowań Obsługa BOM w Pythonie 3.x Pomijanie znacznika BOM w Notatniku Pomijanie znacznika BOM w Pythonie Pliki Unicode w Pythonie 2.x Unicode w nazwach plików i w strumieniach Nazwy plików: znaki i bajty Zawartość strumienia: zmienna PYTHONIOENCODING Inne zmiany w narzędziach do przetwarzania łańcuchów znaków w Pythonie 3.x Moduł dopasowywania wzorców re Moduł danych binarnych struct Moduł serializacji obiektów pickle Narzędzia do analizy składniowej XML Rozdział 38. Zarządzane atrybuty Po co zarządza się atrybutami Wstawianie kodu wykonywanego w momencie dostępu do atrybutów Właściwości Podstawy Pierwszy przykład Obliczanie atrybutów Zapisywanie właściwości w kodzie za pomocą dekoratorów Dekoratory setter i deleter Deskryptory Podstawy Argumenty metod deskryptorów Deskryptory tylko do odczytu Pierwszy przykład Obliczone atrybuty Wykorzystywanie informacji o stanie w deskryptorach Powiązania pomiędzy właściwościami a deskryptorami Deskryptory, sloty i nie tylko Podstawy Unikanie pętli w metodach przechwytujących atrybuty Pierwszy przykład Obliczanie atrybutów Porównanie technik zarządzania atrybutami Przechwytywanie atrybutów wbudowanych operacji Powrót do menedżerów opartych na delegacji Przykład sprawdzanie poprawności atrybutów Wykorzystywanie właściwości do sprawdzania poprawności Testowanie kodu Wykorzystywanie deskryptorów do sprawdzania poprawności Opcja 1: sprawdzanie z wykorzystaniem współdzielonego stanu deskryptora instancji Opcja 2: sprawdzanie z wykorzystaniem indywidualnego stanu instancji Rozdział 39. Dekoratory Czym jest dekorator Zarządzanie wywołaniami oraz instancjami Zarządzanie funkcjami oraz klasami Wykorzystywanie i definiowanie dekoratorów Do czego służą dekoratory Podstawy Dekoratory funkcji Zastosowanie Implementacja Obsługa dekoracji metod Dekoratory klas Zastosowanie Implementacja Obsługa większej liczby instancji Zagnieżdżanie dekoratorów Argumenty dekoratorów Dekoratory zarządzają także funkcjami oraz klasami Kod dekoratorów funkcji Śledzenie wywołań Możliwości w zakresie zachowania informacji o stanie Atrybuty instancji klasy Zakresy zawierające oraz zmienne globalne Zakresy funkcji zawierających oraz zmienne nielokalne Atrybuty funkcji Uwagi na temat klas I dekorowanie metod klas Wykorzystywanie zagnieżdżonych funkcji do dekoracji metod Wykorzystywanie deskryptorów do dekorowania metod Mierzenie czasu wywołania Dekoratory a pomiar czasu wywołania Niuanse pomiaru czasu Dodawanie argumentów dekoratora Pomiar czasu z użyciem argumentów dekoratora Kod dekoratorów klas Klasy singletona Alternatywne rozwiązania Śledzenie interfejsów obiektów Śledzenie interfejsów za pomocą dekoratorów klas Stosowanie dekoratorów klas z wbudowanymi typami Uwagi na temat klas II zachowanie większej liczby instancji Dekoratory a funkcje zarządzające Do czego służą dekoratory (raz jeszcze) Bezpośrednie zarządzanie funkcjami oraz klasami Przykład atrybuty prywatne i publiczne Implementacja atrybutów prywatnych Szczegóły implementacji I Dziedziczenie a delegacja Argumenty dekoratora Zachowywanie stanu i zakresy funkcji zawierającej Uogólnienie kodu pod kątem deklaracji atrybutów jako publicznych Szczegóły implementacji II Użycie nazw pseudoprywatnych Złamanie prywatności Kompromisy związane z dekoratorem Znane problemy Ograniczenie: delegacja metod przeciążania operatorów kończy się niepowodzeniem w Pythonie 3.x Sposoby redefiniowania metod przeciążających operatory w wersji 3.x Definicja śródwierszowa Nadrzędne klasy mieszane Warianty kodowania: routery, deskryptory, automatyzacja Czy metody operatorów należy weryfikować? Alternatywy implementacyjne: wstawianie getattribute, inspekcja stosu wywołań W Pythonie nie chodzi o kontrolę Przykład sprawdzanie poprawności argumentów funkcji Cel Prosty dekorator sprawdzający przedziały dla argumentów pozycyjnych Uogólnienie kodu pod kątem słów kluczowych i wartości domyślnych Szczegóły implementacji Dalsza introspekcja Założenia dotyczące argumentów Algorytm dopasowywania Znane problemy Niepoprawne wywołania Dowolne argumenty Zagnieżdżone dekoratory Argumenty dekoratora a adnotacje funkcji Inne zastosowania sprawdzanie typów (skoro nalegamy!) Rozdział 40. Metaklasy Tworzyć metaklasy czy tego nie robić? Zwiększające się poziomy magii Język pełen haczyków Wady funkcji pomocniczych Metaklasy a dekoratory klas runda 1. Model metaklasy Klasy są instancjami obiektu type Metaklasy są klasami podrzędnymi klasy type Protokół instrukcji class Deklarowanie metaklas Deklarowanie w wersji 3.x Deklarowanie w wersji 2.x Kierowanie metaklas w wersjach 3.x i 2.x Tworzenie metaklas Prosta metaklasa Dostosowywanie tworzenia do własnych potrzeb oraz inicjalizacja Pozostałe sposoby tworzenia metaklas Użycie prostych funkcji fabrycznych Przeciążenie wywołań tworzących klasę za pomocą zwykłych klas Przeciążenie wywołań tworzących klasę za pomocą metaklas Instancje a dziedziczenie Metaklasa a klasa nadrzędna Dziedziczenie: pełna historia Algorytm dziedziczenia w Pythonie: wersja prosta Specjalny przypadek deskryptorów Algorytm dziedziczenia w Pythonie: wersja nieco pełniejsza Dziedziczenie przypisań atrybutów Specjalny przypadek wbudowanych operacji Metody metaklas Metody metaklasy a metody klasy Przeciążanie operatorów w metodach metaklasy Przykład dodawanie metod do klas Ręczne rozszerzanie Rozszerzanie oparte na metaklasie Metaklasy a dekoratory klas runda 2. Rozszerzenie oparte na dekoratorach Zarządzanie instancjami zamiast klasami Metaklasa równoważna dekoratorowi klasy? Przykład zastosowanie dekoratorów do metod Ręczne śledzenie za pomocą dekoracji Śledzenie za pomocą metaklas oraz dekoratorów Zastosowanie dowolnego dekoratora do metod Metaklasy a dekoratory klas runda 3. (i ostatnia) Rozdział 41. Wszystko, co najlepsze Paradoks Pythona Opcjonalne cechy języka Przeciwko niepokojącym usprawnieniom Złożoność a siła Prostota a elitarność
Sygnatura czytelni BWB: IX F 27
Sygnatura czytelni BWEAiI: XII Ł 208
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Biblioteka WB
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 152529 (1 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 152528 (1 egz.)
Książka
W koszyku
Tytuł oryginału: Mastering VMware vSphere 6.7.
Dla specjalistów IT, chcących poszerzyć swoją wiedzę o tworzeniu wirtualnej infrastruktury i zarządzaniu nią za pomocą oprogramowania vSphere 6.7. Skorzystają z niej również począkujący administratorzy.
Rozdział 1. Wprowadzenie do VMware vSphere 6.7 27 Poznajemy VMware vSphere 6.7 27 Produkty z pakietu vSphere 28 Funkcjonalności VMware vSphere 34 Licencjonowanie VMware vSphere 44 Dlaczego warto wybrać vSphere? 46 Rozdział 2. Planowanie i instalacja hipernadzorcy VMware ESXi 49 Architektura hipernadzorcy ESXi VMware 49 Sposób działania ESXi 49 Badanie komponentów ESXi 50 Planowanie wdrożenia platformy vSphere VMware 51 Wybór platformy serwera 52 Określanie architektury pamięci masowej 54 Integracja z infrastrukturą sieciową 55 Wdrażanie hipernadzorcy ESXi VMware 56 Interaktywna instalacja ESXi VMware 57 Przeprowadzanie zautomatyzowanej instalacji VMware ESXi 61 Wdrażanie VMware ESXi za pomocą usługi Auto Deploy vSphere 64 Przeprowadzanie konfiguracji poinstalacyjnej 65 Rekonfiguracja sieci zarządzania 65 Korzystanie z klienta hosta vSphere 68 Konfigurowanie synchronizacji czasu 69 Konfigurowanie rozwiązywania nazw 71 Rozdział 3. Instalowanie i konfiguracja serwera vCenter 73 Przedstawiamy vCenter Server 73 Centralizacja uwierzytelniania użytkowników za pomocą funkcji pojedynczego logowania serwera vCenter 75 Platform Services Controller 78 Administrowanie za pomocą klienta internetowego vSphere 79 Zapewnianie rozszerzalnego frameworku 80 Wybór wersji serwera vCenter 81 Planowanie i projektowanie wdrożenia serwera vCenter 83 Dobór sprzętu dla serwera vCenter 83 Planowanie dostępności serwera vCenter 85 Uruchamianie serwera vCenter i jego komponentów jako maszyn wirtualnych 88 Instalowanie serwera vCenter i jego komponentów 90 Instalowanie serwera vCenter w grupie rozszerzonego trybu połączonego 102 Eksploracja serwera vCenter 104 Ekran główny klienta internetowego vSphere 105 Korzystanie z nawigatora 107 Tworzenie inwentarza serwera vCenter i zarządzanie nim 107 Widoki inwentarzy i obiekty 108 Tworzenie i dodawanie obiektów inwentarza 110 Funkcje zarządzania serwera vCenter 113 Podstawowe zarządzanie hostem 114 Podstawowa konfiguracja hosta 116 Korzystanie z zaplanowanych zadań 120 Korzystanie ze zdarzeń i konsoli zdarzeń w serwerze vCenter 122 Praca z profilami hostów 122 Znaczniki i atrybuty niestandardowe 126 Zarządzanie ustawieniami serwera vCenter 129 Ustawienia ogólne serwera vCenter 129 Licencjonowanie 132 Wiadomość dnia 132 Ustawienia zaawansowane 133 Auto Deploy 133 vCenter HA 133 Key Management Servers 133 Storage Providers 133 Administrowanie klientem internetowym vSphere 133 Roles 134 Licensing 134 vCenter Solution Manager 134 System Configuration 134 VMware Appliance Management Administration 137 Summary 138 Monitor 139 Access 140 Networking 140 Time 140 Services 140 Update 141 Administration 142 Syslog 142 Backup 142 Rozdział 4. vSphere Update Manager i narzędzia wsparcia vCenter 145 vSphere Update Manager 145 vSphere Update Manager i urządzenie wirtualne serwera vCenter 148 Instalowanie usługi menedżera pobierania aktualizacji (opcjonalne) 149 Wtyczka VUM 150 Ponowna konfiguracja instalacji VUM lub UMDS za pomocą narzędzia Update Manager Utility 151 Uaktualnianie VUM do nowszej wersji 152 Konfigurowanie narzędzia vSphere Update Manager 152 Tworzenie wytycznych 159 Aktualizacje rutynowe 163 Dołączanie i usuwanie wytycznych lub grup wytycznych 163 Przeprowadzanie skanowania 166 Pobieranie poprawek 170 Remediacja hostów 171 Aktualizacja narzędzi VMware 175 Uaktualnianie rozszerzeń hostów 177 Uaktualnianie hostów za pomocą narzędzia vSphere Update Manager 178 Importowanie obrazu ESXi i tworzenie wytycznych uaktualnień hosta 178 Uaktualnianie hosta 181 Uaktualnianie sprzętu maszyn wirtualnych 182 Przeprowadzanie uaktualniania orkiestrowanego 184 Badanie alternatywnych opcji aktualizacji 185 Korzystanie z vSphere Update Manager PowerCLI 185 Uaktualnianie i instalowanie poprawek bez vSphere Update Manager 186 vSphere Auto Deploy 187 Wdrażanie hostów za pomocą Auto Deploy 187 Narzędzia wsparcia vCenter 202 ESXi Dump Collector 202 Inne narzędzia wsparcia vCenter 206 Rozdział 5. Tworzenie i konfigurowanie sieci vSphere 209 Tworzenie sieci vSphere 209 Praca ze standardowymi przełącznikami vSphere 212 Porównywanie przełączników wirtualnych i fizycznych 213 Porty i grupy portów 215 Uplinki 216 Konfigurowanie sieci zarządzania 219 Konfigurowanie sieci VMkernel 223 Włączanie rozszerzonych funkcji multicastowych 227 Konfigurowanie stosów TCP/IP 228 Konfigurowanie sieci maszyn wirtualnych 230 Konfigurowanie VLAN-ów 232 Konfigurowanie grup kart sieciowych 237 Używanie i konfigurowanie kształtowania ruchu 249 Złożenie w całość wszystkich elementów 251 Praca z rozproszonymi przełącznikami vSphere 254 Tworzenie rozproszonego przełącznika vSphere 255 Usuwanie hosta ESXi z przełącznika rozproszonego 260 Usuwanie przełącznika rozproszonego 261 Zarządzanie przełącznikami rozproszonymi 262 Praca z rozproszonymi grupami portów 265 Zarządzanie kartami sieciowymi VMkernel 272 Korzystanie z NetFlow na rozproszonych przełącznikach vSphere 277 Włączanie protokołów wykrywania przełączników 280 Włączanie rozszerzonych funkcji multicastowych 281 Konfigurowanie VLAN-ów prywatnych 281 Konfigurowanie LACP 284 Konfigurowanie zabezpieczeń przełącznika wirtualnego 289 Korzystanie z trybu mieszanego 291 Zezwalanie na zmiany adresów MAC i sfałszowane transmisje 292 Rozdział 6. Tworzenie i konfigurowanie urządzeń pamięci masowej 297 Znaczenie projektu pamięci masowej 297 Badanie podstaw współdzielonej pamięci masowej 299 Porównanie pamięci lokalnej i pamięci współdzielonej 302 Definiowanie typowych architektur macierzy pamięci masowej 303 RAID 306 Sieć vSAN 311 Projektowanie macierzy pamięci masowej średniej klasy oraz zewnętrznych klasy enterprise 314 Wybór protokołu pamięci masowej 317 Dokonywanie podstawowych wyborów dotyczących pamięci masowej 332 Implementowanie podstaw pamięci masowej w vSphere 335 Przegląd podstawowych koncepcji pamięci masowej vSphere 335 Czym są woluminy wirtualne? 352 Porównanie SC i jednostek LUN 354 Reguły pamięci masowej 354 Woluminy wirtualne 355 Praca z magazynami danych VMFS 355 Praca z pamięcią masową RDM 372 Praca z magazynami danych NFS 374 Praca z siecią vSAN 383 Praca z konfiguracją pamięci masowej na poziomie maszyny wirtualnej 385 Wykorzystanie najlepszych praktyk SAN i NAS 396 Rozdział 7. Zapewnienie wysokiej dostępności i ciągłości działania 403 Warstwy wysokiej dostępności 403 Tworzenie klastrów maszyn wirtualnych 405 Wprowadzenie do tworzenia klastrów równoważenia obciążenia sieciowego 405 Wprowadzenie do tworzenia klastrów przełączania awaryjnego systemu Windows Server 406 Implementowanie funkcjonalności vSphere HA 418 Klastry vSphere HA 419 Podstawowe komponenty vSphere HA 420 Włączanie vSphere HA 424 Konfigurowanie vSphere HA 428 Konfigurowanie grup, reguł, nadpisań i koordynowanego restartu maszyn wirtualnych vSphere HA 445 Zarządzanie funkcjonalnością vSphere HA 449 Wprowadzenie do vSphere SMP Fault Tolerance 452 Korzystanie z vSphere SMP Fault Tolerance w połączeniu z vSphere HA 456 Przypadki użycia vSphere Fault Tolerance 457 Planowanie ciągłości działania 458 Zapewnianie ochrony danych 458 Odzyskiwanie sprawności po katastrofach 461 Korzystanie z vSphere Replication 463 Rozdział 8. Bezpieczeństwo środowiska VMware vSphere 469 Ogólne informacje o bezpieczeństwie w środowisku vSphere 469 Bezpieczeństwo hosta ESXi 470 Uwierzytelnienie użytkowników hosta ESXi 470 Kontrolowanie dostępu do hostów ESXi 475 Regularne instalowanie poprawek oprogramowania hosta ESXi 481 Zarządzanie uprawnieniami w hoście ESXi 482 Rejestrowanie zdarzeń w hoście ESXi 489 Ochrona procesu rozruchu hosta ESXi 489 Inne zalecenia dotyczące bezpieczeństwa 492 Bezpieczeństwo serwera vCenter 492 Zarządzanie certyfikatami 493 Magazyny certyfikatów 493 Pierwsze kroki z menedżerem certyfikatów 496 Uwierzytelnianie użytkowników za pomocą usługi pojedynczego logowania 498 Konto vpxuser 502 Zarządzanie uprawnieniami w serwerze vCenter 503 Rejestrowanie zdarzeń w serwerze vCenter 514 Bezpieczeństwo maszyn wirtualnych 514 Przygotowanie serwera Key Management Server do szyfrowania maszyn i sieci vSAN 515 Virtual Trusted Platform Module 2.0 521 Konfigurowanie zasad bezpieczeństwa sieci 521 Regularne instalowanie poprawek maszyn wirtualnych 523 Rozdział 9. Tworzenie maszyn wirtualnych i zarządzanie nimi 525 Czym jest maszyna wirtualna? 525 Maszyna wirtualna od środka 526 Maszyna wirtualna od zewnątrz 528 Tworzenie maszyny wirtualnej 532 Wybór ustawień tworzonej maszyny wirtualnej 541 Dobór wielkości maszyny wirtualnej 542 Nazewnictwo maszyn wirtualnych 543 Dobór wielkości dysków maszyny wirtualnej 544 Grafika maszyny wirtualnej 545 Instalacja gościnnego systemu operacyjnego 546 Korzystanie z nośników instalacyjnych 547 Instalacja systemu operacyjnego za pomocą nośnika 549 Korzystanie z konsoli maszyny wirtualnej 550 Instalacja narzędzi VMware Tools 552 Instalacja narzędzi VMware Tools w systemie Windows 553 Instalacja narzędzi VMware Tools w systemie Linux 556 Zarządzanie maszynami wirtualnymi 559 Dodawanie i rejestrowanie istniejącej maszyny wirtualnej 559 Zmiana stanu zasilania maszyny wirtualnej 560 Usuwanie maszyny wirtualnej 561 Kasowanie maszyny wirtualnej 561 Modyfikowanie maszyn wirtualnych 562 Modyfikowanie sprzętu maszyny wirtualnej 562 Migawki maszyn wirtualnych 566 Rozdział 10. Szablony i wirtualne aplikacje 573 Klonowanie maszyn wirtualnych 573 Tworzenie specyfikacji dostosowania klonowanej maszyny 574 Klonowanie maszyny wirtualnej 579 Błyskawiczne klonowanie maszyn wirtualnych 581 Tworzenie szablonów i wdrażanie maszyn wirtualnych 585 Klonowanie maszyny wirtualnej do zwykłego szablonu 586 Tworzenie maszyny wirtualnej na podstawie zwykłego szablonu 588 Korzystanie z szablonów OVF 590 Tworzenie maszyny wirtualnej na podstawie szablonu OVF 590 Eksportowanie maszyny wirtualnej do szablonu OVF 593 Struktura szablonu OVF 595 Biblioteki treści 596 Dane i magazyn biblioteki treści 597 Synchronizacja biblioteki treści 597 Tworzenie biblioteki i publikowanie treści 598 Subskrybowanie treści biblioteki 599 Korzystanie z biblioteki treści 600 Wirtualne aplikacje 602 Tworzenie wirtualnej aplikacji 602 Modyfikowanie wirtualnej aplikacji 604 Zmiana stanu zasilania wirtualnej aplikacji 607 Klonowanie wirtualnej aplikacji 608 Importowanie maszyn wirtualnych z innych środowisk 609 Rozdział 11. Zarządzanie procesem przydzielania zasobów 611 Przydzielanie zasobów maszynom wirtualnym 611 Zarządzanie wykorzystaniem pamięci 614 Zaawansowane techniki zarządzania pamięcią hosta ESXi 615 Sterowanie przydzielaniem pamięci 618 Zarządzanie wykorzystaniem procesorów 626 Domyślna alokacja procesorów 627 Koligacja 628 Rezerwacja 629 Limit 630 Udziały 630 Podsumowanie rezerwacji, limitów i udziałów procesorów 632 Pule zasobów 633 Konfigurowanie puli zasobów 635 Alokowanie zasobów w puli 636 Zarządzanie wykorzystaniem sieci 641 Zarządzanie wykorzystaniem dysków 647 Włączanie sterowania SIOC 648 Konfigurowanie zasobów dyskowych maszyn wirtualnych 651 Magazyny półprzewodnikowe 654 Rozdział 12. Równoważenie wykorzystania zasobów 661 Różnica między alokowaniem a wykorzystaniem zasobów 661 Migracja vMotion 662 Wymagania funkcjonalności vMotion 666 Migracja vMotion wewnątrz klastra 669 Osiąganie kompatybilności procesorów w vMotion 672 Maskowanie procesorów maszyn wirtualnych 672 Enhanced vMotion Compatibility 674 Migracja Storage vMotion 678 Łączenie vMotion ze Storage vMotion 680 Migracja vMotion pomiędzy serwerami vCenter 684 Wymagania migracji vMotion między serwerami vCenter 684 Inicjowanie migracji vMotion między serwerami vCenter 685 Dyspozytor vSphere DRS 686 Tryb ręczny 687 Tryb półautomatyczny 688 Tryb automatyczny 688 Praca z regułami dyspozytora DRS 690 Dyspozytor Storage DRS 696 Tworzenie i wykorzystywanie klastrów magazynów danych 697 Konfiguracja dyspozytora SDRS 701 Podsumowanie 709 Rozdział 13. Monitorowanie wydajności VMware vSphere 711 Ogólne informacje o monitorowaniu wydajności 711 Alarmy 713 Zakres alarmu 714 Definiowanie alarmów 714 Zarządzanie alarmami 720 Wykresy wydajności 721 Widok ogólny 722 Widok zaawansowany 724 Narzędzie esxtop 732 Monitorowanie wykorzystania procesora 734 Monitorowanie wykorzystania pamięci 738 Monitorowanie wykorzystania sieci 740 Monitorowanie wykorzystania dysków 742 Rozdział 14. Automatyzacja VMware vSphere 747 Po co stosować automatyzację? 747 Możliwości automatyzacji środowiska vSphere 748 Automatyzacja przy użyciu języka PowerCLI 749 Języki PowerShell i PowerCLI 749 Co nowego w wersji PowerCLI 11.5? 753 Instalacja i konfiguracja interpretera języka PowerCLI w systemie Windows 753 Instalacja i konfiguracja interpretera języka PowerCLI w systemie macOS 757 Instalacja i konfiguracja interpretera języka PowerCLI w systemie Linux 759 Dodatkowe funkcjonalności języka PowerCLI 761 Pierwsze kroki z językiem PowerCLI 762 Tworzenie skryptów w języku PowerCLI 767 Zaawansowane funkcjonalności języka PowerCLI 776 Dodatkowe materiały 779 Dodatek A. Podsumowanie 781 Rozdział 1. Wprowadzenie do VMware vSphere 6.7 781 Rozdział 2. Planowanie i instalacja hipernadzorcy VMware ESXi 782 Rozdział 3. Instalowanie i konfiguracja serwera vCenter 783 Rozdział 4. vSphere Update Manager i narzędzia wsparcia vCenter 786 Rozdział 5. Tworzenie i konfigurowanie sieci vSphere 788 Rozdział 6. Tworzenie i konfigurowanie urządzeń pamięci masowej 789 Rozdział 7. Zapewnienie wysokiej dostępności i ciągłości działania 793 Rozdział 8. Bezpieczeństwo środowiska VMware vSphere 795 Rozdział 9. Tworzenie maszyn wirtualnych i zarządzanie nimi 796 Rozdział 10. Szablony i wirtualne aplikacje 798 Rozdział 11. Zarządzanie procesem przydzielania zasobów 800 Rozdział 12. Równoważenie wykorzystania zasobów 802 Rozdział 13. Monitorowanie wydajności VMware vSphere 804 Rozdział 14. Automatyzacja VMware vSphere 805
Sygnatura czytelni BWEAiI: XII E 112
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 149874 N (1 egz.)
Książka
W koszyku
Wydanie 3. odnosi się do oryginału. Na stronie tytułowej i okładce także nazwa wydawcy oryginału: O'Reilly. W książce także ISBN oryginału.
Dla analityków zamierzających zacząć pracę w Pythonie oraz programistów Pythona chcących zająć się analizą danych i obliczeniami naukowymi.
Python jako spoiwo NumPy pandas Matplotlib IPython i Jupyter SciPy Scikit-learn statsmodels Instalacja i konfiguracja Windows GNU, Linux macOS Zintegrowane środowiska programistyczne i edytory tekstowe Społeczność i konferencje Przykłady kodu Przykładowe dane Konwencje importowania Podstawy Pythona oraz obsługi narzędzi IPython i Jupyter Interpreter Pythona Uruchamianie powłoki IPython Uruchamianie notatnika Jupyter Notebook Uzupełnianie poleceń Introspekcja Semantyka języka Python Skalarne typy danych Przepływ sterowania 3. Wbudowane struktury danych, funkcje i pliki 3.1. Struktury danych i sekwencje Krotka Lista Słownik Zbiór Wbudowane funkcje obsługujące sekwencje Przestrzenie nazw, zakres i funkcje lokalne Zwracanie wielu wartości Funkcje są obiektami Funkcje anonimowe (lambda) Generatory Błędy i obsługa wyjątków Pliki i system operacyjny Bajty i kodowanie Unicode w plikach . Podstawy biblioteki NumPy: obsługa tablic i wektorów NumPy ndarray - wielowymiarowy obiekt tablicowy Typ danych tablic ndarray Działania matematyczne z tablicami NumPy Podstawy indeksowania i przechwytywania części Indeksowanie i wartości logiczne Indeksowanie specjalne Transponowanie tablic i zamiana osi Generowanie liczb pseudolosowych Funkcje uniwersalne - szybkie funkcje wykonywane na poszczególnych elementach tablicy Programowanie z użyciem tablic Logiczne operacje warunkowe jako operacje tablicowe Metody matematyczne i statystyczne Metody tablic logicznych Sortowanie Wartości unikalne i operacje logiczne Tablice i operacje na plikach Algebra liniowa Przykład: błądzenie losowe Jednoczesne symulowanie wielu błądzeń losowych Rozpoczynamy pracę z biblioteką pandas Wprowadzenie do struktur danych biblioteki pandas Obiekt Series Obiekt DataFrame Obiekty index Podstawowe funkcjonalności Uaktualnianie indeksu Odrzucanie elementów osi Indeksowanie, wybieranie i filtrowanie Działania arytmetyczne i wyrównywanie danych Funkcje apply i map Sortowanie i tworzenie rankingów Indeksy osi ze zduplikowanymi etykietami Podsumowywanie i generowanie statystyk opisowych Współczynnik korelacji i kowariancja Unikalne wartości, ich liczba i przynależność Odczyt i zapis danych, formaty plików Odczyt i zapis danych w formacie tekstowym Wczytywanie części pliku tekstowego Zapis danych w formacie tekstowym Praca z plikami danych rozgraniczonych Dane w formacie JSON XML i HTML - web scraping Formaty danych binarnych Wczytywanie plików programu Microsoft Excel Obsługa formatu HDF5 Obsługa interfejsów sieciowych Obsługa baz danych Czyszczenie i przygotowywanie danych Obsługa brakujących danych Filtrowanie brakujących danych Wypełnianie brakujących danych Przekształcanie danych Usuwanie duplikatów Przekształcanie danych przy użyciu funkcji lub mapowania Zastępowanie wartości Zmiana nazw indeksów osi Dyskretyzacja i podział na koszyki Wykrywanie i filtrowanie elementów odstających Permutacje i próbkowanie losowe Przetwarzanie wskaźników i zmiennych zastępczych Rozszerzone typy danych Operacje przeprowadzane na łańcuchach Metody obiektu typu string Wyrażenia regularne Funkcje tekstowe w pakiecie pandas Dane kategoryczne Kontekst i motywacja Rozszerzony typ Categorical w bibliotece pandas Obliczenia na obiektach typu Categorical Metody obiektu kategorycznego Przetwarzanie danych - operacje łączenia, wiązania i przekształcania Indeksowanie hierarchiczne Zmiana kolejności i sortowanie poziomów Parametry statystyki opisowej z uwzględnieniem poziomu Indeksowanie z kolumnami ramki danych Łączenie zbiorów danych Łączenie ramek danych w stylu łączenia elementów baz danych Łączenie przy użyciu indeksu Konkatenacja wzdłuż osi Łączenie częściowo nakładających się danych Zmiana kształtu i operacje osiowe Przekształcenia z indeksowaniem hierarchicznym
Przekształcanie z formatu "długiego" na "szeroki" Przekształcanie z formatu "szerokiego" na "długi" Wykresy i wizualizacja danych Podstawy obsługi interfejsu pakietu matplotlib Obiekty figure i wykresy składowe Kolory, oznaczenia i style linii Punkty, etykiety i legendy Adnotacje i rysunki Zapisywanie wykresów w postaci plików Konfiguracja pakietu matplotlib Generowanie wykresów za pomocą pakietów pandas i seaborn Wykresy liniowe Wykresy słupkowe Histogramy i wykresy gęstości Wykresy punktowe Wykresy panelowe i dane kategoryczne Inne narzędzia przeznaczone do wizualizacji danych w Pythonie. Agregacja danych i operacje wykonywane na grupach Mechanika interfejsu groupby Iteracja po grupach Wybieranie kolumny lub podzbioru kolumn Grupowanie przy użyciu słowników i serii Grupowanie przy użyciu funkcji Grupowanie przy użyciu poziomów indeksu Agregacja danych Przetwarzanie kolumna po kolumnie i stosowanie wielu funkcji Zwracanie zagregowanych danych bez indeksów wierszy Metoda apply - ogólne zastosowanie techniki dziel-zastosuj-połącz Usuwanie kluczy grup Kwantyle i analiza koszykowa Przykład: wypełnianie brakujących wartości przy użyciu wartości charakterystycznych dla grupy Przykład: losowe generowanie próbek i permutacja Przykład: średnie ważone grup i współczynnik korelacji Przykład: regresja liniowa grup Transformacje grup i "nieobudowane" operacje grupowania Tabele przestawne i krzyżowe Szeregi czasowe Typy danych i narzędzia przeznaczone do obsługi daty i czasu Konwersja pomiędzy obiektami string i datetime Podstawy szeregów czasowych Indeksowanie i wybieranie Szeregi czasowe z duplikatami indeksów Zakresy dat, częstotliwości i przesunięcia Obsługa strefy czasowej Lokalizacja i konwersja stref czasowych Operacje z udziałem obiektów Timestamp o wyznaczonej strefie czasowej Operacje pomiędzy różnymi strefami czasowymi Okresy i przeprowadzanie na nich operacji matematycznych Konwersja częstotliwości łańcuchów Kwartalne częstotliwości okresów Konwersja znaczników czasu na okresy (i z powrotem) Tworzenie obiektów PeriodIndex na podstawie tablic Zmiana rozdzielczości i konwersja częstotliwości Zmniejszanie częstotliwości Zwiększanie rozdzielczości i interpolacja Zmiana rozdzielczości z okresami Grupowa zmiana częstotliwości Funkcje ruchomego okna Funkcje ważone wykładniczo Binarne funkcje ruchomego okna Funkcje ruchomego okna definiowane przez użytkownika Wprowadzenie do bibliotek modelujących Łączenie pandas z kodem modelu Tworzenie opisów modeli przy użyciu biblioteki Patsy Przekształcenia danych za pomocą formuł Patsy Patsy i dane kategoryczne Wprowadzenie do biblioteki statsmodels Szacowanie modeli liniowych Szacowanie procesów szeregów czasowych Wprowadzenie do pakietu scikit-learn Przykłady analizy danych Dane USA.gov serwisu Bitly Liczenie stref czasowych w czystym Pythonie Liczenie stref czasowych przy użyciu pakietu pandas Zbiór danych MovieLens 1M Wyznaczenie rozbieżności ocen Imiona nadawane dzieciom w USA w latach 1880 - 2010 Analiza trendów imion Baza danych USDA Food Baza danych 2012 Federal Election Commission Statystyki datków z podziałem na wykonywany zawód i pracodawcę Podział kwot datków na koszyki Statystyki datków z podziałem na poszczególne stany Zaawansowane zagadnienia związane z biblioteką NumPy Szczegóły budowy obiektu ndarray Hierarchia typów danych NumPy Zaawansowane operacje tablicowe Zmiana wymiarów tablic Kolejności charakterystyczne dla języków C i Fortran Łączenie i dzielenie tablic Powtarzanie elementów - funkcje tile i repeat Alternatywy indeksowania specjalnego - metody take i put Rozgłaszanie wzdłuż innych osi Przypisywanie wartości elementom tablicy poprzez rozgłaszanie Zaawansowane zastosowania funkcji uniwersalnych Metody instancji funkcji uniwersalnych Pisanie nowych funkcji uniwersalnych w Pythonie Tablice o złożonej strukturze Zagnieżdżone typy danych i pola wielowymiarowe Do czego przydają się tablice o złożonej strukturze? Sortowanie pośrednie - metody argsort i lexsort Alternatywne algorytmy sortowania Częściowe sortowanie tablic Wyszukiwanie elementów w posortowanej tablicy za pomocą metody numpy.searchsorted Pisanie szybkich funkcji NumPy za pomocą pakietu Numba Tworzenie obiektów numpy.ufunc za pomocą pakietu Numba Zaawansowane tablicowe operacje wejścia i wyjścia Pliki mapowane w pamięci HDF5 i inne możliwości zapisu tablic Polecenie %run Uruchamianie kodu zapisanego w schowku Korzystanie z historii poleceń Przeszukiwanie i korzystanie z historii poleceń Zmienne wejściowe i wyjściowe Interakcja z systemem operacyjnym Polecenia powłoki systemowej i aliasy System tworzenia skrótów do katalogów Narzędzia programistyczne Interaktywny debuger Pomiar czasu - funkcje %time i %timeit Podstawowe profilowanie - funkcje %prun i %run-p Profilowanie funkcji linia po linii Wskazówki dotyczące produktywnego tworzenia kodu w środowisku IPython Przeładowywanie modułów Wskazówki dotyczące projektowania kodu. Zaawansowane funkcje środowiska IPython
Sygnatura czytelni BWEAiI: XII Ł 229
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 154692 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Learning Kali Linux : Security Testing, Penetration Testing and Ethical Hacking.
Na stronie tytułowej również informacje o miejscach wydania i wydawcy oryginału - O'Reilly.
Na książce także ISBN oryginału: 9781492028697.
Indeks.
1. Podstawy systemu Kali Linux 13 Geneza systemu Linux 13 O systemie Linux 14 Uzyskanie i instalacja systemu Kali Linux 16 Środowiska graficzne 19 Wiersz poleceń 25 Zarządzanie kontami użytkowników 34 Zarządzanie usługami 34 Zarządzanie pakietami 36 Zarządzanie dziennikami 38 2. Podstawy testowania bezpieczeństwa sieci 43 Testy bezpieczeństwa 43 Testy bezpieczeństwa sieci 45 Testowanie szyfrowania 58 Przechwytywanie pakietów 62 Ataki podsłuchowe 69 3. Rekonesans 75 Czym jest rekonesans? 75 Biały wywiad 77 Rekonesans systemu DNS i usługa whois 88 Rekonesans pasywny 95 Skanowanie portów 96 Skanowanie usług 102 4. Wyszukiwanie podatności na ataki 107 Co to jest podatność? 107 Typy podatności 108 Lokalne podatności 112 Zewnętrzne podatności 117 Podatności urządzeń sieciowych 127 Podatności baz danych 130 Wykrywanie nieznanych podatności 131 5. Automatyczne eksploity 135 Czym jest eksploit? 135 Ataki na urządzenia Cisco 136 Ataki na inne urządzenia 138 Baza eksploitów 139 Metasploit 141 Armitage 150 Inżynieria społeczna 152 6. Więcej o platformie Metasploit 157 Wyszukiwanie obiektów ataku 157 Eksploracja testowanego obiektu 163 Interfejs Meterpreter 165 Rozszerzanie uprawnień 170 Ekspansja do innych sieci 173 Utrzymanie dostępu 175 7. Testowanie bezpieczeństwa sieci bezprzewodowych 181 Dziedzina łączności bezprzewodowej 181 Ataki na sieci wi-fi i narzędzie testujące 184 Łamanie haseł do sieci bezprzewodowych 192 Podszywanie się 198 Testowanie protokołu Bluetooth 204 Testowanie protokołu Zigbee 209 8. Testowanie aplikacji WWW 211 Architektura aplikacji WWW 211 Ataki na strony WWW 215 Serwery proxy 222 Automatyzacja ataków na strony WWW 234 Wstrzykiwanie zapytań SQL 241 Inne testy 245 9. Łamanie haseł 249 Magazyn haseł 249 Pozyskiwanie haseł 252 Lokalne łamanie haseł 255 Zdalne łamanie haseł 264 Łamanie aplikacji WWW 266 10. Zaawansowane techniki i pojęcia 271 Podstawy programowania 272 Błędy w kodzie 278 Tworzenie modułów Nmap 282 Rozszerzenie platformy Metasploit 284 Deasemblacja i inżynieria odwrotna 287 Utrzymywanie dostępu i zacieranie śladów 294 11. Raportowanie 299 Określenie prawdopodobieństwa i istotności zagrożenia 299 Pisanie raportu 301 Robienie notatek 305 Porządkowanie danych 309
Sygnatura czytelni BWEAiI: XII S 39
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 148506 N (1 egz.)
Książka
W koszyku
Oznaczenie: Wyd. 5 na okł. dotyczy oryg.
Na s. tyt., okł. logo wydawcy oryg.: SAMS Publishing.
Indeks.
Streszczenie: Umożliwia solidne opanowanie podstaw, a następnie zapoznanie się z bardziej zaawansowanymi zagadnieniami. Pokazuje na czym polega planowanie, wdrażanie systemu SAP i korzystanie z niego.
Dla nowych jak i doświadczonych użytkowników systemu SAP.
Sygnatura czytelni BMW: VI C 108 (nowy)
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka Międzywydziałowa
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 143217 N (1 egz.)
Książka
W koszyku
(Szalony Geniusz)
Na s. tyt. i okł.: Poznaj fascynujący świat elektroniki!
Pliki z przykładami omawianymi w książce można znaleźć pod adresem internet. podanym na s. red.
Indeks.
Sygnatura czytelni BWEAiI: IX C 44
Ta pozycja znajduje się w zbiorach 2 placówek. Rozwiń listę, by zobaczyć szczegóły.
Wypożyczalnia
Są egzemplarze dostępne do wypożyczenia: sygn. 140950 (1 egz.)
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 140949 N (1 egz.)
Książka
W koszyku
Na stronie tytułowej i okładce także nazwa wydawcy oryginału: No starch press.
Programowanie systemów wbudowanych Instalowanie GCC Pobieranie programu System Workbench for STM32 Kompilowanie programu Popełnianie błędów Zrozumienie działania programu Dodawanie komentarzy Ulepszanie programu i procesu jego budowania Program "make" Flagi kompilatora Jak kompilator działa za kulisami Preprocesor Kompilator Asembler Konsolidator Dodawanie reguł do pliku Makefile Prezentacja zintegrowanego środowiska programistycznego Korzystanie z programu System Workbench for STM32 Uruchamianie środowiska IDE Debugowanie programu Co zrobiło środowisko IDE Importowanie przykładowych programów opisanych w tej książce 3. Programowanie mikrokontrolera Płytka rozwojowa NUCLEO-F030R8 Programowanie i debugowanie na płytce Konfigurowanie płytki Konfigurowanie projektu dla systemu wbudowanego Twój pierwszy program dla systemu wbudowanego Inicjacja sprzętu Programowanie pinu GPIO Przełączanie diody LED Budowanie kompletnego programu Analiza procesu budowania Analiza plików projektu Debugowanie aplikacji 4. Liczby i zmienne Praca z liczbami całkowitymi Deklarowanie zmiennych do przechowywania liczb całkowitych Nadawanie wartości zmiennym Inicjowanie zmiennych Rozmiary i reprezentacje liczb całkowitych Reprezentacje liczb Standardowe liczby całkowite Typy całkowitoliczbowe bez znaku Przepełnienie Reprezentacja liczb całkowitych ze znakiem metodą uzupełnień do dwóch Skrócone operatory Sterowanie mapowanymi w pamięci rejestrami we/wy za pomocą operacji bitowych Alternatywa Koniunkcja Negacja Alternatywa wykluczająca Przesunięcie Definiowanie znaczenia bitów Nadawanie wartości dwóm bitom naraz Wyłączanie bitu Sprawdzanie wartości bitów Problemy programistyczne 5. Instrukcje decyzyjne i sterujące Instrukcja if Instrukcja if/else Instrukcje pętli Pętla while Pętla for Używanie przycisku Inicjacja Wybór układu ze ściąganiem Pobieranie stanu przycisku Uruchomienie programu Sterowanie pętlą Instrukcja break Instrukcja continue Antywzorce Pusta pętla while Przypisanie w pętli while Problemy programistyczne 6. Tablice, wskaźniki i łańcuchy Tablice "Pod maską": wskaźniki Arytmetyka tablic i wskaźników Przepełnienie tablicy Znaki i ich łańcuchy Problemy programistyczne 7. Zmienne lokalne i procedury Zmienne lokalne Przesłonięte zmienne Procedury Ramki stosu Rekurencja Styl programowania 8. Złożone typy danych Wyliczenia Sztuczki preprocesora a wyliczenia Struktury Struktury w pamięci Dostęp do niewyrównanych danych Inicjacja struktur Przypisywanie struktury
Wskaźniki do struktur Nazewnictwo struktur Unie Tworzenie własnego typu Struktury a programowanie systemów wbudowanych typedef Wskaźniki do funkcji a dyrektywa typedef typedef i struct 9. Wyjście szeregowe w mikrokontrolerze STM Wypisywanie znaków łańcucha jeden po drugim Definiowanie własnej funkcji putchar Wyjście szeregowe Krótka historia komunikacji szeregowej Szeregowe "Witaj, świecie!" Inicjacja interfejsu UART Przesyłanie znaku Komunikacja z urządzeniem Windows Linux i macOS 10. Przerwania Odpytywanie kontra przerwania Przerwania w szeregowych operacjach we/wy Procedury obsługi przerwań Wypisywanie łańcucha za pomocą przerwań Koszmar przerwań Zwiększanie prędkości przy użyciu bufora Funkcja nadawcza Procedura obsługi przerwania Cały program Problemy programistyczne Konsolidator Zadanie konsolidatora Modele pamięci stosowane podczas kompilacji i konsolidacji Idealny model języka C Sekcje niestandardowe Proces konsolidacji Symbole definiowane przez konsolidator Relokacja i konsolidacja plików obiektowych Mapa konsolidatora Zaawansowane wykorzystanie konsolidatora Pamięć flash jako "trwałe" miejsce składowania Wiele elementów konfiguracji Przykład adaptacji w "warunkach polowych" Uaktualnianie oprogramowania układowego 12. Preprocesor Proste makra Makra parametryzowane Makra z kodem Kompilacja warunkowa Gdzie definiowane są symbole Symbole w wierszu poleceń Symbole predefiniowane Pliki dołączane Sztuczki preprocesora Język C na wielkich maszynach Pamięć dynamiczna Podstawowe operacje przydzielania pamięci ze sterty i wycofywania jej przydziału Listy wiązane Dodawanie węzła Wypisywanie listy wiązanej Usuwanie węzła Składamy to wszystko razem Problemy z pamięcią dynamiczną Valgrind i AddressSanitizer z GCC . Buforowane plikowe operacje we/wy Funkcja printf Wypisywanie tabeli znaków ASCII Zapis we wstępnie zdefiniowanych plikach Odczyt danych Szkodliwa funkcja gets Otwieranie plików Binarne we/wy Kopiowanie pliku Buforowanie i opróżnianie Zamykanie plików Argumenty poleceń i podstawowe operacje we/wy Argumenty poleceń Wykonywanie podstawowych operacji we/wy Tryb binarny Funkcja ioctl Liczby zmiennoprzecinkowe Typy zmiennoprzecinkowe Automatyczne konwersje Problemy związane z liczbami zmiennoprzecinkowymi Błędy zaokrągleń Precyzja Nieskończoność, wartości nieliczbowe i liczby subnormalne Implementacja Alternatywne rozwiązania Problemy programistyczne 17. Programowanie modularne Proste moduły Problemy związane z prostym modułem Kompilowanie modułu Cechy dobrego modułu Przestrzenie nazw Biblioteki Program ranlib i konsolidacja biblioteki Tryb deterministyczny i niedeterministyczny Słabe symbole Problemy programistyczne Cppcheck Doxygen Valgrind SQLite Natywny projekt C Projekt STM32 Workbench dla urządzenia wbudowanego
Sygnatura czytelni BWEAiI: XII Ł 121
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 154677 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Deep Learning : A Practitioner's Approach.
Na stronie tytułowej również informacje o miejscach wydania i wydawcy oryginału - O'Reilly.
Indeks.
Rozdział 1. Podstawy uczenia maszynowego Uczące się maszyny Postawienie pytań Matematyczne podstawy uczenia maszynowego — algebra liniowa Matematyczne podstawy uczenia maszynowego — statystyka Jak uczą się maszyny? Regresja logistyczna Ocenianie modeli Poszerzanie wiedzy o uczeniu maszynowym Rozdział 2. Podstawy sieci neuronowych i głębokiego uczenia Sieci neuronowe Trenowanie sieci neuronowych Funkcje aktywacji Funkcje straty Hiperparametry Rozdział 3. Podstawy sieci głębokich Definicja głębokiego uczenia Popularne architektury sieci głębokich Bloki konstrukcyjne sieci głębokich Rozdział 4. Najważniejsze rodzaje sieci głębokich Wstępnie przetrenowane sieci nienadzorowane Sieci CNN Sieci RNN Rekursywne sieci neuronowe Podsumowanie i dyskusja Rozdział 5. Budowanie sieci głębokich Dobór głębokiej sieci odpowiedniej dla danego problemu Biblioteka narzędzi DL4J Podstawowe funkcje interfejsu API biblioteki DL4J Modelowanie danych CSV za pomocą wielowarstwowej sieci perceptronowej Modelowanie obrazów odręcznych znaków za pomocą sieci CNN Modelowanie sekwencji danych za pomocą sieci RNN Wykrywanie anomalii za pomocą autokoderów Rekonstrukcja cyfr z bazy MNIST za pomocą autokodera wariacyjnego Uczenie maszynowe w przetwarzaniu języka naturalnego Rozdział 6. Strojenie sieci głębokich Podstawowe zagadnienia strojenia sieci głębokich Dobór architektury sieci do rodzaju danych wejściowych Relacja pomiędzy przeznaczeniem sieci a warstwą wyjściową Liczba warstw i parametrów a wielkość pamięci Strategie inicjalizacji wag Ortogonalna inicjalizacja wag w sieciach RNN Dobór funkcji aktywacji Dobór funkcji straty Szybkość uczenia Jak rozrzedzenie wpływa na proces uczenia? Dobór metody optymalizacyjnej Przyspieszanie treningu za pomocą równoległości i procesorów GPU Dobór liczby epok i wielkości minipaczki Jak stosować regularyzację? Nierównowaga klas Nadmierne dopasowanie modelu Wskaźniki sieciowe w interfejsie strojeniowym Rozdział 7. Strojenie wybranych rodzajów głębokich sieci neuronowych Sieci CNN Sieci RNN Sieci RBM Sieci DBN Rozdział 8. Wektoryzacja Wstęp do wektoryzacji w uczeniu maszynowym Stosowanie narzędzia DataVec w procesie ETL i wektoryzacji Wektoryzacja obrazów Wektoryzacja danych sekwencyjnych Wektoryzacj a tekstu Przetwarzanie grafów Rozdział 9. Głębokie uczenie i biblioteka DL4J w środowisku Spark Wprowadzenie do biblioteki DL4J w środowiskach Spark i Hadoop Konfigurowanie i wykonywanie zadań w środowisku Spark Konfiguracja modelu POM dla środowiska Spark i biblioteki DL4J Diagnostyka systemów Spark i Hadoop Równoległe wykonywanie zadań DL4J w środowisku Spark Dobre praktyki stosowania interfejsu DL4J API w środowisku Spark Przykład kodu wielowarstwowego perceptronu dla środowiska Spark Generowanie szekspirowskich tekstów za pomocą sieci LSTM w środowisku Spark Modelowanie bazy MNIST za pomocą sieci CNN w środowisku Spark Dodatek A. Czym jest sztuczna inteligencja? Dotychczasowe dzieje Co dzisiaj stymuluje zainteresowanie sztuczną inteligencją? Nadchodzi kolejne zlodowacenie Dodatek B. Uczenie przez wzmacnianie Różne scenariusze Q-uczenie Biblioteka RL4J Dodatek C. Liczby, które każdy powinien znać Dodatek D. Sieci neuronowe i propagacja wsteczna — opis matematyczny Propagacja wsteczna w wielowarstwowym perceptronie Dodatek E. Interfejs API biblioteki ND4J Struktura biblioteki i podstawowe zastosowania Tworzenie wektorów wejściowych Klasa MLLibUtil Prognozowanie za pomocą biblioteki DL4J Dodatek F. Biblioteka DataVec Ładowanie danych do modeli uczenia maszynowego Ładowanie danych CSV do wielowarstwowego perceptronu Ładowanie obrazów do sieci CNN Ładowanie sekwencji danych do sieci RNN Przekształcanie danych za pomocą biblioteki DataVec Dodatek G. Kod źródłowy biblioteki DL4J Sprawdzenie, czy program Git jest zainstalowany Sklonowanie najważniejszych projektów DL4J Pobieranie pliku ZIP z kodem źródłowym Kompilacja kodu za pomocą narzędzia Maven Dodatek H. Konfigurowanie projektów DL4J Tworzenie nowego projektu DŁ4J Przygotowanie innych plików POM Dodatek I. Wykorzystanie procesorów GPU w projektach DL4J Przełączenie silnika biblioteki na procesor GPU Biblioteka CUDA dla różnych systemów Monitorowanie wydajności procesora GPU Dodatek J. Diagnostyka instalacji biblioteki DL4J Istniejąca instalacja Błędy pamięci podczas kompilacji kodu źródłowego Starsze wersje narzędzia Maven Narzędzie Maven i zmienna PATH Niewłaściwa wersja pakietu JDK C++ i narzędzia programistyczne System Windows i katalogi z dołączanymi plikami Monitorowanie procesorów GPU Narzędzie JVisualVM Język Clojure System macOS i liczby zmiennoprzecinkowe Błąd w platformie Fork/Join w Java 7 Różne platformy
Sygnatura czytelni BWEAiI: XII E 97
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 146287 N (1 egz.)
Książka
W koszyku
Na okł.: Twórz strony WWW dla wszystkich urządzeń!
Na s. tyt., okł. logo wydaw. oryg.: O'Reily Media.
Na s. tyt. miejsce wydania oryg.: Beijing [etc.].
Pliki z przykładami omawianymi w książce można znaleźć pod adresem internet. podanym na s. red.
Indeks.
Sygnatura czytelni BWEAiI: XII Ź 51
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 140419 N (1 egz.)
Książka
W koszyku
Na okładce nazwa pierwszego wydawcy: Packt.
Indeks.
Aplikacje i usługi oparte na platformie .NET Zarządzanie relacyjną bazą danych SQL Server Zarządzanie bazą NoSQL z użyciem Azure Cosmos DB Ocena wydajności kodu, wielozadaniowość i współbieżność Korzystanie z popularnych zewnętrznych bibliotek Dynamiczne monitorowanie i modyfikowanie kodu Daty, godziny i internacjonalizacja Ochrona danych i aplikacji Tworzenie i zabezpieczanie usług internetowych z użyciem minimalistycznych interfejsów API Udostępnianie danych w internecie za pomocą OData Łączenie źródeł danych za pomocą GraphQL Tworzenie wydajnych mikrousług za pomocą gRPC Rozgłaszanie komunikatów w czasie rzeczywistym z użyciem SignalR Tworzenie nanousług bezserwerowych z użyciem funkcji Azure Tworzenie interfejsów internetowych z użyciem ASP .NET Core Tworzenie komponentów internetowych z użyciem Blazor WebAssembly Otwarte biblioteki komponentów Blazor Tworzenie aplikacji mobilnych i stacjonarnych z użyciem .NET MAUI Integracja aplikacji .NET MAUI z Blazor i natywnymi platformami Konkurs na projekt narzędzia ankietowego
Sygnatura czytelni BWEAiI: XII A 101
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 154649 N (1 egz.)
Książka
W koszyku
Tytuł oryginału: Collect, combine, and transform data using Power Query in Excel and Power BI.
Indeks.
Dla użytkowników, którzy chcą poszerzyć swoją wiedzę o programach Microsoft Excel i Power BI, programistów SQL Server i Azure Analysis Services, chcących sprawniej pisać kod ETL.
Rozdział 1. Wprowadzenie do Power Query 27 Czym jest Power Query? 28 Historia Power Query w skrócie 29 Gdzie znajduje się Power Query? 32 Główne komponenty Power Query 33 Pobieranie danych i tworzenie połączeń 33 Najważniejsze elementy edytora Power Query 34 Ćwiczenie 1.1. Pierwsze kroki z Power Query 39 Rozdział 2. Podstawowe operacje przygotowywania danych 45 Wyodrębnianie informacji z zakodowanych danych 46 Fabryka Przygód 46 Ćwiczenie 2.1. Stary sposób: formuły Excela 47 Ćwiczenie 2.2. Część I. Nowy sposób 48 Ćwiczenie 2.2. Część II. Scalanie tabel wyszukiwania 51 Ćwiczenie 2.2. Część III. Tabele faktów i wyszukiwania 55 Kolumna z przykładów 57 Ćwiczenie 2.3. Część I. Kolumna z przykładów - wprowadzenie 57 Kolumna z przykładów w praktyce 59 Ćwiczenie 2.3. Część II. Zamiana wielkości na oznaczenie zakresu 59 Wyodrębnianie informacji z kolumn tekstowych 62 Ćwiczenie 2.4. Wyodrębnianie odnośników z komunikatów tekstowych 62 Operacje na datach 69 Ćwiczenie 2.5. Operacje na różnych formatach dat 69 Ćwiczenie 2.6. Operacje na datach z różnymi ustawieniami regionalnymi 71 Wyodrębnianie elementów daty i czasu 74 Przygotowanie modelu 75 Ćwiczenie 2.7. Dzielenie danych na tabelę faktów i tabelę wyszukiwania 75 Ćwiczenie 2.8. Zamiana wartości oddzielonych ogranicznikami na wiersze 78 Rozdział 3. Łączenie danych z kilku źródeł 81 Łączenie kliku tabel 81 Łączenie dwóch tabel 82 Ćwiczenie 3.1. Rowery i akcesoria 82 Ćwiczenie 3.2. Część I. Przekształcenie "Dołącz zapytania jako nowe" 84 Ćwiczenie 3.2. Część II. Zależności między zapytaniami i odwołania 84 Łączenie trzech lub więcej tabel 87 Ćwiczenie 3.2. Część III. Rowery + Akcesoria + Komponenty 87 Ćwiczenie 3.2. Część IV. Rowery + Akcesoria + Komponenty + Ubrania 88 Łączenie tabel na szerszą skalę 89 Łączenie tabel zapisanych w folderze 89 Ćwiczenie 3.3. Łączenie skoroszytów z produktami zapisanymi w folderze 90 Uwagi do importowania plików z folderu 92 Łączenie arkuszy w skoroszycie 92 Ćwiczenie 3.4. Łączenie arkuszy - rozwiązanie 93 Rozdział 4. Łączenie niezgodnych tabel 99 Problem z niezgodnymi tabelami 99 Co to jest niezgodność tabel? 100 Symptomy niezgodności tabel i związane z tym ryzyka 100 Ćwiczenie 4.1. Uzgadnianie kolumn: podejście reaktywne 101 Łączenie niezgodnych tabel zapisanych w folderze 102 Ćwiczenie 4.2. Część I. Symptom braku wartości 102 Ćwiczenie 4.2. Część II. Założenie takiej samej kolejności kolumn i ujednolicenie nagłówków 104 Ćwiczenie 4.3. Proste ujednolicenie nagłówków za pomocą funkcji Table.TransformColumnNames 105 Tabela konwersji 108 Ćwiczenie 4.4. Transpozycja z użyciem tabeli konwersji 109 Ćwiczenie 4.5. Anulowanie przestawienia, scalenie i powtórne przestawienie 113 Ćwiczenie 4.6. Transpozycja samych nazw kolumn 114 Ćwiczenie 4.7. Ujednolicenie nazw kolumn za pomocą języka M 119 Rozdział 5. Pozyskiwanie kontekstu 123 Pozyskiwanie kontekstu zawartego w nazwach plików i skoroszytów 124 Ćwiczenie 5.1. Część I. Kolumna niestandardowa 124 Ćwiczenie 5.1. Część II. Pozyskiwanie kontekstu z nazwy pliku lub arkusza 125 Pozyskiwanie kontekstu z tytułów tabel przed ich połączeniem 126 Ćwiczenie 5.2. Pozyskiwanie kontekstu z tytułów tabel za pomocą przekształcenia Drill Down 127 Ćwiczenie 5.3. Pozyskiwanie kontekstu z tytułów tabel podczas importowania plików z folderu 130 Pozyskiwanie kontekstu z tytułów tabel po ich połączeniu 133 Ćwiczenie 5.4. Pozyskiwanie kontekstu z tytułów tabel zapisanych w arkuszach jednego skoroszytu 133 Wskazówki kontekstowe 137 Ćwiczenie 5.5. Kolumna indeksu jako wskazówka 137 Ćwiczenie 5.6. Wyszukiwanie informacji kontekstowych w pobliżu określonych komórek 140 Rozdział 6. Dekomponowanie tabel 145 Rozpoznawanie źle zaprojektowanych tabel 146 Wprowadzenie do anulowania przestawienia 148 Ćwiczenie 6.1. Przekształcenia Anuluj przestawienie kolumn i Anuluj przestawienie innych kolumn 149 Ćwiczenie 6.2. Anulowanie przestawienia tylko zaznaczonych kolumn 151 Przetwarzanie sum całkowitych 152 Ćwiczenie 6.3. Dekompozycja tabeli zawierającej sumy całkowite 153 Dekompozycja tabeli z hierarchią agregacji danych 2(2 155 Ćwiczenie 6.4. Dekompozycja tabeli z hierarchią agregacji danych 2(2 i datami 155 Ćwiczenie 6.5. Dekompozycja tabeli z hierarchią agregacji danych 2×2 158 Przetwarzanie sum częściowych 160 Ćwiczenie 6.6. Przetwarzanie sum częściowych 160 Rozdział 7. Zaawansowane metody dekomponowania i agregowania tabel 163 Dekomponowanie tabeli z wielopoziomową hierarchią agregacji danych 164 Wirtualna tabela przestawna, pola wierszy i kolumn 164 Ćwiczenie 7.1. Dekompozycja tabeli z hierarchią agregacji danych N×M 165 Uogólnienie sekwencji przekształceń dekomponujących tabelę 167 Ćwiczenie 7.2. Zaczynając od końca 168 Ćwiczenie 7.3. Tworzenie funkcji FnDekomponujTabelę 169 Przekształcenie Kolumna przestawna 178 Ćwiczenie 7.4. Przywrócenie niewłaściwie zdekomponowanej tabeli 178 Ćwiczenie 7.5. Agregowanie tabel z wielowierszowymi rekordami 180 Rozdział 8. Praca grupowa 185 Pliki lokalne, parametry i szablony 186 Niewłaściwe korzystanie z lokalnych plików 186 Ćwiczenie 8.1. Zdefiniowanie parametru z nazwą ścieżki 187 Ćwiczenie 8.2. Tworzenie szablonów w Power BI 189 Ćwiczenie 8.3. Definiowanie parametrów w Excelu 191 Praca nad współdzielonymi plikami i folderami 197 Importowanie danych z plików zapisanych w usługach OneDrive dla Firm i SharePoint 197 Ćwiczenie 8.4. Tworzenie zapytań łączących się z usługami OneDrive dla Firm i SharePoint 199 Ćwiczenie 8.5. Od lokalnych folderów do usługi SharePoint 200 Zagadnienia bezpieczeństwa 202 Usuwanie zapytań w drodze inspekcji skoroszytu Excela 203 Rozdział 9. Wprowadzenie do języka M 205 Nauka języka M 206 Etapy opanowania języka M 206 Informacje online 209 Informacje offline 209 Ćwiczenie 9.1. Zmienna #shared i dokumentacja wbudowanych funkcji 209 Bloki konstrukcyjne w języku M 211 Ćwiczenie 9.2. Witaj, świecie! 211 Wyrażenie let 213 Zakresy i scalanie wyrażeń z wielu zapytań 215 Typy danych, operatory i wbudowane funkcje 217 Podstawowe typy danych w języku M 218 Typ number 219 Typ time 220 Typ date 220 Typ duration 221 Typ text 222 Typ null 222 Typ logical 223 Typy złożone 224 Typ list 224 Typ record 227 Typ table 230 Warunki i wyrażenia "if" 232 Wyrażenie "if-then-else" 233 Wyrażenie if wewnątrz wyrażenia let 233 Funkcje niestandardowe 235 Wywoływanie funkcji 236 Wyrażenie each 237 Zaawansowane tematy 237 Obsługa błędów 238 Leniwe i zachłanne przetwarzanie wyrażeń 239 Pętle 239 Rekurencja 240 Funkcja List.Generate 240 Funkcja List.Accumulate 241 Podsumowanie 242 Rozdział 10. Od złych do dobrych zapytań 245 Źródła pułapek i ich skutki 246 Świadome działanie 247 Dobre praktyki 248 Modyfikacje formuł M 248 Pułapka 1. Ignorowanie paska formuły 249 Ćwiczenie 10.1. Wyszukiwanie w pasku formuły statycznych odwołań do nazw kolumn 249 Pułapka 2. Zmiana typów danych 251 Pułapka 3. Niebezpieczne filtrowanie 253 Ćwiczenie 10.2. Część I. Filtrowanie czarnych produktów 254 Działanie warunków w filtrach 255 Ćwiczenie 10.2. Część II. Wyszukiwanie wartości w panelu filtru 257 Pułapka 4. Zmiana kolejności kolumn 257 Ćwiczenie 10.3. Część I. Zmiana kolejności wybranych kolumn 258 Ćwiczenie 10.3. Część II. Niestandardowa funkcja FnZmianaKolejnościKolumn 260 Pułapka 5. Usuwanie i wybieranie kolumn 260 Ćwiczenie 10.4. Usunięcie niepotrzebnych kolumn 261 Pułapka 6. Zmiana nazw kolumn 263 Ćwiczenie 10.5. Zmiana nazw losowych kolumn 263 Pułapka 7. Dzielenie kolumn 266 Ćwiczenie 10.6. Niewłaściwy podział kolumny 267 Pułapka 8. Scalanie kolumn 269 Inne pułapki i techniki zapobiegawcze 270 Rozdział 11. Podstawy analizy tekstu 273 Wyszukiwanie słów kluczowych w kolumnach tekstowych 274 Ćwiczenie 11.1. Proste wyszukiwanie słów kluczowych 274 Wyszukiwanie słów kluczowych z użyciem iloczynu kartezjańskiego 277 Ćwiczenie 11.2. Iloczyn kartezjański 279 Ćwiczenie 11.3. Wyszukiwanie słów kluczowych za pomocą niestandardowej funkcji 285 Jakiej metody użyć: zwykłego wyszukiwania, iloczynu kartezjańskiego czy niestandardowej funkcji? 288 Dzielenie wpisów na słowa 288 Ćwiczenie 11.4. Trywialne dzielenie wpisów na słowa 288 Ćwiczenie 11.5. Odrzucenie stop-słów 293 Ćwiczenie 11.6. Wyszukiwanie słów kluczowych w wyodrębnionych słowach 295 Ćwiczenie 11.7. Chmura słowna w Power BI Desktop 302 Rozdział 12. Zaawansowana analiza tekstu: rozpoznawanie znaczenia 305 Usługa Microsoft Azure Cognitive Services 306 Klucze API i zasoby Azure 307 Uwagi dotyczące korzystania z usługi Azure Cognitive Services za pomocą edytora Power Query 310 Tłumaczenie tekstu 312 Opis interfejsu Translator Text API 312 Ćwiczenie 12.1. Proste tłumaczenie 313 Ćwiczenie 12.2. Tłumaczenie wielu komunikatów 317 Analiza nastroju tekstu 321 Czym jest interfejs Sentiment Analytics API 322 Ćwiczenie 12.3. Implementacja niestandardowej funkcji FnOkreślenieNastroju 324 Ćwiczenie 12.4. Przetwarzanie dużych ilości danych 333 Wyodrębnianie kluczowych fraz 335 Ćwiczenie 12.5. Przystosowanie kodu do wyodrębniania kluczowych fraz 336 Obsługa wielu języków 338 Zmiana oznaczenia języka 338 Dynamiczne wykrywanie języka 339 Ćwiczenie 12.6. Przystosowanie kodu do wykrywania języka 339 Rozdział 13. Analiza sieci społecznościowych 341 Pierwsze kroki z konektorem do Facebooka 342 Ćwiczenie 13.1. Uzyskiwanie informacji o ulubionych stronach 342 Analiza sieci znajomych 347 Ćwiczenie 13.2. Wyszukiwanie bezpośrednich i pośrednich znajomych za pomocą Power BI 347 Ćwiczenie 13.3. Wyszukiwanie stron, które polubili znajomi 349 Analiza stron na Facebooku 351 Ćwiczenie 13.4. Proste odczytywanie wpisów i komentarzy ze stron Facebooka 352 Krótka dygresja: pobieranie danych za wybrany okres 355 Ćwiczenie 13.5. Analiza aktywności użytkowników: zliczanie komentarzy i udostępnień 356 Ćwiczenie 13.6. Analiza porównawcza stron 358 Rozdział 14. Końcowy projekt: wszystko razem 363 Ćwiczenie 14.1. Ratowanie sytuacji u Światowych Importerów 363 Wskazówki 364 Część I. Przygotowanie danych 365 Część II. Dekompozycja tabel 367 Część III. Agregacja danych za 2018 r. 368 Część IV. Scalenie przychodów za lata 2015 - 2017 i za rok 2018 369 Ćwiczenie 14.2. Porównanie tabel i śledzenie hakera 369 Szukanie śladów hakera w zmienionej tabeli 371
Sygnatura czytelni BWEAiI: XII W 60
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 149908 N (1 egz.)
Książka
W koszyku
U góry okł.: Rozwijaj i sprzedawaj aplikacje dla Windows 8!
Indeks.
Dla wszystkich programistów stron internetowych tworzących w językach jQuery, PHP, ASP.NET, Raili lub innych.
Sygnatura czytelni BWEAiI: XII N 71
1 placówka posiada w zbiorach tę pozycję. Rozwiń informację, by zobaczyć szczegóły.
Biblioteka WEAiI
Egzemplarze są dostępne wyłącznie na miejscu w bibliotece: sygn. 138685 N (1 egz.)
Pozycja została dodana do koszyka. Jeśli nie wiesz, do czego służy koszyk, kliknij tutaj, aby poznać szczegóły.
Nie pokazuj tego więcej

Deklaracja dostępności