{"product_id":"python-for-everyone-isbn-9781119739951","title":"Python For Everyone","description":"\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 \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\u003eCS 1 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\u003ePT 1 Interactive Mode 8\u003c\/p\u003e \u003cp\u003ePT 2 Backup Copies 9\u003c\/p\u003e \u003cp\u003eST 1 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\u003eCE 1 Misspelling Words 14\u003c\/p\u003e \u003cp\u003e1.7 PROBLEM SOLVING: Algorithm Design 15\u003c\/p\u003e \u003cp\u003eCS 2 Data Is Everywhere 17\u003c\/p\u003e \u003cp\u003eHT 1 Describing an Algorithm with Pseudocode 18\u003c\/p\u003e \u003cp\u003eWE 1 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\u003eCE 1 Using Undefined Variables 30\u003c\/p\u003e \u003cp\u003ePT 1 Choose Descriptive Variable Names 30\u003c\/p\u003e \u003cp\u003ePT 2 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\u003eCE 2 Roundoff Errors 36\u003c\/p\u003e \u003cp\u003eCE 3 Unbalanced Parentheses 37\u003c\/p\u003e \u003cp\u003ePT 3 Use Spaces in Expressions 37\u003c\/p\u003e \u003cp\u003eST 1 Other Ways to Import Modules 38\u003c\/p\u003e \u003cp\u003eST 2 Combining Assignment and Arithmetic 38\u003c\/p\u003e \u003cp\u003eST 3 Line Joining 38\u003c\/p\u003e \u003cp\u003e2.3 PROBLEM SOLVING: First Do It By Hand 39\u003c\/p\u003e \u003cp\u003eWE 1 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\u003eST 4 Character Values 46\u003c\/p\u003e \u003cp\u003eST 5 Escape Sequences 47\u003c\/p\u003e \u003cp\u003eCS 1 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\u003ePT 4 Don’t Wait to Convert 53\u003c\/p\u003e \u003cp\u003eHT 1 Writing Simple Programs 53\u003c\/p\u003e \u003cp\u003eWE 2 Computing the Cost of Stamps 56\u003c\/p\u003e \u003cp\u003eCS 2 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\u003eHT 2 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\u003eCE 1 Tabs 77\u003c\/p\u003e \u003cp\u003ePT 1 Avoid Duplication in Branches 78\u003c\/p\u003e \u003cp\u003eST 1 Conditional Expressions 78\u003c\/p\u003e \u003cp\u003e3.2 Relational Operators 79\u003c\/p\u003e \u003cp\u003eCE 2 Exact Comparison of Floating-Point Numbers 82\u003c\/p\u003e \u003cp\u003eST 2 Lexicographic Ordering of Strings 82\u003c\/p\u003e \u003cp\u003eHT 1 Implementing an if Statement 83\u003c\/p\u003e \u003cp\u003eWE 1 Extracting the Middle 85\u003c\/p\u003e \u003cp\u003e3.3 Nested Branches 87\u003c\/p\u003e \u003cp\u003ePT 2 Hand-Tracing 89\u003c\/p\u003e \u003cp\u003eCS 1 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\u003ePT 3 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\u003eCE 3 Confusing and and or Conditions 104\u003c\/p\u003e \u003cp\u003ePT 4 Readability 104\u003c\/p\u003e \u003cp\u003eST 3 Chaining Relational Operators 105\u003c\/p\u003e \u003cp\u003eST 4 Short-Circuit Evaluation of Boolean Operators 105\u003c\/p\u003e \u003cp\u003eST 5 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\u003eST 6 Terminating a Program 112\u003c\/p\u003e \u003cp\u003eST 7 Interactive Graphical Programs 112\u003c\/p\u003e \u003cp\u003eCS 2 Artificial Intelligence 113\u003c\/p\u003e \u003cp\u003eWE 2 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\u003eCE 1 Don’t Think “Are We There Yet?” 130\u003c\/p\u003e \u003cp\u003eCE 2 Infinite Loops 130\u003c\/p\u003e \u003cp\u003eCE 3 Off-by-One Errors 131\u003c\/p\u003e \u003cp\u003eST 1 Special Form of the print Function 132\u003c\/p\u003e \u003cp\u003eCS 1 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\u003eST 2 Processing Sentinel Values with a Boolean Variable 138\u003c\/p\u003e \u003cp\u003eST 3 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\u003ePT 1 Count Iterations 148\u003c\/p\u003e \u003cp\u003eHT 1 Writing a Loop 149\u003c\/p\u003e \u003cp\u003e4.7 Nested Loops 152\u003c\/p\u003e \u003cp\u003eWE 1 Average Exam Grades 155\u003c\/p\u003e \u003cp\u003eWE 2 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\u003eWE 3 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\u003eCS 2 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\u003ePT 1 Function Comments 189\u003c\/p\u003e \u003cp\u003ePT 2 Naming Functions 190\u003c\/p\u003e \u003cp\u003e5.3 Parameter Passing 190\u003c\/p\u003e \u003cp\u003ePT 3 Do Not Modify Parameter Variables 191\u003c\/p\u003e \u003cp\u003eCE 1 Trying to Modify Arguments 192\u003c\/p\u003e \u003cp\u003e5.4 Return Values 192\u003c\/p\u003e \u003cp\u003eST 1 Using Single-Line Compound Statements 193\u003c\/p\u003e \u003cp\u003eHT 1 Implementing a Function 194\u003c\/p\u003e \u003cp\u003eWE 1 Generating Random Passwords 196\u003c\/p\u003e \u003cp\u003e5.5 Functions Without Return Values 201\u003c\/p\u003e \u003cp\u003eCS 1 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\u003ePT 4 Keep Functions Short 209\u003c\/p\u003e \u003cp\u003ePT 5 Tracing Functions 210\u003c\/p\u003e \u003cp\u003ePT 6 Stubs 211\u003c\/p\u003e \u003cp\u003eWE 2 Calculating a Course Grade 211\u003c\/p\u003e \u003cp\u003eWE 3 Using a Debugger 214\u003c\/p\u003e \u003cp\u003e5.8 Variable Scope 219\u003c\/p\u003e \u003cp\u003ePT 7 Avoid Global Variables 221\u003c\/p\u003e \u003cp\u003eWE 4 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\u003eWE 5 Plotting Growth or Decay 230\u003c\/p\u003e \u003cp\u003e5.10 Recursive Functions (Optional) 232\u003c\/p\u003e \u003cp\u003eHT 2 Thinking Recursively 234\u003c\/p\u003e \u003cp\u003eTOOLBOX 1 Turtle Graphics 236\u003c\/p\u003e \u003cp\u003eLISTS 245\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\u003eCE 1 Out-of-Range Errors 250\u003c\/p\u003e \u003cp\u003ePT 1 Use Lists for Sequences of Related Items 250\u003c\/p\u003e \u003cp\u003eST 1 Negative Subscripts 250\u003c\/p\u003e \u003cp\u003eST 2 Common Container Functions 251\u003c\/p\u003e \u003cp\u003eCS 1 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\u003eST 3 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\u003eWE 1 Plotting Trigonometric Functions 265\u003c\/p\u003e \u003cp\u003e6.4 Using Lists with Functions 268\u003c\/p\u003e \u003cp\u003eST 4 Call by Value and Call by Reference 271\u003c\/p\u003e \u003cp\u003eST 5 Tuples 271\u003c\/p\u003e \u003cp\u003eST 6 Functions with a Variable Number of Arguments 272\u003c\/p\u003e \u003cp\u003eST 7 Tuple Assignment 272\u003c\/p\u003e \u003cp\u003eST 8 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\u003eHT 1 Working with Lists 276\u003c\/p\u003e \u003cp\u003eWE 2 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\u003eWE 3 A World Population Table 290\u003c\/p\u003e \u003cp\u003eST 9 Tables with Variable Row Lengths 292\u003c\/p\u003e \u003cp\u003eWE 4 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\u003eCE 1 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\u003eST 1 Reading the Entire File 312\u003c\/p\u003e \u003cp\u003eST 2 Regular Expressions 312\u003c\/p\u003e \u003cp\u003eST 3 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\u003eHT 1 Processing Text Files 319\u003c\/p\u003e \u003cp\u003eWE 1 Analyzing Baby Names 322\u003c\/p\u003e \u003cp\u003eTOOLBOX 2 Working with Files and Directories 325\u003c\/p\u003e \u003cp\u003eCS 1 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\u003eWE 2 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\u003ePT 1 Raise Early, Handle Late 342\u003c\/p\u003e \u003cp\u003ePT 2 Do Not Use except and finally in the Same try Statement 342\u003c\/p\u003e \u003cp\u003eST 4 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\u003eWE 3 Creating a Bubble Chart 352\u003c\/p\u003e \u003cp\u003eCS 2 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\u003eWE 1 Counting Unique Words 364\u003c\/p\u003e \u003cp\u003ePT 1 Use Python Sets, Not Lists, for Efficient Set\u003c\/p\u003e \u003cp\u003eOperations 366\u003c\/p\u003e \u003cp\u003eST 1 Hashing 367\u003c\/p\u003e \u003cp\u003eCS 1 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\u003eST 2 Iterating over Dictionary Items 374\u003c\/p\u003e \u003cp\u003eST 3 Storing Data Records 375\u003c\/p\u003e \u003cp\u003eWE 2 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\u003eST 4 User Modules 383\u003c\/p\u003e \u003cp\u003eWE 3 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\u003ePT 1 Make All Instance Variables Private, Most Methods Public 402\u003c\/p\u003e \u003cp\u003e9.5 Constructors 402\u003c\/p\u003e \u003cp\u003eCE 1 Trying to Call a Constructor 404\u003c\/p\u003e \u003cp\u003eST 1 Default and Named Arguments 404\u003c\/p\u003e \u003cp\u003e9.6 Implementing Methods 405\u003c\/p\u003e \u003cp\u003ePT 2 Define Instance Variables Only in the Constructor 407\u003c\/p\u003e \u003cp\u003eST 2 Class Variables 408\u003c\/p\u003e \u003cp\u003e9.7 Testing a Class 409\u003c\/p\u003e \u003cp\u003eHT 1 Implementing a Class 410\u003c\/p\u003e \u003cp\u003eWE 1 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\u003eCS 1 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\u003eST 3 Object Types and Instances 435\u003c\/p\u003e \u003cp\u003eWE 2 GRAPHICS: A Die Class 436\u003c\/p\u003e \u003cp\u003eCS 2 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\u003ePT 1 Use a Single Class for Variation in Values, Inheritance for Variation in Behavior 447\u003c\/p\u003e \u003cp\u003eST 1 The Cosmic Superclass: object 447\u003c\/p\u003e \u003cp\u003e10.2 Implementing Subclasses 449\u003c\/p\u003e \u003cp\u003eCE 1 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\u003eCE 2 Forgetting to Use the super Function When Invoking a Superclass Method 458\u003c\/p\u003e \u003cp\u003e10.5 Polymorphism 458\u003c\/p\u003e \u003cp\u003eST 2 Subclasses and Instances 461\u003c\/p\u003e \u003cp\u003eST 3 Dynamic Method Lookup 461\u003c\/p\u003e \u003cp\u003eST 4 Abstract Classes 462\u003c\/p\u003e \u003cp\u003eCE 3 Don’t Use Type Tests 463\u003c\/p\u003e \u003cp\u003eHT 1 Developing an Inheritance Hierarchy 463\u003c\/p\u003e \u003cp\u003eWE 1 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\u003eCE 1 Infinite Recursion 493\u003c\/p\u003e \u003cp\u003eST 1 Recursion with Objects 493\u003c\/p\u003e \u003cp\u003e11.2 PROBLEM SOLVING: Thinking Recursively 494\u003c\/p\u003e \u003cp\u003eWE 1 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\u003eCS 1 The Limits of Computation 506\u003c\/p\u003e \u003cp\u003e11.6 Backtracking 508\u003c\/p\u003e \u003cp\u003eWE 2 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\u003eST 1 Oh, Omega, and Theta 531\u003c\/p\u003e \u003cp\u003eST 2 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\u003eST 3 The Quicksort Algorithm 538\u003c\/p\u003e \u003cp\u003eCS 1 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\u003ePT 1 Searching and Sorting 549\u003c\/p\u003e \u003cp\u003eST 4 Comparing Objects 549\u003c\/p\u003e \u003cp\u003eWE 1 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","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989892415717,"sku":"NP9781119739951","price":111.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781119739951.jpg?v=1761785817","url":"https:\/\/k12savings.com\/products\/python-for-everyone-isbn-9781119739951","provider":"K12savings","version":"1.0","type":"link"}