Automate the Boring Stuff with Python

Practical Programming for Total Beginners

  • 4.2 (10 ratings)
  • 141 Want to read
  • 20 Currently reading
  • 15 Have read

My Reading Lists:

Create a new list


  • 4.2 (10 ratings)
  • 141 Want to read
  • 20 Currently reading
  • 15 Have read


Download Options

Buy this book

Last edited by MARC Bot
December 19, 2022 | History

Automate the Boring Stuff with Python

Practical Programming for Total Beginners

  • 4.2 (10 ratings)
  • 141 Want to read
  • 20 Currently reading
  • 15 Have read

If you've ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?
In Automate the Boring Stuff with Python, you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand—no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to:

  • Search for text in a file or across multiple files
  • Create, update, move, and rename files and folders
  • Search the Web and download online content
  • Update and format data in Excel spreadsheets of any size
  • Split, merge, watermark, and encrypt PDFs
  • Send reminder emails and text notifications
  • Fill out online forms

Step-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.
Don't spend your time doing work a well-trained monkey could do. Even if you've never written a line of code, you can make your computer do the grunt work. Learn how in Automate the Boring Stuff with Python. (Source)

Publish Date
Publisher
No Starch Press
Language
English
Pages
504

Buy this book

Previews available in: English

Edition Availability
Cover of: Automate the Boring Stuff with Python
Automate the Boring Stuff with Python: Practical Programming for Total Beginners
Nov 12, 2019, No Starch Press
paperback in English - 2nd Edition
Cover of: Python zi dong hua de le qu
Cover of: Routineaufgaben mit Python automatisieren
Routineaufgaben mit Python automatisieren: Praktische Programmierlösungen für Einsteiger
Jun 01, 2016, Dpunkt.Verlag GmbH
paperback
Cover of: Automate the Boring Stuff with Python
Automate the Boring Stuff with Python: Practical Programming for Total Beginners
2015, No Starch Press
Paperback, eBook in English

Add another edition?

Book Details


Table of Contents

Acknowledgments
Page xxiii
Introduction
Page 1
Whom Is This Book For?
Page 2
Conventions
Page 2
What Is Programming?
Page 3
What Is Python?
Page 4
Programmers Don't Need to Know Much Math
Page 4
Programming Is a Creative Activity
Page 5
About This Book
Page 5
Downloading and Installing Python
Page 6
Starting IDLE
Page 7
The Interactive Shell
Page 8
How to Find Help
Page 8
Asking Smart Programming Questions
Page 9
Summary
Page 10
Part I. Python Programming Basics
Page 11
1. Python Basics
Page 13
Entering Expressions into the Interactive Shell
Page 14
The Integer, Floating-Point, and String Data Types
Page 16
String Concatenation and Replication
Page 17
Storing Values in Variables
Page 18
Assignment Statements
Page 18
Variable Names
Page 20
Your First Program
Page 21
Dissecting Your Program
Page 22
Comments
Page 23
The print() Function
Page 23
The input() Function
Page 23
Printing the User's Name
Page 24
The len() Function
Page 24
The str(), int(), and float() Functions
Page 25
Summary
Page 28
Practice Questions
Page 28
2. Flow Control
Page 31
Boolean Values
Page 32
Comparison Operators
Page 33
Boolean Operators
Page 35
Binary Boolean Operators
Page 35
The not Operator
Page 36
Mixing Boolean and Comparison Operators
Page 36
Elements of Flow Control
Page 37
Conditions
Page 37
Blocks of Code
Page 37
Program Execution
Page 38
Flow Control Statements
Page 38
if Statements
Page 38
else Statements
Page 39
elif Statements
Page 40
while Loop Statements
Page 45
break Statements
Page 49
continue Statements
Page 50
for Loops and the range() Function
Page 53
Importing Modules
Page 57
from import Statements
Page 58
Ending a Program Early with sys.exit()
Page 58
Summary
Page 58
Practice Questions
Page 59
3. Functions
Page 61
def Statements with Parameters
Page 63
Return Values and return Statements
Page 63
The None Value
Page 65
Keyword Arguments and print()
Page 65
Local and Global Scope
Page 67
Local Variables Cannot Be Used in the Global Scope
Page 67
Local Scopes Cannot Use Variables in Other Local Scopes
Page 68
Global Variables Can Be Read from a Local Scope
Page 69
Local and Global Variables with the Same Name
Page 69
The global Statement
Page 70
Exception Handling
Page 72
A Short Program: Guess the Number
Page 74
Summary
Page 76
Practice Questions
Page 76
Practice Projects
Page 77
The Collatz Sequence
Page 77
Input Validation
Page 77
4. Lists
Page 79
The List Data Type
Page 80
Getting Individual Values in a List with Indexes
Page 80
Negative Indexes
Page 82
Getting Sublists with Slices
Page 82
Getting a List's Length with len()
Page 83
Changing Values in a List with Indexes
Page 83
List Concatenation and List Replication
Page 83
Removing Values from Lists with del Statements
Page 84
Working with Lists
Page 84
Using for Loops with Lists
Page 86
The in and not in Operators
Page 87
The Multiple Assignment Trick
Page 87
Augmented Assignment Operators
Page 88
Methods
Page 89
Finding a Value in a List with the index() Method
Page 89
Adding Values to Lists with the append() and insert() Methods
Page 89
Removing Values from Lists with remove()
Page 90
Sorting the Values in a List with the sort() Method
Page 91
Example Program: Magic 8 Ball with a List
Page 92
List-like Types: Strings and Tuples
Page 93
Mutable and Immutable Data Types
Page 94
The Tuple Data Type
Page 96
Converting Types with the list() and tuple() Functions
Page 97
References
Page 97
Passing References
Page 100
The copy Module's copy() and deepcopy() Functions
Page 100
Summary
Page 101
Practice Questions
Page 102
Practice Projects
Page 102
Comma Code
Page 102
Character Picture Grid
Page 103
5. Dictionaries and Structuring Data
Page 105
The Dictionary Data Type
Page 105
Dictionaries vs. Lists
Page 106
The keys(), values(), and items() Methods
Page 107
Checking Whether a Key or Value Exists in a Dictionary
Page 109
The get() Method
Page 109
The setdefault() Method
Page 110
Pretty Printing
Page 111
Using Data Structures to Model Real-World Things
Page 112
A Tic-Tac-Toe Board
Page 113
Nested Dictionaries and Lists
Page 117
Summary
Page 119
Practice Questions
Page 119
Practice Projects
Page 120
Fantasy Game Inventory
Page 120
List to Dictionary Function for Fantasy Game Inventory
Page 120
6. Manipulating Strings
Page 123
Working with Strings
Page 123
String Literals
Page 124
Indexing and Slicing Strings
Page 126
The in and not in Operators with Strings
Page 127
Useful String Methods
Page 127
The upper(), lower(), isupper(), and islower() String Methods
Page 128
The isX String Methods
Page 129
The startswith() and endswith() String Methods
Page 131
The join() and split() String Methods
Page 132
Justifying Text with rjust(), ljust(), and center()
Page 133
Removing Whitespace with strip(), rstrip(), and lstrip()
Page 134
Copying and Pasting Strings with the pyperclip Module
Page 135
Project. Password Locker
Page 136
Step 1: Program Design and Data Structures
Page 136
Step 2: Handle Command Line Arguments
Page 137
Step 3: Copy the Right Password
Page 137
Project. Adding Bullets to Wiki Markup
Page 139
Step 1: Copy and Paste from the Clipboard
Page 139
Step 2: Separate the Lines of Text and Add the Star
Page 140
Step 3: Join the Modified Lines
Page 141
Summary
Page 141
Practice Questions
Page 142
Practice Project
Page 142
Table Printer
Page 142
Part II. Automating Tasks
Page 145
7. Pattern Matching with Regular Expressions
Page 147
Finding Patterns of Text Without Regular Expressions
Page 148
Finding Patterns of Text with Regular Expressions
Page 150
Creating Regex Objects
Page 150
Matching Regex Objects
Page 151
Review of Regular Expression Matching
Page 152
More Pattern Matching with Regular Expressions
Page 152
Grouping with Parentheses
Page 152
Matching Multiple Groups with the Pipe
Page 153
Optional Matching with the Question Mark
Page 154
Matching Zero or More with the Star
Page 155
Matching One or More with the Plus
Page 155
Matching Specific Repetitions with Curly Brackets
Page 156
Greedy and Nongreedy Matching
Page 156
The findall() Method
Page 157
Character Classes
Page 158
Making Your Own Character Classes
Page 159
The Caret and Dollar Sign Characters
Page 159
The Wildcard Character
Page 160
Matching Everything with Dot-Star
Page 161
Matching Newlines with the Dot Character
Page 162
Review of Regex Symbols
Page 162
Case-Insensitive Matching
Page 163
Substituting Strings with the sub() Method
Page 163
Managing Complex Regexes
Page 164
Combining re.IGNORECASE, re.DOTALL, and re.VERBOSE
Page 164
Project: Phone Number and Email Address Extractor
Page 165
Step 1: Create a Regex for Phone Numbers
Page 166
Step 2: Create a Regex for Email Addresses
Page 166
Step 3: Find All Matches in the Clipboard Text
Page 167
Step 4: Join the Matches into a String for the Clipboard
Page 168
Running the Program
Page 169
Ideas for Similar Programs
Page 169
Summary
Page 169
Practice Questions
Page 170
Practice Projects
Page 171
Strong Password Detection
Page 171
Regex Version of strip()
Page 171
8. Reading and Writing Files
Page 173
Files and File Paths
Page 173
Backslash on Windows and Forward Slash on OS X and Linux
Page 174
The Current Working Directory
Page 175
Absolute vs. Relative Paths
Page 175
Creating New Folders with os.makedirs()
Page 176
The os.path Module
Page 177
Handling Absolute and Relative Paths
Page 177
Finding File Sizes and Folder Contents
Page 179
Checking Path Validity
Page 180
The File Reading/Writing Process
Page 180
Opening Files with the open() Function
Page 181
Reading the Contents of Files
Page 182
Writing to Files
Page 183
Saving Variables with the shelve Module
Page 184
Saving Variables with the pprint.pformat() Function
Page 185
Project: Generating Random Quiz Files
Page 186
Step 1: Store the Quiz Data in a Dictionary
Page 187
Step 2: Create the Quiz File and Shuffle the Question Order
Page 188
Step 3: Create the Answer Options
Page 189
Step 4: Write Content to the Quiz and Answer Key Files
Page 189
Project: Multiclipboard
Page 191
Step 1: Comments and Shelf Setup
Page 192
Step 2: Save Clipboard Content with a Keyword
Page 192
Step 3: List Keywords and Load a Keyword's Content
Page 193
Summary
Page 194
Practice Questions
Page 194
Practice Projects
Page 194
Extending the Multiclipboard
Page 194
Mad Libs
Page 195
Regex Search
Page 195
9. Organizing Files
Page 197
The shutil Module
Page 198
Copying Files and Folders
Page 198
Moving and Renaming Files and Folders
Page 199
Permanently Deleting Files and Folders
Page 200
Safe Deletes with the send2trash Module
Page 201
Walking a Directory Tree
Page 202
Compressing Files with the zipfile Module
Page 203
Reading ZIP Files
Page 204
Extracting from ZIP Files
Page 205
Creating and Adding to ZIP Files
Page 205
Project: Renaming Files with American-Style Dates to European-Style Dates
Page 206
Step 1: Create a Regex for American-Style Dates
Page 206
Step 2: Identify the Date Parts from the Filenames
Page 207
Step 3: Form the New Filename and Rename the Files
Page 209
Ideas for Similar Programs
Page 209
Project: Backing Up a Folder into a ZIP File
Page 209
Step 1: Figure Out the ZIP File's Name
Page 210
Step 2: Create the New ZIP File
Page 211
Step 3: Walk the Directory Tree and Add to the ZIP File
Page 211
Ideas for Similar Programs
Page 212
Summary
Page 212
Practice Questions
Page 213
Practice Projects
Page 213
Selective Copy
Page 213
Deleting Unneeded Files
Page 213
Filling in the Gaps
Page 214
10. Debugging
Page 215
Raising Exceptions
Page 216
Getting the Traceback as a String
Page 217
Assertions
Page 219
Using an Assertion in a Traffic Light Simulation
Page 219
Disabling Assertions
Page 221
Logging
Page 221
Using the logging Module
Page 221
Don't Debug with print()
Page 223
Logging Levels
Page 223
Disabling Logging
Page 224
Logging to a File
Page 225
IDLE's Debugger
Page 225
Go
Page 226
Step
Page 226
Over
Page 226
Out
Page 227
Quit
Page 227
Debugging a Number Adding Program
Page 227
Breakpoints
Page 229
Summary
Page 231
Practice Questions
Page 231
Practice Project
Page 232
Debugging Coin Toss
Page 232
11. Web Scraping
Page 233
Project: maplt.py with the webbrowser Module
Page 234
Step 1: Figure Out the URL
Page 234
Step 2: Handle the Command Line Arguments
Page 235
Step 3: Handle the Clipboard Content and Launch the Browser
Page 236
Ideas for Similar Programs
Page 236
Downloading Files from the Web with the requests Module
Page 237
Downloading a Web Page with the requests.get() Function
Page 237
Checking for Errors
Page 238
Saving Downloaded Files to the Hard Drive
Page 239
HTML
Page 240
Resources for Learning HTML
Page 240
A Quick Refresher
Page 240
Viewing the Source HTML of a Web Page
Page 241
Opening Your Browser's Developer Tools
Page 242
Using the Developer Tools to Find HTML Elements
Page 244
Parsing HTML with the BeautifulSoup Module
Page 245
Creating a BeautifulSoup Object from HTML
Page 245
Finding an Element with the select() Method
Page 246
Getting Data from an Element's Attributes
Page 248
Project: "I'm Feeling Lucky" Google Search
Page 248
Step 1: Get the Command Line Arguments and Request the Search Page
Page 249
Step 2: Find All the Results
Page 249
Step 3: Open Web Browsers for Each Result
Page 250
Ideas for Similar Programs
Page 251
Project: Downloading All XKCD Comics
Page 251
Step 1: Design the Program
Page 252
Step 2: Download the Web Page
Page 253
Step 3: Find and Download the Comic Image
Page 254
Step 4: Save the Image and Find the Previous Comic
Page 255
Ideas for Similar Programs
Page 256
Controlling the Browser with the selenium Module
Page 256
Starting a Selenium-Controlled Browser
Page 256
Finding Elements on the Page
Page 257
Clicking the Page
Page 259
Filling Out and Submitting Forms
Page 259
Sending Special Keys
Page 260
Clicking Browser Buttons
Page 261
More Information on Selenium
Page 261
Summary
Page 261
Practice Questions
Page 261
Practice Projects
Page 262
Command Line Emailer
Page 262
Image Site Downloader
Page 263
2048
Page 263
Link Verification
Page 263
12. Working with Excel Spreadsheets
Page 265
Excel Documents
Page 266
Installing the openpyxl Module
Page 266
Reading Excel Documents
Page 266
Opening Excel Documents with OpenPyXL
Page 267
Getting Sheets from the Workbook
Page 268
Getting Cells from the Sheets
Page 268
Converting Between Column Letters and Numbers
Page 270
Getting Rows and Columns from the Sheets
Page 270
Workbooks, Sheets, Cells
Page 272
Project: Reading Data from a Spreadsheet
Page 272
Step 1: Read the Spreadsheet Data
Page 273
Step 2: Populate the Data Structure
Page 274
Step 3: Write the Results to a File
Page 275
Ideas for Similar Programs
Page 276
Writing Excel Documents
Page 277
Creating and Saving Excel Documents
Page 277
Creating and Removing Sheets
Page 278
Writing Values to Cells
Page 278
Project: Updating a Spreadsheet
Page 279
Step 1: Set Up a Data Structure with the Update Information
Page 280
Step 2: Check All Rows and Update Incorrect Prices
Page 281
Ideas for Similar Programs
Page 281
Setting the Font Style of Cells
Page 282
Font Objects
Page 282
Formulas
Page 284
Adjusting Rows and Columns
Page 285
Setting Row Height and Column Width
Page 285
Merging and Unmerging Cells
Page 286
Freeze Panes
Page 287
Charts
Page 288
Summary
Page 290
Practice Questions
Page 291
Practice Projects
Page 291
Multiplication Table Maker
Page 291
Blank Row Inserter
Page 292
Spreadsheet Cell Inverter
Page 292
Text Files to Spreadsheet
Page 293
Spreadsheet to Text Files
Page 293
13. Working with PDF and Word Documents
Page 295
PDF Documents
Page 295
Extracting Text from PDFs
Page 296
Decrypting PDFs
Page 297
Creating PDFs
Page 298
Project: Combining Select Pages from Many PDFs
Page 303
Step 1: Find All PDF Files
Page 304
Step 2: Open Each PDF
Page 304
Step 3: Add Each Page
Page 305
Step 4: Save the Results
Page 305
Ideas for Similar Programs
Page 306
Word Documents
Page 306
Reading Word Documents
Page 307
Getting the Full Text from a .docx File
Page 308
Styling Paragraph and Run Objects
Page 309
Creating Word Documents with Nondefault Styles
Page 310
Run Attributes
Page 311
Writing Word Documents
Page 312
Adding Headings
Page 314
Adding Line and Page Breaks
Page 315
Adding Pictures
Page 315
Summary
Page 316
Practice Questions
Page 316
Practice Projects
Page 317
PDF Paranoia
Page 317
Custom Invitations as Word Documents
Page 317
Brute-Force PDF Password Breaker
Page 318
14. Working with CSV Files and JSON Data
Page 319
The csv Module
Page 320
Reader Objects
Page 321
Reading Data from Reader Objects in a for Loop
Page 322
Writer Objects
Page 322
The Delimiter and Lineterminator Keyword Arguments
Page 323
Project: Removing the Header from CSV Files
Page 324
Step 1: Loop Through Each CSV File
Page 325
Step 2: Read in the CSV File
Page 325
Step 3: Write Out the CSV File Without the First Row
Page 326
Ideas for Similar Programs
Page 327
JSON and APIs
Page 327
The json Module
Page 328
Reading JSON with the loads() Function
Page 328
Writing JSON with the dumps() Function
Page 329
Project: Fetching Current Weather Data
Page 329
Step 1: Get Location from the Command Line Argument
Page 330
Step 2: Download the JSON Data
Page 330
Step 3: Load JSON Data and Print Weather
Page 331
Ideas for Similar Programs
Page 332
Summary
Page 333
Practice Questions
Page 333
Practice Project
Page 333
Excel-to-CSV Converter
Page 333
15. Keeping Time, Scheduling Tasks, and Launching Programs
Page 335
The time Module
Page 336
The time.time() Function
Page 336
The time.sleep() Function
Page 337
Rounding Numbers
Page 338
Project: Super Stopwatch
Page 338
Step 1: Set Up the Program to Track Times
Page 339
Step 2: Track and Print Lap Times
Page 339
Ideas for Similar Programs
Page 340
The datetime Module
Page 341
The timedelta Data Type
Page 342
Pausing Until a Specific Date
Page 344
Converting Datetime Objects into Strings
Page 344
Converting Strings into Datetime Objects
Page 345
Review of Python's Time Functions
Page 346
Multithreading
Page 347
Passing Arguments to the Thread's Target Function
Page 348
Concurrency Issues
Page 349
Project: Multithreaded XKCD Downloader
Page 350
Step 1: Modify the Program to Use a Function
Page 350
Step 2: Create and Start Threads
Page 351
Step 3: Wait for All Threads to End
Page 352
Launching Other Programs from Python
Page 352
Passing Command Line Arguments to Popen()
Page 354
Task Scheduler, launchd, and cron
Page 354
Opening Websites with Python
Page 355
Running Other Python Scripts
Page 355
Opening Files with Default Applications
Page 355
Project: Simple Countdown Program
Page 357
Step 1: Count Down
Page 357
Step 2: Play the Sound File
Page 357
Ideas for Similar Programs
Page 358
Summary
Page 358
Practice Questions
Page 359
Practice Projects
Page 359
Prettified Stopwatch
Page 360
Scheduled Web Comic Downloader
Page 360
16. Sending Email and Text Messages
Page 361
SMTP
Page 362
Sending Email
Page 362
Connecting to an SMTP Server
Page 363
Sending the SMTP 'Hello' Message
Page 364
Starting TLS Encryption
Page 364
Logging in to the SMTP Server
Page 364
Sending an Email
Page 365
Disconnecting from the SMTP Server
Page 366
IMAP
Page 366
Retrieving and Deleting Emails with IMAP
Page 366
Connecting to an IMAP Server
Page 367
Logging in to the IMAP Server
Page 368
Searching for Email
Page 368
Fetching an Email and Marking It As Read
Page 372
Getting Email Addresses from a Raw Message
Page 373
Getting the Body from a Raw Message
Page 374
Deleting Emails
Page 375
Disconnecting from the IMAP Server
Page 375
Project: Sending Member Dues Reminder Emails
Page 376
Step 1: Open the Excel File
Page 376
Step 2: Find All Unpaid Members
Page 378
Step 3: Send Customized Email Reminders
Page 378
Sending Text Messages with Twilio
Page 380
Signing Up for a Twilio Account
Page 380
Sending Text Messages
Page 381
Project: "Just Text Me" Module
Page 383
Summary
Page 384
Practice Questions
Page 384
Practice Projects
Page 385
Random Chore Assignment Emailer
Page 385
Umbrella Reminder
Page 385
Auto Unsubscriber
Page 385
Controlling Your Computer Through Email
Page 386
17. Manipulating Images
Page 387
Computer Image Fundamentals
Page 388
Colors and RGBA Values
Page 388
Coordinates and Box Tuples
Page 389
Manipulating Images with Pillow
Page 390
Working with the Image Data Type
Page 392
Cropping Images
Page 393
Copying and Pasting Images onto Other Images
Page 394
Resizing an Image
Page 397
Rotating and Flipping Images
Page 398
Changing Individual Pixels
Page 400
Project: Adding a Logo
Page 401
Step 1: Open the Logo Image
Page 401
Step 2: Loop Over All Files and Open Images
Page 402
Step 3: Resize the Images
Page 403
Step 4: Add the Logo and Save the Changes
Page 404
Ideas for Similar Programs
Page 406
Drawing on Images
Page 406
Drawing Shapes
Page 406
Drawing Text
Page 408
Summary
Page 410
Practice Questions
Page 410
Practice Projects
Page 411
Extending and Fixing the Chapter Project Programs
Page 411
Identifying Photo Folders on the Hard Drive
Page 411
Custom Seating Cards
Page 412
18. Controlling the Keyboard and Mouse with GUI Automation
Page 413
Installing the PyAutoGUI Module
Page 414
Staying on Track
Page 414
Shutting Down Everything by Logging Out
Page 414
Pauses and Fail-Safes
Page 415
Controlling Mouse Movement
Page 415
Moving the Mouse
Page 416
Getting the Mouse Position
Page 417
Project: "Where Is the Mouse Right Now?"
Page 417
Step 1: Import the Module
Page 418
Step 2: Set Up the Quit Code and Infinite Loop
Page 418
Step 3: Get and Print the Mouse Coordinates
Page 418
Controlling Mouse Interaction
Page 419
Clicking the Mouse
Page 420
Dragging the Mouse
Page 420
Scrolling the Mouse
Page 422
Working with the Screen
Page 423
Getting a Screenshot
Page 423
Analyzing the Screenshot
Page 424
Project: Extending the mouseNow Program
Page 424
Image Recognition
Page 425
Controlling the Keyboard
Page 426
Sending a String from the Keyboard
Page 426
Key Names
Page 427
Pressing and Releasing the Keyboard
Page 428
Hotkey Combinations
Page 429
Review of the PyAutoGUI Functions
Page 430
Project: Automatic Form Filler
Page 430
Step 1: Figure Out the Steps
Page 432
Step 2: Set Up Coordinates
Page 432
Step 3: Start Typing Data
Page 434
Step 4: Handle Select Lists and Radio Buttons
Page 435
Step 5: Submit the Form and Wait
Page 436
Summary
Page 437
Practice Questions
Page 438
Practice Projects
Page 438
Looking Busy
Page 438
Instant Messenger Bot
Page 438
Game-Playing Bot Tutorial
Page 439
A. Installing Third-Party Modules
Page 441
The pip Tool
Page 441
Installing Third-Party Modules
Page 442
B. Running Programs
Page 443
Shebang Line
Page 443
Running Python Programs on Windows
Page 444
Running Python Programs on OS X and Linux
Page 445
Running Python Programs with Assertions Disabled
Page 445
C. Answers to the Practice Questions
Page 447
Chapter 1
Page 448
Chapter 2
Page 448
Chapter 3
Page 450
Chapter 4
Page 450
Chapter 5
Page 451
Chapter 6
Page 451
Chapter 7
Page 452
Chapter 8
Page 453
Chapter 9
Page 453
Chapter 10
Page 454
Chapter 11
Page 455
Chapter 12
Page 456
Chapter 13
Page 456
Chapter 14
Page 457
Chapter 15
Page 457
Chapter 16
Page 458
Chapter 17
Page 458
Chapter 18
Page 458
Index
Page 461

Edition Notes

Published in
San Francisco, USA
Copyright Date
2015

Classifications

Library of Congress
QA76.73.P98, QA76.73.P98 S94 2015

Contributors

Publisher
William Pollock
Production Editor
Laurel Chun
Cover Design
Josh Ellingson
Interior Design
Octopod Studios
Development Editor
Jennifer Griffith-Delgado
Development Editor
Greg Poulos
Development Editor
Leslie Shen
Technical Reviewer
Ari Lacenski
Copy Editor
Kim Wimpsett
Composition
Susan Glinert Stevens
Proofreader
Lisa Devoto Farrell

The Physical Object

Format
Paperback, eBook
Number of pages
504
Dimensions
9.1 x 7.0 x 1.2 inches

Edition Identifiers

Open Library
OL25763874M
Internet Archive
automatetheboringstuffwithpython_new
ISBN 10
1593275994
ISBN 13
9781593275990
LCCN
2014953114
OCLC/WorldCat
881657225

Work Identifiers

Work ID
OL17192141W

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

History

Download catalog record: RDF / JSON
December 19, 2022 Edited by MARC Bot import existing book
September 21, 2021 Edited by ImportBot import existing book
September 13, 2021 Edited by ImportBot import existing book
September 6, 2021 Edited by Jenner Merge works
August 30, 2015 Created by Ludovicus Added new book.