Lepszy kod w Pythonie. Przewodnik dla aspiruj - Helion

ebook
Autor: David MertzISBN: 9788375415452
stron: 288, Format: ebook
Data wydania: 2024-07-30
Księgarnia: Helion
Cena książki: 71,82 zł (poprzednio: 79,80 zł)
Oszczędzasz: 10% (-7,98 zł)
Tagi: Python - Programowanie
Osoby które kupowały "Lepszy kod w Pythonie. Przewodnik dla aspiruj", wybierały także:
- Django 4. Praktyczne tworzenie aplikacji sieciowych. Wydanie IV 125,48 zł, (38,90 zł -69%)
- Web scraping w Pythonie. Kurs video. Od pobrania kodu 198,98 zł, (79,59 zł -60%)
- Flask. Kurs video. Tworzenie REST API w Pythonie 139,00 zł, (55,60 zł -60%)
- Pytest. Kurs video. Automatyzacja test 148,98 zł, (59,59 zł -60%)
- Python od podstaw. Kurs video. Tworzenie pierwszych gier w PyCharm 129,00 zł, (51,60 zł -60%)
Spis treści
Lepszy kod w Pythonie. Przewodnik dla aspirujących ekspertów eBook -- spis treści
- Spis treści
- Przedmowa
- Wstęp
- Podziękowania
- O autorze
- Wprowadzenie
- Przechodzenie w pętli po niewłaściwych rzeczach
- 1.1 (Rzadko) generuj listę na potrzeby iteracji
- 1.2 Używaj enumerate() zamiast przechodzić w pętli po indeksie
- 1.3 Nie iteruj po dict.keys(), jeśli chcesz dict.items()
- 1.4 Zmienianie obiektu w czasie iteracji
- 1.5 Pętle for są bardziej idiomatyczne niż pętle while
- 1.6 Operator mors dla bloków pętli i pół
- 1.7 zip() upraszcza korzystanie z wielu obiektów iterowalnych
- 1.8 zip(strict=True) i itertools.zip_longest()
- 1.9 Podsumowanie
- Mylenie równości z tożsamością
- 2.1 Późne wiązanie domknięć
- 2.2 Nadmierne sprawdzanie wartości logicznych
- 2.3 Porównywanie x == None
- 2.4 Nieporozumienia związane ze zmiennymi argumentami domyślnymi
- 2.4.1 Podejście pierwsze: użyj klasy
- 2.4.2 Podejście drugie: użyj wartownika None
- 2.4.3 Podejście trzecie: skorzystaj z generatorów stanowych
- 2.5 Kopie kontra referencje do zmiennych obiektów
- 2.6 Mylenie operatora is z == (w obecności internowania)
- 2.7 Podsumowanie
- Mieszanka problemów w Pythonie
- 3.1 Nazywanie rzeczy
- 3.1.1 Nazywanie pliku tak samo jak moduł biblioteki standardowej
- 3.1.2 Unikaj używania import *
- 3.1.3 Puste lub zbyt ogólne instrukcje except
- 3.2 Kwadratowa złożoność naiwnej konkatenacji tekstów
- 3.3 Użyj menedżera kontekstu do otwarcia pliku
- 3.3.1 Pierwsze niebezpieczeństwo
- 3.3.2 Drugie niebezpieczeństwo
- 3.3.3 Poprawianie kruchości
- 3.4 Opcjonalny argument key dla .sort() i sorted()
- 3.5 Użyj dict.get() dla niepewnych kluczy
- 3.6 Podsumowanie
- 3.1 Nazywanie rzeczy
- Zaawansowane użytkowanie Pythona
- 4.1 Porównywanie type(x) == type(y)
- 4.2 Nazywanie rzeczy (nowe spojrzenie)
- 4.2.1 Nadpisywanie nazw wbudowanych
- 4.2.2 Uzyskiwanie bezpośredniego dostępu do atrybutu chronionego
- 4.3 Pamiętaj o rzadziej używanych funkcjach
- 4.3.1 Debugowanie sformatowanego tekstu
- 4.3.2 Elegancka magia dekoratorów
- 4.3.3 Używanie itertools (w odpowiednim stopniu)
- 4.3.4 Biblioteka zewnętrzna more-itertools
- 4.4 Adnotacje typów nie są typami w czasie wykonywania
- 4.4.1 Adnotacje typów nie są ograniczeniami w czasie wykonywania
- 4.4.2 Mylenie typing.NewType() z typem w czasie wykonywania
- 4.5 Podsumowanie
- To, że możesz, nie znaczy, że powinieneś
- 5.1 Metaklasy
- 5.2 Małpie łatanie
- 5.3 Gettery i settery
- 5.4 Łatwiej prosić o przebaczenie niż o pozwolenie
- 5.5 Strukturalne dopasowywanie wzorców
- 5.6 Wyrażenia regularne i katastrofalne cofanie
- 5.7 Podsumowanie
- Wybieranie odpowiedniej struktury danych
- 6.1 collections.defaultdict
- 6.2 collections.Counter
- 6.2.1 Rozwiązanie
- 6.2.2 Błąd
- 6.3 collections.deque
- 6.3.1 Rozwiązanie
- 6.3.2 Błąd
- 6.4 collections.ChainMap
- 6.4.1 Rozwiązanie
- 6.4.2 Błąd
- 6.5 Klasy danych i krotki nazwane
- 6.5.1 Korzystanie z krotek nazwanych
- 6.5.2 Statyczne kontra dynamiczne
- 6.5.3 Klasy danych
- 6.6 Wydajne konkretne sekwencje
- 6.7 Podsumowanie
- Niewłaściwe wykorzystywanie struktur danych
- 7.1 Kwadratowa złożoność wielokrotnego wyszukiwania na liście
- 7.2 Usuwanie lub dodawanie elementów do środka listy
- 7.2.1 Bardziej wydajne struktury danych
- 7.3 Teksty są obiektami iterowalnymi tekstów
- 7.4 (Często) używaj enum zamiast STAŁEJ
- 7.5 Poznaj mniej popularne metody słownika
- 7.5.1 Słowniki definiujące obiekty
- 7.5.2 Powrót do naszego planowanego błędu
- 7.6 JSON nie obsługuje w Pythonie konwersji w obie strony
- 7.6.1 Informacje podstawowe na temat formatu JSON
- 7.6.2 Dane, które nie są konwertowane w obie strony
- 7.7 Tworzenie własnych struktur danych
- 7.7.1 Kiedy tworzenie własnej struktury danych jest złym pomysłem
- 7.7.2 Kiedy tworzenie własnej struktury danych jest dobrym pomysłem
- 7.7.3 Najważniejsze wnioski
- 7.8 Podsumowanie
- Bezpieczeństwo
- 8.1 Rodzaje losowości
- 8.1.1 Używaj modułu secrets na potrzeby losowości kryptograficznej
- 8.1.2 Odtwarzalne rozkłady losowe
- 8.2 Umieszczanie haseł lub innych sekretów w bezpiecznym kodzie źródłowym
- 8.3 Tworzenie własnych mechanizmów bezpieczeństwa
- 8.4 Używaj SSL/TLS na potrzeby mikrousług
- 8.5 Korzystanie z zewnętrznej biblioteki requests
- 8.6 Ataki SQL Injection, gdy nie korzysta się z DB-API
- 8.7 Nie używaj assert do sprawdzania założeń bezpieczeństwa
- 8.8 Podsumowanie
- 8.1 Rodzaje losowości
- Obliczenia numeryczne w Pythonie
- 9.1 Liczby zmiennoprzecinkowe IEEE-754
- 9.1.1 Porównywanie wartości NaN (i innych liczb zmiennoprzecinkowych)
- 9.1.2 Wartości NaN i statistics.median()
- 9.1.3 Naiwne użycie liczb zmiennoprzecinkowych: łączność i rozdzielność
- 9.1.4 Naiwne użycie liczb zmiennoprzecinkowych: szczegółowość
- 9.2 Numeryczne typy danych
- 9.2.1 Unikaj liczb zmiennoprzecinkowych w obliczeniach finansowych
- 9.2.2 Nieoczywiste zachowania numerycznych typów danych
- 9.3 Podsumowanie
- 9.1 Liczby zmiennoprzecinkowe IEEE-754
- Tematy na inne książki
- A.1 Test-Driven Development (TDD)
- A.2 Współbieżność
- A.3 Tworzenie pakietów
- A.4 Sprawdzanie typów
- A.5 Biblioteki numeryczne i biblioteki ramek danych
- Indeks
- Polecamy także: