Introduction 1 About This Book 1 Foolish Assumptions 2 Icons Used in This Book 3 Beyond the Book 3 Where to Go from Here 4 Part 1: Getting Started with Python 5 Chapter 1: Talking to Your Computer 7 Understanding Why You Want to Talk to Your Computer 8 Knowing that an Application is a Form of Communication 9 Thinking about procedures you use daily 9 Writing procedures down 10 Seeing applications as being like any other procedure 11 Understanding that computers take things literally 11 Defining What an Application Is 11 Understanding that computers use a special language 12 Helping humans speak to the computer 12 Understanding Why Python Is So Cool 14 Unearthing the reasons for using Python 14 Deciding how you can personally benefit from Python 15 Discovering which organizations use Python 16 Finding useful Python applications 17 Comparing Python to other languages 18 Chapter 2: Getting Your Own Copy of Python 21 Downloading the Version You Need 21 Installing Python 24 Working with Windows 25 Working with the Mac 27 Working with Linux 28 Accessing Python on Your Machine 31 Using Windows 32 Using the Mac 34 Using Linux 35 Testing Your Installation 35 Chapter 3: Interacting with Python 37 Opening the Command Line 38 Starting Python 38 Using the command line to your advantage 39 Using Python environment variables to your advantage 41 Typing a Command 43 Telling the computer what to do 43 Telling the computer you're done 44 Seeing the result 44 Using Help 46 Getting into help mode 46 Asking for help 47 Leaving help mode 49 Obtaining help directly 50 Closing the Command Line 51 Chapter 4: Writing Your First Application 55 Understanding Why IDEs Are Important 56 Creating better code 56 Debugging functionality 56 Defining why notebooks are useful 57 Obtaining Your Copy of Anaconda 58 Obtaining Analytics Anaconda 58 Installing Anaconda on Linux 59 Installing Anaconda on MacOS 60 Installing Anaconda on Windows 61 Downloading the Datasets and Example Code 64 Using Jupyter Notebook 64 Defining the code repository 65 Creating the Application 71 Understanding cells 71 Adding documentation cells 74 Other cell content 75 Understanding the Use of Indentation 75 Adding Comments 77 Understanding comments 78 Using comments to leave yourself reminders 79 Using comments to keep code from executing 80 Closing Jupyter Notebook 80 Chapter 5: Working with Anaconda 83 Downloading Your Code 84 Working with Checkpoints 85 Defining the uses of checkpoints 85 Saving a checkpoint 86 Restoring a checkpoint 86 Manipulating Cells 86 Adding various cell types 87 Splitting and merging cells 87 Moving cells around 88 Running cells 88 Toggling outputs 90 Changing Jupyter Notebook's Appearance 90 Finding commands using the Command Palette 91 Working with line numbers 92 Using the Cell Toolbar features 93 Interacting with the Kernel 94 Obtaining Help 95 Using the Magic Functions 97 Viewing the Running Processes 99 Part 2: Talking the Talk 101 Chapter 6: Storing and Modifying Information 103 Storing Information 104 Seeing variables as storage boxes 104 Using the right box to store the data 104 Defining the Essential Python Data Types 105 Putting information into variables 105 Understanding the numeric types 106 Understanding Boolean values 110 Understanding strings 110 Working with Dates and Times 111 Chapter 7: Managing Information 113 Controlling How Python Views Data 114 Making comparisons 114 Understanding how computers make comparisons 115 Working with Operators 115 Defining the operators 116 Understanding operator precedence 122 Creating and Using Functions 123 Viewing functions as code packages 124 Understanding code reusability 124 Defining a function 125 Accessing functions 126 Sending information to functions 127 Returning information from functions 131 Comparing function output 132 Getting User Input 132 Chapter 8: Making Decisions 135 Making Simple Decisions by Using the if Statement 136 Understanding the if statement 136 Using the if statement in an application 137 Choosing Alternatives by Using the if. . .else Statement 141 Understanding the if. . .else statement 141 Using the if. . .else statement in an application 142 Using the if. . .elif statement in an application 143 Using Nested Decision Statements 146 Using multiple if or if. . .else statements 146 Combining other types of decisions 148 Chapter 9: Performing Repetitive Tasks 151 Processing Data Using the for Statement 152 Understanding the for statement 152 Creating a basic for loop 153 Controlling execution with the break statement 153 Controlling execution with the continue statement 156 Controlling execution with the pass clause 157 Controlling execution with the else statement 158 Processing Data by Using the while Statement 159 Understanding the while statement 160 Using the while statement in an application 161 Nesting Loop Statements 162 Chapter 10: Dealing with Errors 165 Knowing Why Python Doesn't Understand You 166 Considering the Sources of Errors 167 Classifying when errors occur 168 Distinguishing error types 169 Catching Exceptions 171 Basic exception handling 171 Handling more specific to less specific exceptions 183 Nested exception handling 185 Raising Exceptions 189 Raising exceptions during exceptional conditions 189 Passing error information to the caller 190 Creating and Using Custom Exceptions 191 Using the finally Clause 192 Part 3: Performing Common Tasks 195 Chapter 11: Interacting with Packages 197 Creating Code Groupings 198 Understanding the package types 200 Considering the package cache 201 Importing Packages 202 Using the import statement 203 Using the from. . .import statement 205 Finding Packages on Disk 207 Downloading Packages from Other Sources 209 Opening the Anaconda Prompt 210 Working with conda packages 210 Installing packages by using pip 215 Viewing the Package Content 216 Viewing Package Documentation 219 Opening the Pydoc application 219 Using the quick-access links 220 Typing a search term 221 Viewing the results 222 Chapter 12: Working with Strings 225 Understanding That Strings Are Different 226 Defining a character by using numbers 226 Using characters to create strings 227 Creating Stings with Special Characters 229 Selecting Individual Characters 231 Slicing and Dicing Strings 233 Locating a Value in a String 236 Formatting Strings 238 Chapter 13: Managing Lists 243 Organizing Information in an Application 244 Defining organization using lists 244 Understanding how computers view lists 245 Creating Lists 246 Accessing Lists 248 Looping through Lists 249 Modifying Lists 250 Searching Lists 254 Sorting Lists 255 Printing Lists 257 Working with the Counter Object 259 Chapter 14: Collecting All Sorts of Data 261 Understanding Collections 262 Working with Tuples 263 Working with Dictionaries 266 Creating and using a dictionary 267 Replacing the switch statement with a dictionary 270 Creating Stacks Using Lists 273 Working with queues 275 Working with deques 278 Chapter 15: Creating and Using Classes 281 Understanding the Class as a Packaging Method 282 Considering the Parts of a Class 284 Creating the class definition 284 Considering the built-in class attributes 285 Working with methods 286 Working with constructors 288 Working with variables 290 Using methods with variable argument lists 293 Overloading operators 294 Creating a Class 296 Defining the MyClass class 296 Saving a class to disk 297 Using the Class in an Application 298 Extending Classes to Make New Classes 299 Building the child class 299 Testing the class in an application 301 Part 4: Performing Advanced Tasks 303 Chapter 16: Storing Data in Files 305 Understanding How Permanent Storage Works 306 Creating Content for Permanent Storage 308 Creating a File 311 Reading File Content 314 Updating File Content 317 Deleting a File 321 Chapter 17: Sending an Email 323 Understanding What Happens When You Send Email 324 Viewing email as you do a letter 325 Defining the parts of the envelope 326 Defining the parts of the letter 331 Creating the Email Message 335 Working with a text message 335 Working with an HTML message 337 Seeing the Email Output 338 Part 5: The Part of Tens 341 Chapter 18: Ten Amazing Programming Resources 343 Working with the Python Documentation Online 344 Using the LearnPython.org Tutorial 345 Performing Web Programming by Using Python 346 Getting Additional Libraries 346 Creating Applications Faster by Using an IDE 348 Checking Your Syntax with Greater Ease 348 Using XML to Your Advantage 349 Getting Past the Common Python Newbie Errors 350 Understanding Unicode 351 Making Your Python Application Fast 352 Chapter 19: Ten Ways to Make a Living with Python 353 Working in QA 354 Becoming the IT Staff for a Smaller Organization 355 Performing Specialty Scripting for Applications 355 Administering a Network 356 Teaching Programming Skills 357 Helping People Decide on Location 357 Performing Data Mining 358 Interacting with Embedded Systems 358 Carrying Out Scientific Tasks 359 Performing Real-Time Analysis of Data 359 Chapter 20: Ten Tools That Enhance Your Python Experience 361 Tracking Bugs with Roundup Issue Tracker 362 Creating a Virtual Environment by Using VirtualEnv 363 Installing Your Application by Using PyInstaller 364 Building Developer Documentation by Using pdoc 365 Developing Application Code by Using Komodo Edit 366 Debugging Your Application by Using pydbgr 367 Entering an Interactive Environment by Using IPython 368 Testing Python Applications by Using PyUnit 368 Tidying Your Code by Using Isort 369 Providing Version Control by Using Mercurial 370 Chapter 21: Ten (Plus) Libraries You Need to Know About 371 Developing a Secure Environment by Using PyCrypto 372 Interacting with Databases by Using SQLAlchemy 372 Seeing the World by Using Google Maps 373 Adding a Graphical User Interface by Using TkInter 373 Providing a Nice Tabular Data Presentation by Using PrettyTable 374 Enhancing Your Application with Sound by Using PyAudio 374 Manipulating Images by Using PyQtGraph 375 Locating Your Information by Using IRLib 376 Creating an Interoperable Java Environment by Using JPype 377 Accessing Local Network Resources by Using Twisted Matrix 378 Accessing Internet Resources by Using Libraries 378 Index 379
John Paul Mueller is a freelance author and technical editor with more than 107 books and 600 articles to his credit. His subjects range from networking and artificial intelligence to database management and heads-down programming. He also consults and writes certification exams. Visit his website at http://www.johnmuellerbooks.com/.