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++.
Coverage of the Python standard module library and client-server application development includes comprehensive introductions to the following topics in Python programming:
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:
Core Python Programming delivers:
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.
Click here for a sample chapter for this book: 0130260363.pdf
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.
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).
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.
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.
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:
We begin by introducing Python to you, its history, features, benefits, etc., as well as how to obtain and install Python on your system.
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.
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.
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.
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.
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.
Dictionaries are Python's mapping or hashing type. Like other data types, dictionaries also have operators and applicable built-in functions and methods.
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.
In addition to standard file objects and input/output, this chapter introduces you to file system access, file execution, and persistent storage.
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.
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.
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.
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.
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.
Regular expressions are a powerful tool used for pattern matching, extracting, and search-and-replace functionality. Learn about them here.
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.
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.
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.
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.
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.
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.
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
You will find errata and other information at the book's Web site located on the Python Starship: