Home > Store

Core Python Programming

Register your product to gain access to bonus material or receive a coupon.

Core Python Programming

Book

  • Sorry, this book is no longer in print.
Not for Sale

Description

  • Copyright 2001
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-026036-3
  • ISBN-13: 978-0-13-026036-9

  • New to Python? This is the developer's guide to Python development!
  • Learn the core features of Python as well as advanced topics such as regular expressions, multithreaded programming, Web/Internet and network development, GUI development with Tk(inter) and more
  • Also includes features found in the new Python 1.6 and 2.0 releases
  • CD-ROM: Complete Python distributions (source code, documentation, and various binaries) plus all example scripts in the book

Python is an Internet and systems programming language that is soaring in popularity in today's fast-paced software development environment, and no wonder: it's simple (yet robust), object-oriented (yet can be used as a procedural language), extensible, scalable and features an easy to learn syntax that is clear and concise. Python combines the power of a compiled object language like Java and C++ with the ease of use and rapid development time of a scripting language. In fact, it's syntax is so easy to understand that you are more likely to pick it up faster than any of the other popular scripting languages in use today!

In Core Python Programming, Internet software engineer and technical trainer Wesley Chun provides intermediate and experienced developers all they need to know to learn Python-fast. Like all Core Series books, Core Python Programming delivers hundreds of industrial-strength code snippets and examples, all targeted at professional developers who want to leverage their existing skills! In particular, Core Python Programming presents numerous interactive examples that can be entered into the Python interpreter right in front of you! Finally, we present a chapter that shows you step-by-step how to extend Python using C or C++.

  • Python syntax and style
  • Development and Run-time Environments
  • Objects and Python memory management
  • Standard data types, methods, and operators
  • Loops and conditionals
  • Files and Input/Output
  • Exceptions and error handling
  • Functions, scope, arguments, and functional programming
  • Importing modules and module attributes
  • Object-oriented Programming with classes, methods, and instances
  • Callable Objects
  • Extending Python

Coverage of the Python standard module library and client-server application development includes comprehensive introductions to the following topics in Python programming:

  • Regular expressions
  • TCP/IP and UDP/IP Network programming using sockets
  • Operating system interface
  • GUI development with Tk using Tkinter
  • Multithreaded programming
  • Interactive Web/CGI/Internet applications
  • Executing code in a restricted environment
  • Inheritance, type emulation, operator overloading, and delegation in an OOP environment

Finally, we provide an introduction to the new features introduced in Python 1.6. These include Unicode string support, the new function invocation syntax which lets the caller provide a tuple of positional arguments and/or a dictionary of keyword arguments, and the new string methods. We also provide a glimpse into features that will only be found in the newer 2.0 release.

Every Core Series book:

  • DEMONSTRATES how to write commercial-quality code
  • FEATURES dozens of programs and examples!
  • FOCUSES on the features and functions most important to real developers
  • PROVIDES objective, unbiased coverage of cutting-edge technologies-no
  • hype!

Core Python Programming delivers:

  • Coverage of the core parts of the Python language
  • Real-world insights for developing Web/Internet, network, multithreaded and GUI applications
  • Tables and charts detailing Python modules, built-in functions, operators, and attributes
  • Code snippets to try live with Python's interactive interpreter, hammering the concepts home
  • Extensive code examples-including several complete sample applications

CD-ROM includes complete Python source code and documentation distributions for Unix/Linux along with binaries for Windows and Macintosh platforms plus source code for all examples in the book.

Sample Content

Downloadable Sample Chapter

Click here for a sample chapter for this book: 0130260363.pdf

Table of Contents

I. CORE PYTHON.

1. WELCOME TO PYTHON!

What Is Python? History of Python. Features of Python. Obtaining Python. Obtaining Python. Installing Python. Running Python. Python Documentation. Comparing Python. JPython and Some Nomenclature. Exercises.

2. GETTING STARTED.

Program Output, the print Statement, and "Hello World!" Program Input and the raw_input() Built-in Function. Comments. Operators. Variables and Assignment. Numbers. Strings. Lists and Tuples. Dictionaries. Code Blocks Use Indentation. if Statement. while Loop. for Loop and the range() Built-in Function. Files and the open() Built-in Function. Errors and Exceptions. Functions. Classes. Modules. Exercises.

3. SYNTAX AND STYLE.

Statements and Syntax. Variable Assignment. Identifiers. Basic Style Guidelines. Memory Management. First Python Application. Exercises.

4. PYTHON OBJECTS.

Python Objects. Standard Types. Other Built-in Types. Internal Types. Standard Type Operators. Standard Type Built-in Functions. Categorizing the Standard Types. Unsupported Types. Exercises.

5. NUMBERS.

Introduction to Numbers. Integers. Floating Point Real Numbers. Complex Numbers. Operators. Built-in Functions. Related Modules. Exercises.

6. SEQUENCES: STRINGS, LISTS, AND TUPLES.

Sequences. Strings. Strings and Operators. String-only Operators. Built-in Functions. String Built-in Methods. Special Features of Strings. Related Modules. Summary of String Highlights. Lists. Operators. Built-in Functions. List Type Built-in Methods. Special Features of Lists. Tuples. Tuple Operators and Built-in Functions. Special Features of Tuples. Related Modules. *Shallow and Deep Copies. Exercises.

7. DICTIONARIES.

Introduction to Dictionaries. Operators. Built-in Functions. Built-in Methods. Dictionary Keys. Exercises.

8. CONDITIONALS AND LOOPS.

if statement. else Statement. elif (a.k.a else-if) Statement. while Statement. for Statement. break Statement. continue Statement. pass Statement. else Statement Take Two. Exercises.

9. FILES AND INPUT/OUTPUT.

File Objects. File Built-in Function [open()]. File Built-in Methods. File Built-in Attributes. Standard Files. Command-line Arguments. File System. File Execution. Persistent Storage Modules. Related Modules. Exercises.

10. ERRORS AND EXCEPTIONS.

What Are Exceptions? Exceptions in Python. Detecting and Handling Exceptions. *Exceptions as Strings. *Exceptions as Classes. Raising Exceptions. Assertions. Standard Exceptions. *Creating Exceptions. Why Exceptions (Now)? Why Exceptions at All? Exceptions and the sys Module. Related Modules. Exercises.

11. FUNCTIONS.

What are Functions? Calling Functions. Creating Functions. Passing Functions. Formal Arguments. Variable-length Arguments. Functional Programming. Variable Scope. *Recursion. Exercises.

12. MODULES.

What are Modules? Modules and Files. Namespaces. Importing Modules. Importing Module Attributes. Module Built-in Functions. Packages. Other Features of Modules. Exercises.

13. CLASSES AND OOP.

Introduction. Object-oriented Programming. Classes. Class Attributes. Instances. Instance Attributes. Binding and Method Invocation. Composition. Subclassing and Derivation. Inheritance. Built-in Functions for Classes, Instances, and Other Objects. Type vs Classes/Instances. Customizing Classes with Special Methods. Privacy. Delegation. Related Modules and Documentation. Exercises.

14. EXECUTION ENVIRONMENT.

Callable Objects. Code Objects. Executable Object Statements and Built-in Functions. Executing Other (Python) Programs. Executing Other (Non-Python) Programs. Restricted Execution. Terminating Execution. Related Modules. Exercises.

II. ADVANCED TOPICS.

15. REGULAR EXPRESSIONS.

Introduction/Motivation. Special Symbols and Characters for REs. REs and Python. Regular Expression Adventures. Exercises.

16. NETWORK PROGRAMMING.

Introduction. Sockets: Communication Endpoints. Network Programming in Python. Related Modules. Exercises.

17. MULTITHREADED PROGRAMMING.

Introduction/Motivation. Threads and Processes. Threads and Python. thread Module. threading Module. Exercises.

18. GUI PROGRAMMING WITH TKINTER.

Introduction. Tkinter and Python Programming. Tkinter Examples. Related Modules and Other GUIs. Exercises.

19. WEB PROGRAMMING.

Introduction. Web Surfing with Python: Creating Simple Web Clients. Advanced Web Clients. CGI: Helping Web Servers Process Client Data. Building CGI Application. Advanced CGI. Web (HTTP) Servers. Related Modules. Exercises.

20. EXTENDING PYTHON.

Introduction/Motivation. Extending Python by Writing Extensions. Related Topics. Exercises. Answers to Selected Exercises. Other Reading and References. Other Printed References. Online References. Python Operator Summary. What's New in Python 2.0?

Appendix A.
Appendix B.
Appendix C.
Appendix D.
Index.
About the Author.

Preface

Preface

Welcome to Python!

Welcome to the wonderful world of Python! As a professional or student with working knowledge of another high-level programming language, this text was made for you in your efforts to jump straight into Python with as little overhead as possible. The goal of this book is to provide text that flows in a conversational style littered with examples to highlight your path towards Python programming.

At the time of publication, Python 2.0 was just released, so you will definitely have the latest and greatest. The supplementary CD-ROM has the three most recent versions of Python: 1.5.2, 1.6, and 2.0, not to mention the most recent release of the Java version of the Python interpreter, JPython (a.k.a. Jython).

Style: Technical, Yet Easy Reading

Rather than strictly a "beginners'" book or a pure, hard-core computer science reference book, my instructional experience indicates that an easy-to-read, yet technically-oriented book serves our purpose the best, and that is to get you up-to-speed on Python as quickly as possible, so that you can apply it to your tasks post haste. We will introduce concepts coupled with appropriate examples to expedite the learning process. At the end of each chapter you will find numerous exercises to reinforce some of the concepts and ideas acquired in your reading.

After the obligatory introduction to Python, but before heading to the core of the language, we take a "quick plunge" into Python with the "Getting Started" chapter. The intention of this chapter is for those who wish to temporarily dispense of formal reading and get their hands dirty with Python immediately. If you do not wish to travel this path, you may proceed as normal to the next set of chapters, an introduction to Python objects. Python's primitive data types, numbers, strings, lists, tuples, and dictionaries make up the next three chapters.

Python's error-handling capability is extremely useful to both the programmer and the user, and we address that topic in a separate chapter. Finally, the largest parts of the Python "core" we cover will be functions, modules, and classes... each in its own chapter. The final chapter of the text provides insight on how Python may be extended. The last section of the book is a mini-reference guide in the appendix. There we spill the beans on the core modules of the standard library, highlight the operators and built-in operators and functions for the Python types, provide solutions to selected exercises, and conclude with a small glossary of terms.

Author's Experience with Python

I discovered Python several years ago at a company called Four11. At the time, the company had one major product, the Four11.com White Page directory service. Python was being used to design the Rocketmail web-based email service that would eventually one day evolve into what is Yahoo!Mail today.

In addition to the use of C++, much of the controlling software and web front-end were done completely in Python. I participated in work done on the Yahoo!Mail address book and spellchecker. Since then, Python's appearance has spread to other Yahoo! sites, including People Search, Yellow Pages, and Maps and Driving Directions, just to name a few.

Although Python was new to me at the time, it was fairly easy to pick up; much simpler than other languages that I have learned in the past. The scarcity of the number of textbooks at the time led me to primarily use the Library Reference and Quick Reference Guide as my tools in learning, and also led to the motivation of the book you are reading right now.

Book Contents

This book is divided into two main sections. The first part, taking up about two-thirds of the text, gives you treatment of the "core" part of the language, and the second part provides a set of various advanced topics to show what you can build using Python.

Python is everywhere-sometimes it is amazing to discover who is using Python and what they are doing with it-and although we would have loved to produce additional chapters on such topics as Databases (RDBMSs, SQL, etc.), CGI Processing with HTMLgen, XML, Numerical/Scientific Processing, Visual and Graphics Image Manipulation, and Zope, there simply wasn't enough time to develop these topics into their own chapters. However, we are certainly glad that we were at least able to provide you with a good introduction to many of the key areas of Python development.

Here is a chapter-by-chapter guide:

Part I: Core Python

Chapter 1-Welcome to Python!

We begin by introducing Python to you, its history, features, benefits, etc., as well as how to obtain and install Python on your system.

Chapter 2-Getting Started

If you are an experienced programmer and just want to see "how it's done" in Python, this is the right place to go. We introduce the basic Python concepts and statements, and because many of these would be familiar to you, you would simply learn the proper syntax in Python and can get started right away on your projects without sacrificing too much reading time.

Chapter 3-Syntax and Style

This section gives you a good overview of Python's syntax as well as style hints. You will also be exposed to Python's keywords and its memory management ability. Your first Python application will be presented at the end of the chapter to give you an idea of what real Python code looks like.

Chapter 4-Python Objects

This chapter introduces Python objects. In addition to generic object attributes, we will show you all of Python's data types and operators, as well as show you different ways to categorize the standard types. Built-in functions that apply to most Python objects will also be covered.

Chapter 5-Numbers

Python has four numeric types: regular or "plain" integers, long integers, floating point real numbers, and complex numbers. You will learn about all four here, as well as the operators and built-in functions that apply to numbers.

Chapter 6-Sequences: Strings, Lists, and Tuples

Your first meaty chapter will expose you to all of Python's powerful sequence types: strings, lists, and tuples. We will show you all the built-in functions, methods, and special features, which apply to each type as well as all their operators.

Chapter 7-Dictionaries

Dictionaries are Python's mapping or hashing type. Like other data types, dictionaries also have operators and applicable built-in functions and methods.

Chapter 8-Conditionals and Loops

Like many other high-level languages, Python supports loops such as for and while, as well as if statements (and related). Python also has a built-in function called range() which enables Python's for loop to behave more like a traditional counting loop rather than the foreach iterative type loop that it is.

Chapter 9-Files and Input/Output

In addition to standard file objects and input/output, this chapter introduces you to file system access, file execution, and persistent storage.

Chapter 10-Errors and Exceptions

One of Python's most powerful constructs is its exception handling ability. You can see a full treatment of it here, instruction on how to raise or throw exceptions, and more importantly, how to create your own exception classes.

Chapter 11-Functions

Creating and calling functions are relatively straightforward, but Python has many other features that you will find useful, such as default arguments, named or keyword arguments, variable-length arguments, and some functional programming constructs. We also dip into variable scope and recursion briefly.

Chapter 12-Modules

One of Python's key strengths is in its ability to be extended. This feature allows for "plug-n-play" access as well as promotes code reuse. Applications written as modules can be imported for use by other Python modules with a single line of code. Furthermore, multiple module software distribution can be simplified by using packages.

Chapter 13-Classes and OOP

Python is a fully object-oriented programming language and was designed that way from the beginning. However, Python does not require you to program in such a manner-you may continue to develop structural/procedural code as you like, and can transition to "OO" programming anytime you are ready to take advantage of its benefits. Likewise, this chapter is here to guide you through the concepts as well as advanced topics, such as operator overloading, customization, and delegation.

Chapter 14-Execution Environment

The term "execution" can mean many different things, from callable and executable objects to running other programs (Python or otherwise). We discuss these topics in this chapter, as well as limited restricted execution and different ways of terminating execution.

Part II: Advanced Topics

Chapter 15-Regular Expressions

Regular expressions are a powerful tool used for pattern matching, extracting, and search-and-replace functionality. Learn about them here.

Chapter 16-Network Programming with Sockets

So many applications today need to be network-oriented. You have to start somewhere. In this chapter, you will learn to create clients and servers, using TCP/IP and UDP/IP.

Chapter 17-Multithreaded Programming

Multithreaded programming is a powerful way to improve the execution performance of many types of application. This chapter ends the drought of written documentation on how to do threads in Python by explaining the concepts and showing you how to correctly build a Python multithreaded application.

Chapter 18-GUI Programming with Tkinter

Based on the Tk graphical toolkit, Tkinter is Python's default GUI development module. We introduce Tkinter to you by showing you how to build simple sample GUI applications (say that 10 times, real fast!). One of the best ways to learn is to copy, and by building on top of some of these applications, you will be on your way in no time. We conclude the chapter by presenting a more complex example.

Chapter 19-Web Programming

Web programming using Python takes three main forms... Web clients, Web servers, and the popular Common Gateway Interface applications which help Web servers deliver dynamically-generated Web pages. We will cover them all in this chapter: simple and advanced Web clients and CGI applications, as well as how to build your own Web server.

Chapter 20-Extending Python

We mentioned earlier how powerful it is to have the ability to reuse code and extend the language. In pure Python, these extensions are modules, but you can also develop lower-level code in C, C++, or Java, and interface those with Python in a seamless fashion. Writing your extensions in a lower-level programming language gives you added performance and some security (because the source code does not have to be revealed). This final chapter of the book walks you step-by-step through the extension building process.

Optional Sections

Subsections or exercises marked with an asterisk ( * ) may be skipped due to their advanced or optional nature. They are usually self-contained segments that can be addressed at another time.

Those of you with enough previous programming knowledge and who have set up their Python development environments can skip the first two chapters and go straight to Chapter 2-Getting Started-where you can absorb Python into their system and be off to the races.

Book Support

I welcome any and all feedback: the good, the bad, and the ugly. If you have any comments, suggestions, kudos, complaints, bugs, questions... anything at all, feel free to contact me at cyberweb_consulting@yahoo.com.

You will find errata and other information at the book's Web site located on the Python Starship:

http://starship.python.net/crew/wesc/cpp/

Updates

Submit Errata

More Information

InformIT Promotional Mailings & Special Offers

I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

Overview


Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

Collection and Use of Information


To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

Questions and Inquiries

For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

Online Store

For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

Surveys

Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

Contests and Drawings

Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

Newsletters

If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

Service Announcements

On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

Customer Service

We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

Other Collection and Use of Information


Application and System Logs

Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

Web Analytics

Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

Cookies and Related Technologies

This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

Do Not Track

This site currently does not respond to Do Not Track signals.

Security


Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

Children


This site is not directed to children under the age of 13.

Marketing


Pearson may send or direct marketing communications to users, provided that

  • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
  • Such marketing is consistent with applicable law and Pearson's legal obligations.
  • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
  • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

Correcting/Updating Personal Information


If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

Choice/Opt-out


Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

Sale of Personal Information


Pearson does not rent or sell personal information in exchange for any payment of money.

While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

Supplemental Privacy Statement for California Residents


California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

Sharing and Disclosure


Pearson may disclose personal information, as follows:

  • As required by law.
  • With the consent of the individual (or their parent, if the individual is a minor)
  • In response to a subpoena, court order or legal process, to the extent permitted or required by law
  • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
  • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
  • To investigate or address actual or suspected fraud or other illegal activities
  • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
  • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
  • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

Links


This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

Requests and Contact


Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

Changes to this Privacy Notice


We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

Last Update: November 17, 2020