CO Ve, PYTHON p ykos vtawynivis Second eciitiovl WESLEY J. CHUN. PRENTICE HALL Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City
/rrp_ ir Preface Acknowledgments PART 1: CORE PYTHON 2 I WELCOME TO PYTHON! 4 1.1 What Is Python? 5 1.2 Origins 6 1.3 Features 6 1.4 Downloading and Installing Python 1.5 Running Python I3 1.6 Python Documentation 22 1.7 Comparing Python 23
2.19 Modules 52 Contents 1.8 Other Implementations 26 1.9 Exercises 27 2 GETTING STARTED 30 2.1 Program Output, the print Statement, and "Hello World!" 32 2.2 Program Input and the raw_input ( ) Built-in Function 33 2.3 Comments 35 2.4 Operators 35 2.5 Variables and Assignment 37 2.6 Numbers 37 2.7 Strings 39 2.8 Lists and Tuples 40 2.9 Dictionaries 40 2.10 Code Blocks Use Indentation 41 2.11 if Statement 41 2.12 while Loop 42 2.13 for Loop and the range ( ) Built-in Function 43 2.14 List Comprehensions 45 2.15 Files and the open ( ) and file () Built-in Functions 46 2.16 Errors and Exceptions 47 2.17 Functions 48 2.18 Classes 50
Contents 2.20 Useful Functions 54 2.21 Exercises 55 3 PYTHON BASICS 60 3.1 Statements and Syntax 61 3.2 Variable Assignment 64 3.3 Identifiers 67 3.4 Basic Style Guidelines 69 3.5 Memory Management 75 3.6 First Python Programs 79 3.7 Related Modules/Developer Tools 84 3.8 Exercises 85 4 PYTHON OBJECTS 88 4.1 Python Objects 89 4.2 Other Built-in Types 91 4.3 Internat Types 93 4.4 Standard Type Operators 96 4.5 Standard Type Built-in Functions 101 4.6 Categorizing the Standard Types I 11 4.7 Unsupported Types 116 4.8 Exercises 117 NUMBERS 120 5.1 Introduction to Numbers 121 5.2 Integers 122
xii Contents 5.3 Double Precision Floating Point Numbers 125 5.4 Complex Numbers 126 5.5 Operators 127 5.6 Built-in and Factory Functions I36 5.7 Other Numeric Types 145 5.8 Related Modules I48 5.9 Exercises 151 6 SEQUENCES: STRINGS, LISTS, AND TUPLES 156 6.1 Sequences I58 6.2 Strings 168 6.3 Strings and Operators 170 6.4 String-Only Operators I78 6.5 Built-in Functions 184 6.6 String Built-in Methods I88 6.7 Special Features of Strings 192 6.8 Unicode I97 6.9 Related Modules 206 6.10 Summary of String Highlights 208 6.11 Lists 209 6. I 2 Operators 211 6.13 Built-in Functions 216 6.14 List Type Built-in Methods 220 6.15 Special Features of Lists 224
Contents xiii 6.17 Tuple Operators and Built-in Functions 233 6.18 Special Features of Tuples 235 6.19 Related Modules 239 6.20 *Copying Python Objects and Shallow and Deep Copies 240 6.21 Summary of Sequences 243 6.22 Exercises 246 7 MAPPING AND SET TYPES 252 7.1 Mapping Type: Dictionaries 253 7.2 Mapping Type Operators 258 7.3 Mapping Type Built-in and Factory Functions 260 7.4 Mapping Type Built-in Methods 265 7.5 Dictionary Keys 268 7.6 Set Types 273 7.7 Set Type Operators 276 7.8 Built-in Functions 280 7.9 Set Type Built-in Methods 28I 7.10 Operator, Function/Method Summary Table for Set Types 283 7.11 Related Modules 283 7.12 Exercises 285 8 CONDITIONALS AND LOOPS 290 8.1 if Statement 291
xiv Contents 8.3 elif (aka else if) Statement 294 8.4 Conditional Expressions (aka "the Ternary Operator") 295 8.5 while Statement 296 8.6 for Statement 298 8.7 break Statement 304 8.8 continue Statement 305 8.9 pass Statement 306 8.10 eise Statement... Take Two 307 8.1 I Iterators and the iter () Function 309 8. 12 List Comprehensions 313 8.13 Generator Expressions 315 8.14 Related Modules 320 8.15 Exercises 320 9 FILES AND INPUT/OUTPUT 324 9.1 File Objects 325 9.2 File Built-in Functions [open ( ) and Eile 01 326 9.3 File Built-in Methods 329 9.4 File Built-in Attributes 336 9.5 Standard Files 337 9.6 Command-Line Arguments 338 9.7 File System 339 9.8 File Execution 348 9.9 Persistent Storage Modules 348
Contents xv 9.10 Related Modules 351 9.1I Exercises 353 10 ERRORS AND EXCEPTIONS 358 10.1 What Are Exceptions? 360 10.2 Exceptions in Python 361 10.3 Detecting and Handling Exceptions 364 10.4 Context Management 382 10.5 *Exceptions as Strings 386 10.6 Raising Exceptions 386 10.7 Assertions 389 10.8 Standard Exceptions 391 10.9 *Creating Exceptions 394 10.10 Why Exceptions (Now)? 401 10.11 Why Exceptions at All? 402 10.12 Exceptions and the sys Module 403 10.13 Related Modules 404 10.14 Exercises 405 I I FUNCTIONS AND FUNCTIONAL PROGRAMMING 408 11.1 What Are Functions? 409 11.2 Calling Functions 412 11.3 Creating Functions 418 11.4 Passing Functions 426
xvi Contents 11.5 Formal Arguments 428 11.6 Variable-Length Arguments 433 11.7 Functional Programming 439 11.8 Variable Scope 453 11.9 *Recursion 466 11.10 Generators 467 11.11 Exercises 471 12 MODULES 476 12.1 What Are Modules? 477 12.2 Modules and Files 478 12.3 Namespaces 480 12.4 Importing Modules 484 12.5 Features of Module Import 486 12.6 Module Built-in Functions 491 12.7 Packages 493 12.8 Other Features of Modules 496 12.9 Related Modules 500 I2.10 Exercises 501 13 OBJECT-ORIENTED PROGRAMMING 504 13.1 Introduction 506 13.2 Object-Oriented Programming 514 13.3 Classes 518 13.4 Class Attributes 520
Contents xvii 13.5 Instances 526 13.6 Instance Attributes 531 13.7 Binding and Method Invocation 540 13.8 Static Methods and Class Methods 542 13.9 Composition 544 13.10 Subclassing and Derivation 545 13.11 Inheritance 547 13.12 Built-in Functions for Classes, Instances, and Other Objects 558 13.13 Customizing Classes with Special Methods 564 13.14 Privacy 585 13.15. *Delegation 587 13.16 Advanced Features of New-Style Classes (Python 2.2+) 595 13.17 Related Modules and Documentation 615 13.18 Exercises 618 14 EXECUTION ENVIRONMENT 626 14.1 Callable Objects 628 14.2 Code Objects 635 14.3 Executable Object Statements and Built-in Functions 636 14.4 Executing Other (Python) Programs 649 14.5 Executing Other (Non-Python) Programs 653 14.6 Restricted Execution 663 14.7 Terminating Execution 663 14.8 Miscellaneous Operating System Interface 666
xviii Contents 14.9 Related Modules 668 14.10 Exercises 668 PART I I : ADVANCED TOPICS 670 15 REGULAR EXPRESSIONS 672 15.1 Introduction/Motivation 673 15.2 Special Symbols and Characters 676 15.3 REs and Python 683 15.4 Regular Expressions Example 698 15.5 Exercises 705 16 NETWORK PROGRAMMING 710 16.1 Introduction 711 16.2 Sockets: Communication Endpoints 715 16.3 Network Programming in Python 718 16.4 *SocketServer Module 732 16.5 *Introduction to the Twisted Framework 737 16.6 Related Modules 741 16.7 Exercises 742 17 INTERNET CLIENT PROGRAMMING 746 17.1 What Are Internet Clients? 747 17.2 Transferring Files 748 17.3 Network News 756
Contents xix 17.4 Electronic Mail 766 17.5 Related Modules 778 17.6 Exercises 779 18 MULTITHREADED PROGRAMMING 786 18.1 Introduction/Motivation 787 18.2 Threads and Processes 789 18.3 Python, Threads, and the Global Interpreter Lock 790 18.4 thread Module 795 18.5 threading Module 800 18.6 Related Modules 814 18.7 Exercises 814 19 GUI PROGRAMMING 818 19.1 Introduction 819 19.2 Tkinter and Python Programming 821 19.3 Tkinter Examples 826 19.4 Brief Tour of Other GUIs 840 19.5 Related Modules and Other GUIs 848 19.6 Exercises 85I 20 WEB PROGRAMMING 854 20.1 Introduction 855 20.2 Web Surfing with Python: Creating Simple Web Clients 859
)0: Contents 20.3 Advanced Web Clients 869 20.4 CGI: Helping Web Servers Process Client Data 875 20.5 Building CGI Applications 878 20.6 Using Unicode with CGI 892 20.7 Advanced CGI 894 20.8 Web (HTTP) Servers 906 20.9 Related Modules 909 20.10 Exercises 913 21 DATABASE PROGRAMMING 918 21.1 I ntrod uction 919 21.2 Python Database Application Programmer's Interface (DB-API) 924 21.3 Object-Relational Managers (ORMs) 946 21.4 Related Modules 958 21.5 Exercises 960 22 EXTENDING PYTHON 962 22.1 Introduction/Motivation 963 22.2 Extending Python by Writing Extensions 965 22.3 Related Topics 981 22.4 Exercises 982 23 MISCELLANEOUS 984 23.1 Web Services 985 23.2 Programming Microsoft Office with Win32 COM 989
Contents xxi 23.3 Python and Java Programming with Jython 1002 23.4 Exercises 1006 Appendix A Answers to Selected Exercises 1011 Appendix B Reference Tables 1021 Index 1049