PYTHON. p ykos vtawynivis. Second eciitiovl. CO Ve, WESLEY J. CHUN

Similar documents
Programming in Python 3

The Unified Modeling Language User Guide

Quality Code. Software Testing Principles, Practices, and Patterns. Stephen Vance. AAddison-Wesley

Fit for Developing Software

JAVASCRIPT FOR PROGRAMMERS

Framework Design Guidelines

PYTHON TRAINING COURSE CONTENT

Systems:;-'./'--'.; r. Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington

SQL Queries. for. Mere Mortals. Third Edition. A Hands-On Guide to Data Manipulation in SQL. John L. Viescas Michael J. Hernandez

Application Programming

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY

\ Smart Client 0" Deploymentwith v^ ClickOnce

IPHONE FOR PROGRAMMERS: AN APP-DRIVEN APPROACH

FUNDAMENTALS OF. Database S wctpmc. Shamkant B. Navathe College of Computing Georgia Institute of Technology. Addison-Wesley

Digital System Design with SystemVerilog

Essentials. Oracle Solaris Cluster. Tim Read. Upper Saddle River, NJ Boston Indianapolis San Francisco. Capetown Sydney Tokyo Singapore Mexico City

Cloud Computing and SOA Convergence in Your Enterprise

Developer's HTML5. Cookbook. AAddison-Wesley. Chuck Hudson. Tom Leadbetter. Upper Saddle River, NJ Boston Indianapolis San Francisco

Programming Wireless Devices with the Java 2 Platform, Micro Edition

DATA ABSTRACTION AND PROBLEM SOLVING WITH JAVA

ECLIPSE RICH CLIENT PLATFORM

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs

ECLIPSE MODELING PROJECT

CLASSIC DATA STRUCTURES IN JAVA

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON.

Programming. Principles and Practice Using C++ Bjarne Stroustrup. / Addison-Wesley. Second Edition

Refactoring HTML. Improving the Design of Existing Web Applications. Elliotte Rusty Harold. TT rvaddison-wesley

The Java Tutorial. A Short Course on the Basics. Raymond Gallardo. Sowmya Kannan. AAddison-Wesley. Sharon Biocca Zakhour.

ony Gaddis Haywood Community College STARTING OUT WITH PEARSON Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. AAddison-Wesley

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. .~Addison-Wesley

Xcode 6 Start to Finish

Rails AntiPatterns. Chad Pytel. Best Practice Ruby on Rails Refactoring. Tammer Saleh. AAddison-Wesley

Agile Principles, Patterns, and Practices in C#

Python Scripting for Computational Science

^l^s^^^^^^^^^^s^^^ ^.1^L^ gs *^gs (s^s^^^^s^^ ^S^^^^ls

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu

Database Concepts. David M. Kroenke UNIVERSITATSBIBLIOTHEK HANNOVER

Prelude to Programming

Visual C# Tony Gaddis. Haywood Community College STARTING OUT WITH. Piyali Sengupta. Third Edition. Global Edition contributions by.

Complete Python call :

Programming Guide. Aaftab Munshi Dan Ginsburg Dave Shreiner. TT r^addison-wesley

LATEX. Leslie Lamport. Digital Equipment Corporation. Illustrations by Duane Bibby. v ADDISON-WESLEY

Essentials of Database Management

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

Table of Contents. Preface... xxi

Core Java Volume Ii Advanced Features 10th Edition

Python Scripting for Computational Science

DB2 SQL Tuning Tips for z/os Developers

Elements Of Programming Interviews In Python The Insiders Guide

MariaDB Crash Course. A Addison-Wesley. Ben Forta. Upper Saddle River, NJ Boston. Indianapolis. Singapore Mexico City. Cape Town Sydney.

Objects First with Java

PROBLEM SOLVING USING JAVA WITH DATA STRUCTURES. A Multimedia Approach. Mark Guzdial and Barbara Ericson PEARSON. College of Computing

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python

Opengl Programming On Mac Os X Architecture Performance

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

Secure Coding in C and C++

Anany Levitin 3RD EDITION. Arup Kumar Bhattacharjee. mmmmm Analysis of Algorithms. Soumen Mukherjee. Introduction to TllG DCSISFI &

Virtualization from the Trenches

The Designer's Guide to VHDL Second Edition

A Document Preparation System. User's Guide and Reference Manual. Leslie Lamport

DATABASE SYSTEM CONCEPTS

Python The Definitive Guide To Learning Python Programming

Programming with POSIX Threads

Programming in Python Advanced

The Power of Events. An Introduction to Complex Event Processing in Distributed Enterprise Systems. David Luckham

GE PROBLEM SOVING AND PYTHON PROGRAMMING. Question Bank UNIT 1 - ALGORITHMIC PROBLEM SOLVING

Clean Code. A Handbook of Agile Software Craftsmanship. The Object Mentors: Robert С Martin

PeopleSoft PeopleTools Tips & Techniques

CHAPTER 1: INTRODUCING C# 3

Network Programming With Go Essential Skills For Using And Securing Networks

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Embedded Linux Primer, Second Edition

An Introduction to Parallel Programming

THE AVR MICROCONTROLLER AND EMBEDDED SYSTEMS. Using Assembly and С

Maya Python. for Games and Film. and the Maya Python API. A Complete Reference for Maya Python. Ryan Trowbridge. Adam Mechtley ELSEVIER

Welcome to Starting Out with Programming Logic and Design, Third Edition.

Eclipse Building Commercial-Quality Plug-ins Second Edition

An Introduction to Search Engines and Web Navigation

Introduction to Python

Introductory logic and sets for Computer scientists

Integrated Approach. Operating Systems COMPUTER SYSTEMS. LEAHY, Jr. Georgia Institute of Technology. Umakishore RAMACHANDRAN. William D.

Microsoft Visual Studio 2010

Effective Stl 50 Specific Ways To Improve Your Use Of The... Effective Stl: 50 Specific Ways To Improve The Use Of The...

Elements Of Programming Interviews In Java The Insiders Guide

FUNDAMENTALS OF SEVENTH EDITION

Eclipse Plug-ins. Third Edition

Introduction p. 1 Basic Programming Introduction p. 7 Introduction to Python p. 7 Why Use Python? p. 10 Main Technical Features p.

The Java EE 6 Tutorial

OpenGL. Shading Language. Third Edition

"Charting the Course... Java Programming Language. Course Summary

Practical C++ Programming

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

Real-Time Systems and Programming Languages

Microsoft. Microsoft Visual C# Step by Step. John Sharp

Beginning Perl. Third Edition. Apress. JAMES LEE with SIMON COZENS

CJT^jL rafting Cm ompiler

Logic and its Applications

CRYPTOGRAPHY AND NETWORK SECURITY

Transcription:

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