Produktbild: Better Python Code

Better Python Code A Guide for Aspiring Experts

Fr. 51.90

inkl. gesetzl. MwSt., Versandkostenfrei


Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

24.11.2023

Verlag

Pearson Academic

Seitenzahl

288

Maße (L/B/H)

23.1/18/0.8 cm

Gewicht

463 g

Auflage

1. Auflage

Sprache

Englisch

ISBN

978-0-13-832094-2

Beschreibung

Produktdetails

Einband

Taschenbuch

Erscheinungsdatum

24.11.2023

Verlag

Pearson Academic

Seitenzahl

288

Maße (L/B/H)

23.1/18/0.8 cm

Gewicht

463 g

Auflage

1. Auflage

Sprache

Englisch

ISBN

978-0-13-832094-2

Herstelleradresse

Libri GmbH
Europaallee 1
36244 Bad Hersfeld
DE

Email: gpsr@libri.de

Kundinnen und Kunden meinen

0 Bewertungen

Informationen zu Bewertungen

Zur Abgabe einer Bewertung ist eine Anmeldung im Konto notwendig. Die Authentizität der Bewertungen wird von uns nicht überprüft. Wir behalten uns vor, Bewertungstexte, die unseren Richtlinien widersprechen, entsprechend zu kürzen oder zu löschen.

Die Bewertungen sind nach Format, Anzahl Sterne und Datum sortiert.

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kund*innen durch Ihre Meinung

Kundinnen und Kunden meinen

0 Bewertungen filtern

Die Leseprobe wird geladen.
  • Produktbild: Better Python Code
  • Foreword xvii
    Preface xix
    Acknowledgments xxv
    About the Author xxvii

    Introduction 1

    Chapter 1: Looping Over the Wrong Things 3
    1.1 (Rarely) Generate a List for Iteration 3
    1.2 Use enumerate() Instead of Looping Over an Index 6
    1.3 Don't Iterate Over dict.keys() When You Want dict.items() 8
    1.4 Mutating an Object During Iteration 9
    1.5 for Loops Are More Idiomatic Than while Loops 12
    1.6 The Walrus Operator for "Loop-and-a-Half" Blocks 13
    1.7 zip() Simplifies Using Multiple Iterables 15
    1.8 zip(strict=True) and itertools.zip_longest() 17
    1.9 Wrapping Up 20

    Chapter 2: Confusing Equality with Identity 21
    2.1 Late Binding of Closures 21
    2.2 Overchecking for Boolean Values 25
    2.3 Comparing x == None 28
    2.4 Misunderstanding Mutable Default Arguments 29
    2.5 Copies versus References to Mutable Objects 33
    2.6 Confusing is with == (in the Presence of Interning) 35
    2.7 Wrapping Up 37

    Chapter 3: A Grab Bag of Python Gotchas 39
    3.1 Naming Things 39
    3.2 Quadratic Behavior of Naive String Concatenation 52
    3.3 Use a Context Manager to Open a File 56
    3.4 Optional Argument key to .sort() and sorted() 59
    3.5 Use dict.get() for Uncertain Keys 62
    3.6 Wrapping Up 64

    Chapter 4: Advanced Python Usage 67
    4.1 Comparing type(x) == type(y) 67
    4.2 Naming Things (Revisited) 71
    4.3 Keep Less-Used Features in Mind 79
    4.4 Type Annotations Are Not Runtime Types 98
    4.5 Wrapping Up 105

    Chapter 5: Just Because You Can, It Doesn't Mean You Should... 107
    5.1 Metaclasses 107
    5.2 Monkeypatching 112
    5.3 Getters and Setters 115
    5.4 It's Easier to Ask for Forgiveness Than Permission 118
    5.5 Structural Pattern Matching 121
    5.6 Regular Expressions and Catastrophic Backtracking 123
    5.7 Wrapping Up 126

    Chapter 6: Picking the Right Data Structure 129
    6.1 collections.defaultdict 129
    6.2 collections.Counter 132
    6.3 collections.deque 135
    6.4 collections.ChainMap 138
    6.5 Dataclasses and Namedtuples 141
    6.6 Efficient Concrete Sequences 146
    6.7 Wrapping Up 150

    Chapter 7: Misusing Data Structures 153
    7.1 Quadratic Behavior of Repeated List Search 153
    7.2 Deleting or Adding Elements to the Middle of a List 157
    7.3 Strings Are Iterables of Strings 163
    7.4 (Often) Use enum Rather Than CONSTANT 166
    7.5 Learn Less Common Dictionary Methods 169
    7.6 JSON Does Not Round-Trip Cleanly to Python 174
    7.7 Rolling Your Own Data Structures 178
    7.8 Wrapping Up 187

    Chapter 8: Security 189
    8.1 Kinds of Randomness 190
    8.2 Putting Passwords or Other Secrets in "Secure" Source Code 195
    8.3 "Rolling Your Own" Security Mechanisms 198
    8.4 Use SSL/TLS for Microservices 201
    8.5 Using the Third-Party requests Library 205
    8.6 SQL Injection Attacks When Not Using DB-API 208
    8.7 Dont Use assert to Check Safety Assumptions 212
    8.8 Wrapping Up 215

    Chapter 9: Numeric Computation in Python 217
    9.1 Understanding IEEE-754 Floating Point Numbers 217
    9.2 Numeric Datatypes 228
    9.3 Wrapping Up 239

    Appendix: Topics for Other Books 241
    A.1 Test-Driven Development 241
    A.2 Concurrency 242
    A.3 Packaging 243
    A.4 Type Checking 243
    A.5 Numeric and Dataframe Libraries 244

    Index 245