{"product_id":"python-for-everyone-emea-edition-paperback-softback-9781119638292","title":"Python for Everyone, EMEA Edition (Paperback \/ softback) 9781119638292","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003ePython for Everyone, EMEA Edition\u003c\/font\u003e\u003cbr\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003c\/p\u003e\n\u003cp\u003e\u003cfont size=\"4\"\u003eCay S. Horstmann (Author), Rance D. Necaise (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781119638292, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003ePaperback \/ softback, published 20 August 2019\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e752 pages\u003cbr\u003e1 x 1 x 1 cm, 0.454 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003e\u003cp\u003e\u003cb\u003e\u003ci\u003ePython for Everyone, 3rd Edition\u003c\/i\u003e\u003c\/b\u003e is an introduction to programming designed to serve a wide range of student interests and abilities, focused on the essentials, and on effective learning. It is suitable for a first course in programming for computer scientists, engineers, and students in other disciplines. This text requires no prior programming experience and only a modest amount of high school algebra. Objects are used where appropriate in early chapters and students start designing and implementing their own classes in Chapter 9. New to this edition are examples and exercises that focus on various aspects of data science.\u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003ePreface iii\u003c\/p\u003e \u003cp\u003eSpecial Features xviii\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Introduction 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Computer Programs 2\u003c\/p\u003e \u003cp\u003e1.2 The Anatomy of a Computer 3\u003c\/p\u003e \u003cp\u003eCS1 Computers Are Everywhere 5\u003c\/p\u003e \u003cp\u003e1.3 The Python Programming Language 5\u003c\/p\u003e \u003cp\u003e1.4 Becoming Familiar with Your Programming Environment 6\u003c\/p\u003e \u003cp\u003ePT1 Interactive Mode 8\u003c\/p\u003e \u003cp\u003ePT2 Backup Copies 9\u003c\/p\u003e \u003cp\u003eST1 The Python Interpreter 10\u003c\/p\u003e \u003cp\u003e1.5 Analyzing Your First Program 11\u003c\/p\u003e \u003cp\u003e1.6 Errors 13\u003c\/p\u003e \u003cp\u003eCE1 Misspelling Words 14\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING: Algorithm Design 15\u003c\/p\u003e \u003cp\u003eCS2 Data Is Everywhere 17\u003c\/p\u003e \u003cp\u003eHT1 Describing an Algorithm with Pseudocode 18\u003c\/p\u003e \u003cp\u003eWE1 Writing an Algorithm for Tiling a Floor 20\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Programming with Numbers and Strings 23\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Variables 24\u003c\/p\u003e \u003cp\u003eDefining Variables 24\u003c\/p\u003e \u003cp\u003eNumber Types 26\u003c\/p\u003e \u003cp\u003eVariable Names 27\u003c\/p\u003e \u003cp\u003eConstants 28\u003c\/p\u003e \u003cp\u003eComments 29\u003c\/p\u003e \u003cp\u003eCE1 Using Undefined Variables 30\u003c\/p\u003e \u003cp\u003ePt1 Choose Descriptive Variable Names 30\u003c\/p\u003e \u003cp\u003ePT2 Do Not Use Magic Numbers 30\u003c\/p\u003e \u003cp\u003e2.2 Arithmetic 31\u003c\/p\u003e \u003cp\u003eBasic Arithmetic Operations 31\u003c\/p\u003e \u003cp\u003ePowers 32\u003c\/p\u003e \u003cp\u003eFloor Division and Remainder 32\u003c\/p\u003e \u003cp\u003eCalling Functions 33\u003c\/p\u003e \u003cp\u003eMathematical Functions 35\u003c\/p\u003e \u003cp\u003eCE2 Roundoff Errors 36\u003c\/p\u003e \u003cp\u003eCE3 Unbalanced Parentheses 37\u003c\/p\u003e \u003cp\u003ePT3 Use Spaces in Expressions 37\u003c\/p\u003e \u003cp\u003eST1 Other Ways to Import Modules 38\u003c\/p\u003e \u003cp\u003eST2 Combining Assignment and Arithmetic 38\u003c\/p\u003e \u003cp\u003eST3 Line Joining 38\u003c\/p\u003e \u003cp\u003e2.3 PROBLEM SOLVING: First Do It By Hand 39\u003c\/p\u003e \u003cp\u003eWE1 Computing Travel Time 40\u003c\/p\u003e \u003cp\u003e2.4 Strings 41\u003c\/p\u003e \u003cp\u003eThe String Type 41\u003c\/p\u003e \u003cp\u003eConcatenation and Repetition 42\u003c\/p\u003e \u003cp\u003eConverting Between Numbers and Strings 43\u003c\/p\u003e \u003cp\u003eStrings and Characters 44\u003c\/p\u003e \u003cp\u003eString Methods 45\u003c\/p\u003e \u003cp\u003eST4 Character Values 46\u003c\/p\u003e \u003cp\u003eST5 Escape Sequences 47\u003c\/p\u003e \u003cp\u003eCS1 International Alphabets and Unicode 47\u003c\/p\u003e \u003cp\u003e2.5 Input and Output 48\u003c\/p\u003e \u003cp\u003eUser Input 48\u003c\/p\u003e \u003cp\u003eNumerical Input 49\u003c\/p\u003e \u003cp\u003eFormatted Output 50\u003c\/p\u003e \u003cp\u003ePT4 Don’t Wait to Convert 53\u003c\/p\u003e \u003cp\u003eHT1 Writing Simple Programs 53\u003c\/p\u003e \u003cp\u003eWE2 Computing the Cost of Stamps 56\u003c\/p\u003e \u003cp\u003eCS2 Bugs in Silicon 58\u003c\/p\u003e \u003cp\u003e2.6 GRAPHICS: Simple Drawings 58\u003c\/p\u003e \u003cp\u003eCreating a Window 59\u003c\/p\u003e \u003cp\u003eLines and Polygons 60\u003c\/p\u003e \u003cp\u003eFilled Shapes and Color 62\u003c\/p\u003e \u003cp\u003eOvals, Circles, and Text 64\u003c\/p\u003e \u003cp\u003eHT2 GRAPHICS: Drawing Graphical Shapes 65\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Symbolic Processing with SymPy 68\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Decisions 73\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 The if Statement 74\u003c\/p\u003e \u003cp\u003eCE1 Tabs 77\u003c\/p\u003e \u003cp\u003ePT1 Avoid Duplication in Branches 78\u003c\/p\u003e \u003cp\u003eST1 Conditional Expressions 78\u003c\/p\u003e \u003cp\u003e3.2 Relational Operators 79\u003c\/p\u003e \u003cp\u003eCE2 Exact Comparison of Floating-Point Numbers 82\u003c\/p\u003e \u003cp\u003eST2 Lexicographic Ordering of Strings 82\u003c\/p\u003e \u003cp\u003eHT1 Implementing an if Statement 83\u003c\/p\u003e \u003cp\u003eWE1 Extracting the Middle 85\u003c\/p\u003e \u003cp\u003e3.3 Nested Branches 87\u003c\/p\u003e \u003cp\u003ePT2 Hand-Tracing 89\u003c\/p\u003e \u003cp\u003eCS1 Dysfunctional Computerized Systems 90\u003c\/p\u003e \u003cp\u003e3.4 Multiple Alternatives 91\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Sending E-mail 93\u003c\/p\u003e \u003cp\u003e3.5 PROBLEM SOLVING: Flowcharts 96\u003c\/p\u003e \u003cp\u003e3.6 PROBLEM SOLVING: Test Cases 99\u003c\/p\u003e \u003cp\u003ePT3 Make a Schedule and Make Time for Unexpected Problems 100\u003c\/p\u003e \u003cp\u003e3.7 Boolean Variables and Operators 101\u003c\/p\u003e \u003cp\u003eCE3 Confusing and and or Conditions 104\u003c\/p\u003e \u003cp\u003ePT4 Readability 104\u003c\/p\u003e \u003cp\u003eST3 Chaining Relational Operators 105\u003c\/p\u003e \u003cp\u003eST4 Short-Circuit Evaluation of Boolean Operators 105\u003c\/p\u003e \u003cp\u003eST5 De Morgan’s Law 106\u003c\/p\u003e \u003cp\u003e3.8 Analyzing Strings 106\u003c\/p\u003e \u003cp\u003e3.9 APPLICATION: Input Validation 110\u003c\/p\u003e \u003cp\u003eST6 Terminating a Program 112\u003c\/p\u003e \u003cp\u003eST7 Interactive Graphical Programs 112\u003c\/p\u003e \u003cp\u003eCS2 Artificial Intelligence 113\u003c\/p\u003e \u003cp\u003eWE2 GRAPHICS: Intersecting Circles 113\u003c\/p\u003e \u003cp\u003eTOOLBOX 2 Plotting Simple Graphs 117\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Loops 125\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 The while Loop 126\u003c\/p\u003e \u003cp\u003eCE1 Don’t Think “Are We There Yet?” 130\u003c\/p\u003e \u003cp\u003eCE2  Infinite Loops 130\u003c\/p\u003e \u003cp\u003eCE3 Off-by-One Errors 131\u003c\/p\u003e \u003cp\u003eST1 Special Form of the print Function 132\u003c\/p\u003e \u003cp\u003eCS1 The First Bug 132\u003c\/p\u003e \u003cp\u003e4.2 PROBLEM SOLVING: Hand-Tracing 133\u003c\/p\u003e \u003cp\u003e4.3 APPLICATION: Processing Sentinel Values 135\u003c\/p\u003e \u003cp\u003eST2 Processing Sentinel Values with a Boolean Variable 138\u003c\/p\u003e \u003cp\u003eST3 Redirection of Input and Output 138\u003c\/p\u003e \u003cp\u003e4.4 PROBLEM SOLVING: Storyboards 139\u003c\/p\u003e \u003cp\u003e4.5 Common Loop Algorithms 141\u003c\/p\u003e \u003cp\u003eSum and Average Value 141\u003c\/p\u003e \u003cp\u003eCounting Matches 142\u003c\/p\u003e \u003cp\u003ePrompting Until a Match is Found 142\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 142\u003c\/p\u003e \u003cp\u003eComparing Adjacent Values 143\u003c\/p\u003e \u003cp\u003e4.6 The for Loop 145\u003c\/p\u003e \u003cp\u003ePT1 Count Iterations 148\u003c\/p\u003e \u003cp\u003eHT1 Writing a Loop 149\u003c\/p\u003e \u003cp\u003e4.7 Nested Loops 152\u003c\/p\u003e \u003cp\u003eWE1 Average Exam Grades 155\u003c\/p\u003e \u003cp\u003eWE2 A Grade Distribution Histogram 157\u003c\/p\u003e \u003cp\u003e4.8 Processing Strings 159\u003c\/p\u003e \u003cp\u003eCounting Matches 159\u003c\/p\u003e \u003cp\u003eFinding All Matches 160\u003c\/p\u003e \u003cp\u003eFinding the First or Last Match 160\u003c\/p\u003e \u003cp\u003eValidating a String 161\u003c\/p\u003e \u003cp\u003eBuilding a New String 162\u003c\/p\u003e \u003cp\u003e4.9 APPLICATION: Random Numbers and Simulations 164\u003c\/p\u003e \u003cp\u003eGenerating Random Numbers 164\u003c\/p\u003e \u003cp\u003eSimulating Die Tosses 165\u003c\/p\u003e \u003cp\u003eThe Monte Carlo Method 165\u003c\/p\u003e \u003cp\u003eWE3 GRAPHICS: Bull’s Eye 167\u003c\/p\u003e \u003cp\u003e4.10 GRAPHICS: Digital Image Processing 169\u003c\/p\u003e \u003cp\u003eFiltering Images 170\u003c\/p\u003e \u003cp\u003eReconfiguring Images 172\u003c\/p\u003e \u003cp\u003e4.11 PROBLEM SOLVING: Solve a Simpler Problem First 174\u003c\/p\u003e \u003cp\u003eCS2 Digital Piracy 180\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Functions 183\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Functions as Black Boxes 184\u003c\/p\u003e \u003cp\u003e5.2 Implementing and Testing Functions 185\u003c\/p\u003e \u003cp\u003eImplementing a Function 186\u003c\/p\u003e \u003cp\u003eTesting a Function 186\u003c\/p\u003e \u003cp\u003ePrograms that Contain Functions 187\u003c\/p\u003e \u003cp\u003ePT1 Function Comments 189\u003c\/p\u003e \u003cp\u003ePT2 Naming Functions 190\u003c\/p\u003e \u003cp\u003e5.3 Parameter Passing 190\u003c\/p\u003e \u003cp\u003ePT3 Do Not Modify Parameter Variables 191\u003c\/p\u003e \u003cp\u003eCE1 Trying to Modify Arguments 192\u003c\/p\u003e \u003cp\u003e5.4 Return Values 192\u003c\/p\u003e \u003cp\u003eST1 Using Single-Line Compound Statements 193\u003c\/p\u003e \u003cp\u003eHT1 Implementing a Function 194\u003c\/p\u003e \u003cp\u003eWE1 Generating Random Passwords 196\u003c\/p\u003e \u003cp\u003e5.5 Functions Without Return Values 201\u003c\/p\u003e \u003cp\u003eCS1 Personal Computing 202\u003c\/p\u003e \u003cp\u003e5.6 PROBLEM SOLVING: Reusable Functions 203\u003c\/p\u003e \u003cp\u003e5.7 PROBLEM SOLVING: Stepwise Refinement 205\u003c\/p\u003e \u003cp\u003ePT4 Keep Functions Short 209\u003c\/p\u003e \u003cp\u003ePT5 Tracing Functions 210\u003c\/p\u003e \u003cp\u003ePT6 Stubs 211\u003c\/p\u003e \u003cp\u003eWE2 Calculating a Course Grade 211\u003c\/p\u003e \u003cp\u003eWE3 Using a Debugger 214\u003c\/p\u003e \u003cp\u003e5.8 Variable Scope 219\u003c\/p\u003e \u003cp\u003ePT7 Avoid Global Variables 221\u003c\/p\u003e \u003cp\u003eWE4 GRAPHICS: Rolling Dice 221\u003c\/p\u003e \u003cp\u003e5.9 GRAPHICS: Building an Image Processing Toolkit 224\u003c\/p\u003e \u003cp\u003eGetting Started 224\u003c\/p\u003e \u003cp\u003eComparing Images 225\u003c\/p\u003e \u003cp\u003eAdjusting Image Brightness 226\u003c\/p\u003e \u003cp\u003eRotating an Image 227\u003c\/p\u003e \u003cp\u003eUsing the Toolkit 228\u003c\/p\u003e \u003cp\u003eWE5 Plotting Growth or Decay 230\u003c\/p\u003e \u003cp\u003e5.10 Recursive Functions (Optional) 232\u003c\/p\u003e \u003cp\u003eHT2 Thinking Recursively 234\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Turtle Graphics 236\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Lists 245\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Basic Properties of Lists 246\u003c\/p\u003e \u003cp\u003eCreating Lists 246\u003c\/p\u003e \u003cp\u003eAccessing List Elements 247\u003c\/p\u003e \u003cp\u003eTraversing Lists 248\u003c\/p\u003e \u003cp\u003eList References 249\u003c\/p\u003e \u003cp\u003eCE1 Out-of-Range Errors 250\u003c\/p\u003e \u003cp\u003ePT1 Use Lists for Sequences of Related Items 250\u003c\/p\u003e \u003cp\u003eST1 Negative Subscripts 250\u003c\/p\u003e \u003cp\u003eST2 Common Container Functions 251\u003c\/p\u003e \u003cp\u003eCS1 Computer Viruses 251\u003c\/p\u003e \u003cp\u003e6.2 List Operations 252\u003c\/p\u003e \u003cp\u003eAppending Elements 252\u003c\/p\u003e \u003cp\u003eInserting an Element 253\u003c\/p\u003e \u003cp\u003eFinding an Element 254\u003c\/p\u003e \u003cp\u003eRemoving an Element 254\u003c\/p\u003e \u003cp\u003eConcatenation and Replication 255\u003c\/p\u003e \u003cp\u003eEquality Testing 256\u003c\/p\u003e \u003cp\u003eSum, Maximum, Minimum, and Sorting 256\u003c\/p\u003e \u003cp\u003eCopying Lists 256\u003c\/p\u003e \u003cp\u003eST3 Slices 258\u003c\/p\u003e \u003cp\u003e6.3 Common List Algorithms 259\u003c\/p\u003e \u003cp\u003eFilling 259\u003c\/p\u003e \u003cp\u003eCombining List Elements 259\u003c\/p\u003e \u003cp\u003eElement Separators 260\u003c\/p\u003e \u003cp\u003eMaximum and Minimum 260\u003c\/p\u003e \u003cp\u003eLinear Search 261\u003c\/p\u003e \u003cp\u003eCollecting and Counting Matches 261\u003c\/p\u003e \u003cp\u003eRemoving Matches 262\u003c\/p\u003e \u003cp\u003eSwapping Elements 263\u003c\/p\u003e \u003cp\u003eReading Input 264\u003c\/p\u003e \u003cp\u003eWE1 Plotting Trigonometric Functions 265\u003c\/p\u003e \u003cp\u003e6.4 Using Lists with Functions 268\u003c\/p\u003e \u003cp\u003eST4 Call by Value and Call by Reference 271\u003c\/p\u003e \u003cp\u003eST5 Tuples 271\u003c\/p\u003e \u003cp\u003eST6 Functions with a Variable Number of Arguments 272\u003c\/p\u003e \u003cp\u003eST7 Tuple Assignment 272\u003c\/p\u003e \u003cp\u003eST8 Returning Multiple Values with Tuples 273\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Editing Sound Files 273\u003c\/p\u003e \u003cp\u003e6.5 PROBLEM SOLVING: Adapting Algorithms 275\u003c\/p\u003e \u003cp\u003eHT1 Working with Lists 276\u003c\/p\u003e \u003cp\u003eWE2 Rolling the Dice 278\u003c\/p\u003e \u003cp\u003e6.6 PROBLEM SOLVING: Discovering Algorithms by Manipulating Physical Objects 282\u003c\/p\u003e \u003cp\u003e6.7 Tables 285\u003c\/p\u003e \u003cp\u003eCreating Tables 286\u003c\/p\u003e \u003cp\u003eAccessing Elements 287\u003c\/p\u003e \u003cp\u003eLocating Neighboring Elements 287\u003c\/p\u003e \u003cp\u003eComputing Row and Column Totals 288\u003c\/p\u003e \u003cp\u003eUsing Tables with Functions 289\u003c\/p\u003e \u003cp\u003eWE3 A World Population Table 290\u003c\/p\u003e \u003cp\u003eST9 Tables with Variable Row Lengths 292\u003c\/p\u003e \u003cp\u003eWE4 GRAPHICS: Drawing Regular Polygons 293\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Files and Exceptions 299\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Reading and Writing Text Files 300\u003c\/p\u003e \u003cp\u003eOpening a File 300\u003c\/p\u003e \u003cp\u003eReading from a File 301\u003c\/p\u003e \u003cp\u003eWriting from a File 302\u003c\/p\u003e \u003cp\u003eA File Processing Example 302\u003c\/p\u003e \u003cp\u003eCE1 Backslashes in File Names 303\u003c\/p\u003e \u003cp\u003e7.2 Text Input and Output 304\u003c\/p\u003e \u003cp\u003eIterating over the Lines of a File 304\u003c\/p\u003e \u003cp\u003eReading Words 306\u003c\/p\u003e \u003cp\u003eReading Characters 308\u003c\/p\u003e \u003cp\u003eReading Records 309\u003c\/p\u003e \u003cp\u003eST1 Reading the Entire File 312\u003c\/p\u003e \u003cp\u003eST2 Regular Expressions 312\u003c\/p\u003e \u003cp\u003eST3 Character Encodings 313\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Working with CSV Files 314\u003c\/p\u003e \u003cp\u003e7.3 Command Line Arguments 316\u003c\/p\u003e \u003cp\u003eHT1 Processing Text Files 319\u003c\/p\u003e \u003cp\u003eWE1 Analyzing Baby Names 322\u003c\/p\u003e \u003cp\u003eTOOLBOX 2 Working with Files and Directories 325\u003c\/p\u003e \u003cp\u003eCS1 Encryption Algorithms 327\u003c\/p\u003e \u003cp\u003e7.4 Binary Files and Random Access (Optional) 328\u003c\/p\u003e \u003cp\u003eReading and Writing Binary Files 328\u003c\/p\u003e \u003cp\u003eRandom Access 329\u003c\/p\u003e \u003cp\u003eImage Files 330\u003c\/p\u003e \u003cp\u003eProcessing BMP Files 331\u003c\/p\u003e \u003cp\u003eWE2 GRAPHICS: Displaying a Scene File 334\u003c\/p\u003e \u003cp\u003e7.5 Exception Handling 337\u003c\/p\u003e \u003cp\u003eRaising Exceptions 338\u003c\/p\u003e \u003cp\u003eHandling Exceptions 339\u003c\/p\u003e \u003cp\u003eThe finally Clause 341\u003c\/p\u003e \u003cp\u003ePT1 Raise Early, Handle Late 342\u003c\/p\u003e \u003cp\u003ePT2 Do Not Use except and finally in the Same try Statement 342\u003c\/p\u003e \u003cp\u003eST4 The with Statement 343\u003c\/p\u003e \u003cp\u003eTOOLBOX 3 Reading Web Pages 343\u003c\/p\u003e \u003cp\u003e7.6 APPLICATION: Handling Input Errors 344\u003c\/p\u003e \u003cp\u003eTOOLBOX 4 Statistical Analysis 348\u003c\/p\u003e \u003cp\u003eWE3 Creating a Bubble Chart 352\u003c\/p\u003e \u003cp\u003eCS2 The Ariane Rocket Incident 355\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Sets and Dictionaries 357\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Sets 358\u003c\/p\u003e \u003cp\u003eCreating and Using Sets 358\u003c\/p\u003e \u003cp\u003eAdding and Removing Elements 359\u003c\/p\u003e \u003cp\u003eSubsets 360\u003c\/p\u003e \u003cp\u003eSet Union, Intersection, and Difference 361\u003c\/p\u003e \u003cp\u003eWE1 Counting Unique Words 364\u003c\/p\u003e \u003cp\u003ePT1 Use Python Sets, Not Lists, for Efficient Set Operations 366\u003c\/p\u003e \u003cp\u003eST1 Hashing 367\u003c\/p\u003e \u003cp\u003eCS1 Standardization 368\u003c\/p\u003e \u003cp\u003e8.2 Dictionaries 368\u003c\/p\u003e \u003cp\u003eCreating Dictionaries 369\u003c\/p\u003e \u003cp\u003eAccessing Dictionary Values 370\u003c\/p\u003e \u003cp\u003eAdding and Modifying Items 370\u003c\/p\u003e \u003cp\u003eRemoving Items 371\u003c\/p\u003e \u003cp\u003eTraversing a Dictionary 372\u003c\/p\u003e \u003cp\u003eST2 Iterating over Dictionary Items 374\u003c\/p\u003e \u003cp\u003eST3 Storing Data Records 375\u003c\/p\u003e \u003cp\u003eWE2 Translating Text Messages 375\u003c\/p\u003e \u003cp\u003e8.3 Complex Structures 378\u003c\/p\u003e \u003cp\u003eA Dictionary of Sets 378\u003c\/p\u003e \u003cp\u003eA Dictionary of Lists 381\u003c\/p\u003e \u003cp\u003eST4 User Modules 383\u003c\/p\u003e \u003cp\u003eWE3 GRAPHICS: Pie Charts 384\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Harvesting JSON Data from the Web 388\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Objects and Classes 393\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Object-Oriented Programming 394\u003c\/p\u003e \u003cp\u003e9.2 Implementing a Simple Class 396\u003c\/p\u003e \u003cp\u003e9.3 Specifying the Public Interface of a Class 399\u003c\/p\u003e \u003cp\u003e9.4 Designing the Data Representation 401\u003c\/p\u003e \u003cp\u003ePT1 Make All Instance Variables Private, Most Methods Public 402\u003c\/p\u003e \u003cp\u003e9.5 Constructors 402\u003c\/p\u003e \u003cp\u003eCE1 Trying to Call a Constructor 404\u003c\/p\u003e \u003cp\u003eST1 Default and Named Arguments 404\u003c\/p\u003e \u003cp\u003e9.6 Implementing Methods 405\u003c\/p\u003e \u003cp\u003ePT2 Define Instance Variables Only in the Constructor 407\u003c\/p\u003e \u003cp\u003eST2 Class Variables 408\u003c\/p\u003e \u003cp\u003e9.7 Testing a Class 409\u003c\/p\u003e \u003cp\u003eHT1 Implementing a Class 410\u003c\/p\u003e \u003cp\u003eWE1 Implementing a Bank Account Class 414\u003c\/p\u003e \u003cp\u003e9.8 PROBLEM SOLVING: Tracing Objects 416\u003c\/p\u003e \u003cp\u003e9.9 PROBLEM SOLVING: Patterns for Object Data 419\u003c\/p\u003e \u003cp\u003eKeeping a Total 419\u003c\/p\u003e \u003cp\u003eCounting Events 420\u003c\/p\u003e \u003cp\u003eCollecting Values 420\u003c\/p\u003e \u003cp\u003eManaging Properties of an Object 421\u003c\/p\u003e \u003cp\u003eModeling Objects with Distinct States 421\u003c\/p\u003e \u003cp\u003eDescribing the Position of an Object 422\u003c\/p\u003e \u003cp\u003e9.10 Object References 423\u003c\/p\u003e \u003cp\u003eShared References 424\u003c\/p\u003e \u003cp\u003eThe None Reference 425\u003c\/p\u003e \u003cp\u003eThe self Reference 426\u003c\/p\u003e \u003cp\u003eThe Lifetime of Objects 426\u003c\/p\u003e \u003cp\u003eCS1 Electronic Voting 427\u003c\/p\u003e \u003cp\u003e9.11 APPLICATION: Writing a Fraction Class 428\u003c\/p\u003e \u003cp\u003eFraction Class Design 428\u003c\/p\u003e \u003cp\u003eThe Constructor 429\u003c\/p\u003e \u003cp\u003eSpecial Methods 430\u003c\/p\u003e \u003cp\u003eArithmetic Operations 432\u003c\/p\u003e \u003cp\u003eLogical Operations 433\u003c\/p\u003e \u003cp\u003eST3 Object Types and Instances 435\u003c\/p\u003e \u003cp\u003eWE2 GRAPHICS: A Die Class 436\u003c\/p\u003e \u003cp\u003eCS2 Open Source and Free Software 439\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Inheritance 443\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Inheritance Hierarchies 444\u003c\/p\u003e \u003cp\u003ePT1 Use a Single Class for Variation in Values, Inheritance for Variation in Behavior 447\u003c\/p\u003e \u003cp\u003eST1 The Cosmic Superclass: object 447\u003c\/p\u003e \u003cp\u003e10.2 Implementing Subclasses 449\u003c\/p\u003e \u003cp\u003eCE1 Confusing Super- and Subclasses 451\u003c\/p\u003e \u003cp\u003e10.3 Calling the Superclass Constructor 452\u003c\/p\u003e \u003cp\u003e10.4 Overriding Methods 455\u003c\/p\u003e \u003cp\u003eCE2 Forgetting to Use the super Function When Invoking a Superclass Method 458\u003c\/p\u003e \u003cp\u003e10.5 Polymorphism 458\u003c\/p\u003e \u003cp\u003eST2 Subclasses and Instances 461\u003c\/p\u003e \u003cp\u003eST3 Dynamic Method Lookup 461\u003c\/p\u003e \u003cp\u003eST4 Abstract Classes 462\u003c\/p\u003e \u003cp\u003eCE3 Don’t Use Type Tests 463\u003c\/p\u003e \u003cp\u003eHT1 Developing an Inheritance Hierarchy 463\u003c\/p\u003e \u003cp\u003eWE1 Implementing an Employee Hierarchy for Payroll Processing 468\u003c\/p\u003e \u003cp\u003e10.6 APPLICATION: A Geometric Shape Class Hierarchy 472\u003c\/p\u003e \u003cp\u003eThe Base Class 472\u003c\/p\u003e \u003cp\u003eBasic Shapes 474\u003c\/p\u003e \u003cp\u003eGroups of Shapes 477\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Game Programming 480\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Recursion 489\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Triangle Numbers Revisited 490\u003c\/p\u003e \u003cp\u003eCE1 Infinite Recursion 493\u003c\/p\u003e \u003cp\u003eST1 Recursion with Objects 493\u003c\/p\u003e \u003cp\u003e11.2 PROBLEM SOLVING: Thinking Recursively 494\u003c\/p\u003e \u003cp\u003eWE1 Finding Files 497\u003c\/p\u003e \u003cp\u003e11.3 Recursive Helper Functions 498\u003c\/p\u003e \u003cp\u003e11.4 The Efficiency of Recursion 499\u003c\/p\u003e \u003cp\u003e11.5 Permutations 504\u003c\/p\u003e \u003cp\u003eCS1 The Limits of Computation 506\u003c\/p\u003e \u003cp\u003e11.6 Backtracking 508\u003c\/p\u003e \u003cp\u003eWE2 Towers of Hanoi 512\u003c\/p\u003e \u003cp\u003e11.7 Mutual Recursion 515\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Analyzing Web Pages with Beautiful Soup 519\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Sorting and Searching 525\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Selection Sort 526\u003c\/p\u003e \u003cp\u003e12.2 Profiling the Selection Sort Algorithm 528\u003c\/p\u003e \u003cp\u003e12.3 Analyzing the Performance of the Selection Sort Algorithm 530\u003c\/p\u003e \u003cp\u003eST1 Oh, Omega, and Theta 531\u003c\/p\u003e \u003cp\u003eST2 Insertion Sort 532\u003c\/p\u003e \u003cp\u003e12.4 Merge Sort 534\u003c\/p\u003e \u003cp\u003e12.5 Analyzing the Merge Sort Algorithm 536\u003c\/p\u003e \u003cp\u003eST3 The Quicksort Algorithm 538\u003c\/p\u003e \u003cp\u003eCS1 The First Programmer 540\u003c\/p\u003e \u003cp\u003e12.6 Searching 541\u003c\/p\u003e \u003cp\u003eLinear Search 541\u003c\/p\u003e \u003cp\u003eBinary Search 542\u003c\/p\u003e \u003cp\u003e12.7 PROBLEM SOLVING: Estimating the Running Time of an Algorithm 544\u003c\/p\u003e \u003cp\u003eLinear Time 545\u003c\/p\u003e \u003cp\u003eQuadratic Time 546\u003c\/p\u003e \u003cp\u003eThe Triangle Pattern 547\u003c\/p\u003e \u003cp\u003eLogarithmic Time 548\u003c\/p\u003e \u003cp\u003ePT1 Searching and Sorting 549\u003c\/p\u003e \u003cp\u003eST4 Comparing Objects 549\u003c\/p\u003e \u003cp\u003eWE1 Enhancing the Insertion Sort Algorithm 549\u003c\/p\u003e \u003cp\u003eAppendix A Python Operator Summary A-1\u003c\/p\u003e \u003cp\u003eAppendix B Python Reserved Word Summary A-3\u003c\/p\u003e \u003cp\u003eAppendix C The Python Standard Library A-5\u003c\/p\u003e \u003cp\u003eAppendix D The Basic Latin and Latin-1 Subsets of Unicode A-22\u003c\/p\u003e \u003cp\u003eAppendix E Binary Numbers and Bit Operations*\u003c\/p\u003e \u003cp\u003eAppendix F HTML Summary*\u003c\/p\u003e \u003cp\u003eGlossary R-1\u003c\/p\u003e \u003cp\u003eIndex R-6\u003c\/p\u003e \u003cp\u003eCredits R-22\u003c\/p\u003e \u003cp\u003eQuick Reference R-23\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Computer science [\u003ca title=\"See our other books on Computer science\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Computer%20science%20%5BUY%5D%22\"\u003eUY\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wiley","offers":[{"title":"Brand New","offer_id":52460735627544,"sku":"9781119638292","price":46.59,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781119638292.jpg?v=1785460137","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/python-for-everyone-emea-edition-paperback-softback-9781119638292","provider":"Freshly Printed Books","version":"1.0","type":"link"}