Differences between revisions 5 and 6
Revision 5 as of 2004-08-19 21:58:15
Size: 8167
Editor: Zoom.Quiet
Comment:
Revision 6 as of 2004-08-19 23:21:08
Size: 10316
Editor: Zoom.Quiet
Comment: Wiki小工具
Deletions are marked like this. Additions are marked like this.
Line 25: Line 25:
1. Installing Python
1.1. Which Python is right for you?
1.2. Python on Windows
1.3. Python on Mac OS X
1.4. Python on Mac OS 9
1.5. Python on RedHat Linux
1.6. Python on Debian GNU/Linux
1.7. Python Installation from Source
1.8. The Interactive Shell
1.9. Summary
 * ["/1."] Installing Python
 * ["/1.1."] Which Python is right for you?
 * ["/1.2."] Python on Windows
 * ["/1.3."] Python on Mac OS X
 * ["/1.4."] Python on Mac OS 9
 * ["/1.5."] Python on RedHat Linux
 * ["/1.6."] Python on Debian GNU/Linux
 * ["/1.7."] Python Installation from Source
 * ["/1.8."] The Interactive Shell
 * ["/1.9."] Summary
Line 38: Line 38:
2. Your First Python Program
2.1. Diving in
2.2. Declaring Functions
2.2.1. How Python's Datatypes Compare to Other Programming Languages
2.3. Documenting Functions
2.4. Everything Is an Object
2.4.1. The Import Search Path
2.4.2. What's an Object?
2.5. Indenting Code
2.6. Testing Modules
 * ["/2."] Your First Python Program
 * ["/2.1."] Diving in
 * ["/2.2."] Declaring Functions
 * ["/2.2.1."] How Python's Datatypes Compare to Other Programming Languages
 * ["/2.3."] Documenting Functions
 * ["/2.4."] Everything Is an Object
 * ["/2.4.1."] The Import Search Path
 * ["/2.4.2."] What's an Object?
 * ["/2.5."] Indenting Code
 * ["/2.6."] Testing Modules
Line 50: Line 50:
3. Native Datatypes
3.1. Introducing Dictionaries
3.1.1. Defining Dictionaries
3.1.2. Modifying Dictionaries
3.1.3. Deleting Items From Dictionaries
3.2. Introducing Lists
3.2.1. Defining Lists
3.2.2. Adding Elements to Lists
3.2.3. Searching Lists
3.2.4. Deleting List Elements
3.2.5. Using List Operators
3.3. Introducing Tuples
3.4. Declaring variables
3.4.1. Referencing Variables
3.4.2. Assigning Multiple Values at Once
3.5. Formatting Strings
3.6. Mapping Lists
3.7. Joining Lists and Splitting Strings
3.7.1. Historical Note on String Methods
3.8. Summary
 * ["/3."] Native Datatypes
 * ["/3.1."] Introducing Dictionaries
 * ["/3.1.1."] Defining Dictionaries
 * ["/3.1.2."] Modifying Dictionaries
 * ["/3.1.3."] Deleting Items From Dictionaries
 * ["/3.2."] Introducing Lists
 * ["/3.2.1."] Defining Lists
 * ["/3.2.2."] Adding Elements to Lists
 * ["/3.2.3."] Searching Lists
 * ["/3.2.4."] Deleting List Elements
 * ["/3.2.5."] Using List Operators
 * ["/3.3."] Introducing Tuples
 * ["/3.4."] Declaring variables
 * ["/3.4.1."] Referencing Variables
 * ["/3.4.2."] Assigning Multiple Values at Once
 * ["/3.5."] Formatting Strings
 * ["/3.6."] Mapping Lists
 * ["/3.7."] Joining Lists and Splitting Strings
 * ["/3.7.1."] Historical Note on String Methods
 * ["/3.8."] Summary
Line 72: Line 72:
4. The Power Of Introspection
4.1. Diving In
4.2. Using Optional and Named Arguments
4.3. Using type, str, dir, and Other Built-In Functions
4.3.1. The type Function
4.3.2. The str Function
4.3.3. Built-In Functions
4.4. Getting Object References With getattr
4.4.1. getattr with Modules
4.4.2. getattr As a Dispatcher
4.5. Filtering Lists
4.6. The Peculiar Nature of and and or
4.6.1. Using the and-or Trick
4.7. Using lambda Functions
4.7.1. Real-World lambda Functions
4.8. Putting It All Together
4.9. Summary
 * ["/4."] The Power Of Introspection
 * ["/4.1."] Diving In
 * ["/4.2."] Using Optional and Named Arguments
 * ["/4.3."] Using type, str, dir, and Other Built-In Functions
 * ["/4.3.1."] The type Function
 * ["/4.3.2."] The str Function
 * ["/4.3.3."] Built-In Functions
 * ["/4.4."] Getting Object References With getattr
 * ["/4.4.1."] getattr with Modules
 * ["/4.4.2."] getattr As a Dispatcher
 * ["/4.5."] Filtering Lists
 * ["/4.6."] The Peculiar Nature of and and or
 * ["/4.6.1."] Using the and-or Trick
 * ["/4.7."] Using lambda Functions
 * ["/4.7.1."] Real-World lambda Functions
 * ["/4.8."] Putting It All Together
 * ["/4.9."] Summary
Line 91: Line 91:
5. Objects and Object-Orientation
5.1. Diving In
5.2. Importing Modules Using from module import
5.3. Defining Classes
5.3.1. Initializing and Coding Classes
5.3.2. Knowing When to Use self and __init__
5.4. Instantiating Classes
5.4.1. Garbage Collection
5.5. Exploring UserDict: A Wrapper Class
5.6. Special Class Methods
5.6.1. Getting and Setting Items
5.7. Advanced Special Class Methods
5.8. Introducing Class Attributes
5.9. Private Functions
5.10. Summary
 * ["/5."] Objects and Object-Orientation
 * ["/5.1."] Diving In
 * ["/5.2."] Importing Modules Using from module import
 * ["/5.3."] Defining Classes
 * ["/5.3.1."] Initializing and Coding Classes
 * ["/5.3.2."] Knowing When to Use self and __init__
 * ["/5.4."] Instantiating Classes
 * ["/5.4.1."] Garbage Collection
 * ["/5.5."] Exploring UserDict: A Wrapper Class
 * ["/5.6."] Special Class Methods
 * ["/5.6.1."] Getting and Setting Items
 * ["/5.7."] Advanced Special Class Methods
 * ["/5.8."] Introducing Class Attributes
 * ["/5.9."] Private Functions
 * ["/5.10."] Summary
Line 108: Line 108:
6. Exceptions and File Handling
6.1. Handling Exceptions
6.1.1. Using Exceptions For Other Purposes
6.2. Working with File Objects
6.2.1. Reading Files
6.2.2. Closing Files
6.2.3. Handling I/O Errors
6.2.4. Writing to Files
6.3. Iterating with for Loops
6.4. Using sys.modules
6.5. Working with Directories
6.6. Putting It All Together
6.7. Summary
 * ["/6."] Exceptions and File Handling
 * ["/6.1."] Handling Exceptions
 * ["/6.1.1."] Using Exceptions For Other Purposes
 * ["/6.2."] Working with File Objects
 * ["/6.2.1."] Reading Files
 * ["/6.2.2."] Closing Files
 * ["/6.2.3."] Handling I/O Errors
 * ["/6.2.4."] Writing to Files
 * ["/6.3."] Iterating with for Loops
 * ["/6.4."] Using sys.modules
 * ["/6.5."] Working with Directories
 * ["/6.6."] Putting It All Together
 * ["/6.7."] Summary
Line 122: Line 122:
7. Regular Expressions
7.1. Diving In
7.2. Case Study: Street Addresses
7.3. Case Study: Roman Numerals
7.3.1. Checking for Thousands
7.3.2. Checking for Hundreds
7.4. Using the {n,m} Syntax
7.4.1. Checking for Tens and Ones
7.5. Verbose Regular Expressions
7.6. Case study: Parsing Phone Numbers
7.7. Summary
 * ["/7."] Regular Expressions
 * ["/7.1."] Diving In
 * ["/7.2."] Case Study: Street Addresses
 * ["/7.3."] Case Study: Roman Numerals
 * ["/7.3.1."] Checking for Thousands
 * ["/7.3.2."] Checking for Hundreds
 * ["/7.4."] Using the {n,m} Syntax
 * ["/7.4.1."] Checking for Tens and Ones
 * ["/7.5."] Verbose Regular Expressions
 * ["/7.6."] Case study: Parsing Phone Numbers
 * ["/7.7."] Summary
Line 134: Line 134:
8. HTML Processing
8.1. Diving in
8.2. Introducing sgmllib.py
8.3. Extracting data from HTML documents
8.4. Introducing BaseHTMLProcessor.py
8.5. locals and globals
8.6. Dictionary-based string formatting
8.7. Quoting attribute values
8.8. Introducing dialect.py
8.9. Putting it all together
8.10. Summary
 * ["/8."] HTML Processing
 * ["/8.1."] Diving in
 * ["/8.2."] Introducing sgmllib.py
 * ["/8.3."] Extracting data from HTML documents
 * ["/8.4."] Introducing BaseHTMLProcessor.py
 * ["/8.5."] locals and globals
 * ["/8.6."] Dictionary-based string formatting
 * ["/8.7."] Quoting attribute values
 * ["/8.8."] Introducing dialect.py
 * ["/8.9."] Putting it all together
 * ["/8.10."] Summary
Line 146: Line 146:
9. XML Processing
9.1. Diving in
9.2. Packages
9.3. Parsing XML
9.4. Unicode
9.5. Searching for elements
9.6. Accessing element attributes
9.7. Segue
 * ["/9."] XML Processing
 * ["/9.1."] Diving in
 * ["/9.2."] Packages
 * ["/9.3."] Parsing XML
 * ["/9.4."] Unicode
 * ["/9.5."] Searching for elements
 * ["/9.6."] Accessing element attributes
 * ["/9.7."] Segue
Line 155: Line 155:
10. Scripts and Streams
10.1. Abstracting input sources
10.2. Standard input, output, and error
10.3. Caching node lookups
10.4. Finding direct children of a node
10.5. Creating separate handlers by node type
10.6. Handling command-line arguments
10.7. Putting it all together
10.8. Summary
 * ["/10."] Scripts and Streams
 * ["/10.1."] Abstracting input sources
 * ["/10.2."] Standard input, output, and error
 * ["/10.3."] Caching node lookups
 * ["/10.4."] Finding direct children of a node
 * ["/10.5."] Creating separate handlers by node type
 * ["/10.6."] Handling command-line arguments
 * ["/10.7."] Putting it all together
 * ["/10.8."] Summary
Line 165: Line 165:
11. HTTP Web Services
11.1. Diving in
11.2. How not to fetch data over HTTP
11.3. Features of HTTP
11.3.1. User-Agent
11.3.2. Redirects
11.3.3. Last-Modified/If-Modified-Since
11.3.4. ETag/If-None-Match
11.3.5. Compression
11.4. Debugging HTTP web services
11.5. Setting the User-Agent
11.6. Handling Last-Modified and ETag
11.7. Handling redirects
11.8. Handling compressed data
11.9. Putting it all together
11.10. Summary
 * ["/11."] HTTP Web Services
 * ["/11.1."] Diving in
 * ["/11.2."] How not to fetch data over HTTP
 * ["/11.3."] Features of HTTP
 * ["/11.3.1."] User-Agent
 * ["/11.3.2."] Redirects
 * ["/11.3.3."] Last-Modified/If-Modified-Since
 * ["/11.3.4."] ETag/If-None-Match
 * ["/11.3.5."] Compression
 * ["/11.4."] Debugging HTTP web services
 * ["/11.5."] Setting the User-Agent
 * ["/11.6."] Handling Last-Modified and ETag
 * ["/11.7."] Handling redirects
 * ["/11.8."] Handling compressed data
 * ["/11.9."] Putting it all together
 * ["/11.10."] Summary
Line 182: Line 182:
12. SOAP Web Services
12.1. Diving In
12.2. Installing the SOAP Libraries
12.2.1. Installing PyXML
12.2.2. Installing fpconst
12.2.3. Installing SOAPpy
12.3. First Steps with SOAP
12.4. Debugging SOAP Web Services
12.5. Introducing WSDL
12.6. Introspecting SOAP Web Services with WSDL
12.7. Searching Google
12.8. Troubleshooting SOAP Web Services
12.9. Summary
 * ["/12."] SOAP Web Services
 * ["/12.1."] Diving In
 * ["/12.2."] Installing the SOAP Libraries
 * ["/12.2.1."] Installing PyXML
 * ["/12.2.2."] Installing fpconst
 * ["/12.2.3."] Installing SOAPpy
 * ["/12.3."] First Steps with SOAP
 * ["/12.4."] Debugging SOAP Web Services
 * ["/12.5."] Introducing WSDL
 * ["/12.6."] Introspecting SOAP Web Services with WSDL
 * ["/12.7."] Searching Google
 * ["/12.8."] Troubleshooting SOAP Web Services
 * ["/12.9."] Summary
Line 196: Line 196:
13. Unit Testing
13.1. Introduction to Roman numerals
13.2. Diving in
13.3. Introducing romantest.py
13.4. Testing for success
13.5. Testing for failure
13.6. Testing for sanity
 * ["/13."] Unit Testing
 * ["/13.1."] Introduction to Roman numerals
 * ["/13.2."] Diving in
 * ["/13.3."] Introducing romantest.py
 * ["/13.4."] Testing for success
 * ["/
13.5."] Testing for failure
 * ["/13.6."] Testing for sanity
Line 204: Line 204:
14. Test-First Programming
14.1. roman.py, stage 1
14.2. roman.py, stage 2
14.3. roman.py, stage 3
14.4. roman.py, stage 4
14.5. roman.py, stage 5
 * ["/14."] Test-First Programming
 * ["/14.1."] roman.py, stage 1
 * ["/14.2."] roman.py, stage 2
 * ["/14.3."] roman.py, stage 3
 * ["/14.4."] roman.py, stage 4
 * ["/14.5."] roman.py, stage 5
Line 211: Line 211:
15. Refactoring
15.1. Handling bugs
15.2. Handling changing requirements
15.3. Refactoring
15.4. Postscript
15.5. Summary
 * ["/15."] Refactoring
 * ["/15.1."] Handling bugs
 * ["/15.2."] Handling changing requirements
 * ["/15.3."] Refactoring
 * ["/15.4."] Postscript
 * ["/15.5."] Summary
Line 218: Line 218:
16. Functional Programming
16.1. Diving in
16.2. Finding the path
16.3. Filtering lists revisited
16.4. Mapping lists revisited
16.5. Data-centric programming
16.6. Dynamically importing modules
16.7. Putting it all together
16.8. Summary
 * ["/16."] Functional Programming
 * ["/16.1."] Diving in
 * ["/16.2."] Finding the path
 * ["/16.3."] Filtering lists revisited
 * ["/16.4."] Mapping lists revisited
 * ["/16.5."] Data-centric programming
 * ["/16.6."] Dynamically importing modules
 * ["/16.7."] Putting it all together
 * ["/16.8."] Summary
Line 228: Line 228:
17. Dynamic functions
17.1. Diving in
17.2. plural.py, stage 1
17.3. plural.py, stage 2
17.4. plural.py, stage 3
17.5. plural.py, stage 4
17.6. plural.py, stage 5
17.7. plural.py, stage 6
17.8. Summary
 * ["/17."] Dynamic functions
 * ["/17.1."] Diving in
 * ["/17.2."] plural.py, stage 1
 * ["/
17.3."] plural.py, stage 2
 * ["/17.4."] plural.py, stage 3
 * ["/17.5."] plural.py, stage 4
 * ["/17.6."] plural.py, stage 5
 * ["/17.7."] plural.py, stage 6
 * ["/17.8."] Summary
Line 238: Line 238:
18. Performance Tuning
18.1. Diving in
18.2. Using the timeit Module
18.3. Optimizing Regular Expressions
18.4. Optimizing Dictionary Lookups
18.5. Optimizing List Operations
18.6. Optimizing String Manipulation
 * ["/18."] Performance Tuning
 * ["/18.1."] Diving in
 * ["/18.2."] Using the timeit Module
 * ["/18.3."] Optimizing Regular Expressions
 * ["/18.4."] Optimizing Dictionary Lookups
 * ["/18.5."] Optimizing List Operations
 * ["/18.6."] Optimizing String Manipulation
Line 246: Line 246:
18.7. Summary
A. Further reading
B. A 5-minute review
C. Tips and tricks
D. List of examples
E. Revision history
F. About the book
G. GNU Free Documentation License
G.0. Preamble
G.1. Applicability and definitions
G.2. Verbatim copying
G.3. Copying in quantity
G.4. Modifications
G.5. Combining documents
G.6. Collections of documents
G.7. Aggregation with independent works
G.8. Translation
G.9. Termination
G.10. Future revisions of this license
G.11. How to use this License for your documents
H. Python license
H.A. History of the software
H.B. Terms and conditions for accessing or otherwise using Python
H.B.1. PSF license agreement
H.B.2. BeOpen Python open source license agreement version 1
H.B.3. CNRI open source GPL-compatible license agreement
H.B.4. CWI permissions statement and disclaimer
 * ["/18.7."] Summary
 * ["/A."] Further reading
 * ["/B."] A 5-minute review
 * ["/C."] Tips and tricks
 * ["/D."] List of examples
 * ["/E."] Revision history
 * ["/F."] About the book
 * ["/G."] GNU Free Documentation License
 * ["/G.0."] Preamble
 * ["/G.1."] Applicability and definitions
 * ["/G.2."] Verbatim copying
 * ["/G.3."] Copying in quantity
 * ["/G.4."] Modifications
 * ["/G.5."] Combining documents
 * ["/G.6."] Collections of documents
 * ["/G.7."] Aggregation with independent works
 * ["/G.8."] Translation
 * ["/G.9."] Termination
 * ["/G.10."] Future revisions of this license
 * ["/G.11."] How to use this License for your documents
 * ["/H."] Python license
 * ["/H.A."] History of the software
 * ["/H.B."] Terms and conditions for accessing or otherwise using Python
 * ["/H.B.1."] PSF license agreement
 * ["/H.B.2."] BeOpen Python open source license agreement version 1
 * ["/H.B.3."] CNRI open source GPL-compatible license agreement
 * ["/H.B.4."] CWI permissions statement and disclaimer


== Wiki小工具 ==
 * 手工加 Wiki 的页面声明太 SB 了!
 * Python 来帮忙!
{{{
f=open("DinPy",'r')
s=f.read()
#print s
import re
def wikiName(matchobj):
    return " * [\"/%s\"] "%matchobj.group(0)[:-1]
    
key = re.compile(r"(^\w[.|0-9a-zA-Z]+?)\s",re.M)
r=re.sub(key,wikiName,s)
print r
open("DinPy.wiki",'w').write(r)
}}}

深入Python 5.4 版本,中文翻译!

-- Zoom.Quiet [DateTime(2004-08-19T21:52:55Z)] TableOfContents

Dive Into Python

20 May 2004

Copyright © 2000, 2001, 2002, 2003, 2004 Mark Pilgrim

This book lives at http://diveintopython.org/. If you're reading it somewhere else, you may not have the latest version.

Permission is granted to copy, distribute, and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in Appendix G, GNU Free Documentation License.

The example programs in this book are free software; you can redistribute and/or modify them under the terms of the Python license as published by the Python Software Foundation. A copy of the license is included in Appendix H, Python license.

章节索引

Installing Python

  • ["/1."] Installing Python
  • ["/1.1."] Which Python is right for you?
  • ["/1.2."] Python on Windows
  • ["/1.3."] Python on Mac OS X
  • ["/1.4."] Python on Mac OS 9
  • ["/1.5."] Python on RedHat Linux

  • ["/1.6."] Python on Debian GNU/Linux
  • ["/1.7."] Python Installation from Source
  • ["/1.8."] The Interactive Shell
  • ["/1.9."] Summary

Your First Python Program

  • ["/2."] Your First Python Program
  • ["/2.1."] Diving in
  • ["/2.2."] Declaring Functions
  • ["/2.2.1."] How Python's Datatypes Compare to Other Programming Languages
  • ["/2.3."] Documenting Functions
  • ["/2.4."] Everything Is an Object
  • ["/2.4.1."] The Import Search Path
  • ["/2.4.2."] What's an Object?
  • ["/2.5."] Indenting Code
  • ["/2.6."] Testing Modules

Native Datatypes

  • ["/3."] Native Datatypes
  • ["/3.1."] Introducing Dictionaries
  • ["/3.1.1."] Defining Dictionaries
  • ["/3.1.2."] Modifying Dictionaries
  • ["/3.1.3."] Deleting Items From Dictionaries
  • ["/3.2."] Introducing Lists
  • ["/3.2.1."] Defining Lists
  • ["/3.2.2."] Adding Elements to Lists
  • ["/3.2.3."] Searching Lists
  • ["/3.2.4."] Deleting List Elements
  • ["/3.2.5."] Using List Operators
  • ["/3.3."] Introducing Tuples
  • ["/3.4."] Declaring variables
  • ["/3.4.1."] Referencing Variables
  • ["/3.4.2."] Assigning Multiple Values at Once
  • ["/3.5."] Formatting Strings
  • ["/3.6."] Mapping Lists
  • ["/3.7."] Joining Lists and Splitting Strings
  • ["/3.7.1."] Historical Note on String Methods
  • ["/3.8."] Summary

The Power Of Introspection

  • ["/4."] The Power Of Introspection
  • ["/4.1."] Diving In
  • ["/4.2."] Using Optional and Named Arguments
  • ["/4.3."] Using type, str, dir, and Other Built-In Functions
  • ["/4.3.1."] The type Function
  • ["/4.3.2."] The str Function
  • ["/4.3.3."] Built-In Functions
  • ["/4.4."] Getting Object References With getattr
  • ["/4.4.1."] getattr with Modules
  • ["/4.4.2."] getattr As a Dispatcher
  • ["/4.5."] Filtering Lists
  • ["/4.6."] The Peculiar Nature of and and or
  • ["/4.6.1."] Using the and-or Trick
  • ["/4.7."] Using lambda Functions
  • ["/4.7.1."] Real-World lambda Functions
  • ["/4.8."] Putting It All Together
  • ["/4.9."] Summary

Objects and Object-Orientation

  • ["/5."] Objects and Object-Orientation
  • ["/5.1."] Diving In
  • ["/5.2."] Importing Modules Using from module import
  • ["/5.3."] Defining Classes
  • ["/5.3.1."] Initializing and Coding Classes
  • ["/5.3.2."] Knowing When to Use self and init

  • ["/5.4."] Instantiating Classes
  • ["/5.4.1."] Garbage Collection
  • ["/5.5."] Exploring UserDict: A Wrapper Class

  • ["/5.6."] Special Class Methods
  • ["/5.6.1."] Getting and Setting Items
  • ["/5.7."] Advanced Special Class Methods
  • ["/5.8."] Introducing Class Attributes
  • ["/5.9."] Private Functions
  • ["/5.10."] Summary

Exceptions and File Handling

  • ["/6."] Exceptions and File Handling
  • ["/6.1."] Handling Exceptions
  • ["/6.1.1."] Using Exceptions For Other Purposes
  • ["/6.2."] Working with File Objects
  • ["/6.2.1."] Reading Files
  • ["/6.2.2."] Closing Files
  • ["/6.2.3."] Handling I/O Errors
  • ["/6.2.4."] Writing to Files
  • ["/6.3."] Iterating with for Loops
  • ["/6.4."] Using sys.modules
  • ["/6.5."] Working with Directories
  • ["/6.6."] Putting It All Together
  • ["/6.7."] Summary

Regular Expressions

  • ["/7."] Regular Expressions
  • ["/7.1."] Diving In
  • ["/7.2."] Case Study: Street Addresses
  • ["/7.3."] Case Study: Roman Numerals
  • ["/7.3.1."] Checking for Thousands
  • ["/7.3.2."] Checking for Hundreds
  • ["/7.4."] Using the {n,m} Syntax
  • ["/7.4.1."] Checking for Tens and Ones
  • ["/7.5."] Verbose Regular Expressions
  • ["/7.6."] Case study: Parsing Phone Numbers
  • ["/7.7."] Summary

HTML Processing

  • ["/8."] HTML Processing
  • ["/8.1."] Diving in
  • ["/8.2."] Introducing sgmllib.py
  • ["/8.3."] Extracting data from HTML documents
  • ["/8.4."] Introducing BaseHTMLProcessor.py
  • ["/8.5."] locals and globals
  • ["/8.6."] Dictionary-based string formatting
  • ["/8.7."] Quoting attribute values
  • ["/8.8."] Introducing dialect.py
  • ["/8.9."] Putting it all together
  • ["/8.10."] Summary

XML Processing

  • ["/9."] XML Processing
  • ["/9.1."] Diving in
  • ["/9.2."] Packages
  • ["/9.3."] Parsing XML
  • ["/9.4."] Unicode
  • ["/9.5."] Searching for elements
  • ["/9.6."] Accessing element attributes
  • ["/9.7."] Segue

Scripts and Streams

  • ["/10."] Scripts and Streams
  • ["/10.1."] Abstracting input sources
  • ["/10.2."] Standard input, output, and error
  • ["/10.3."] Caching node lookups
  • ["/10.4."] Finding direct children of a node
  • ["/10.5."] Creating separate handlers by node type
  • ["/10.6."] Handling command-line arguments
  • ["/10.7."] Putting it all together
  • ["/10.8."] Summary

HTTP Web Services

  • ["/11."] HTTP Web Services
  • ["/11.1."] Diving in
  • ["/11.2."] How not to fetch data over HTTP
  • ["/11.3."] Features of HTTP
  • ["/11.3.1."] User-Agent
  • ["/11.3.2."] Redirects
  • ["/11.3.3."] Last-Modified/If-Modified-Since
  • ["/11.3.4."] ETag/If-None-Match
  • ["/11.3.5."] Compression
  • ["/11.4."] Debugging HTTP web services
  • ["/11.5."] Setting the User-Agent
  • ["/11.6."] Handling Last-Modified and ETag
  • ["/11.7."] Handling redirects
  • ["/11.8."] Handling compressed data
  • ["/11.9."] Putting it all together
  • ["/11.10."] Summary

SOAP Web Services

  • ["/12."] SOAP Web Services
  • ["/12.1."] Diving In
  • ["/12.2."] Installing the SOAP Libraries
  • ["/12.2.1."] Installing PyXML
  • ["/12.2.2."] Installing fpconst
  • ["/12.2.3."] Installing SOAPpy
  • ["/12.3."] First Steps with SOAP
  • ["/12.4."] Debugging SOAP Web Services
  • ["/12.5."] Introducing WSDL
  • ["/12.6."] Introspecting SOAP Web Services with WSDL
  • ["/12.7."] Searching Google
  • ["/12.8."] Troubleshooting SOAP Web Services
  • ["/12.9."] Summary

Unit Testing

  • ["/13."] Unit Testing
  • ["/13.1."] Introduction to Roman numerals
  • ["/13.2."] Diving in
  • ["/13.3."] Introducing romantest.py
  • ["/13.4."] Testing for success
  • ["/13.5."] Testing for failure
  • ["/13.6."] Testing for sanity

Test-First Programming

  • ["/14."] Test-First Programming
  • ["/14.1."] roman.py, stage 1
  • ["/14.2."] roman.py, stage 2
  • ["/14.3."] roman.py, stage 3
  • ["/14.4."] roman.py, stage 4
  • ["/14.5."] roman.py, stage 5

Refactoring

  • ["/15."] Refactoring
  • ["/15.1."] Handling bugs
  • ["/15.2."] Handling changing requirements
  • ["/15.3."] Refactoring
  • ["/15.4."] Postscript
  • ["/15.5."] Summary

Functional Programming

  • ["/16."] Functional Programming
  • ["/16.1."] Diving in
  • ["/16.2."] Finding the path
  • ["/16.3."] Filtering lists revisited
  • ["/16.4."] Mapping lists revisited
  • ["/16.5."] Data-centric programming
  • ["/16.6."] Dynamically importing modules
  • ["/16.7."] Putting it all together
  • ["/16.8."] Summary

Dynamic functions

  • ["/17."] Dynamic functions
  • ["/17.1."] Diving in
  • ["/17.2."] plural.py, stage 1
  • ["/17.3."] plural.py, stage 2
  • ["/17.4."] plural.py, stage 3
  • ["/17.5."] plural.py, stage 4
  • ["/17.6."] plural.py, stage 5
  • ["/17.7."] plural.py, stage 6
  • ["/17.8."] Summary

Performance Tuning

  • ["/18."] Performance Tuning
  • ["/18.1."] Diving in
  • ["/18.2."] Using the timeit Module
  • ["/18.3."] Optimizing Regular Expressions
  • ["/18.4."] Optimizing Dictionary Lookups
  • ["/18.5."] Optimizing List Operations
  • ["/18.6."] Optimizing String Manipulation

Summary

  • ["/18.7."] Summary
  • ["/A."] Further reading
  • ["/B."] A 5-minute review
  • ["/C."] Tips and tricks
  • ["/D."] List of examples
  • ["/E."] Revision history
  • ["/F."] About the book
  • ["/G."] GNU Free Documentation License
  • ["/G.0."] Preamble
  • ["/G.1."] Applicability and definitions
  • ["/G.2."] Verbatim copying
  • ["/G.3."] Copying in quantity
  • ["/G.4."] Modifications
  • ["/G.5."] Combining documents
  • ["/G.6."] Collections of documents
  • ["/G.7."] Aggregation with independent works
  • ["/G.8."] Translation
  • ["/G.9."] Termination
  • ["/G.10."] Future revisions of this license
  • ["/G.11."] How to use this License for your documents
  • ["/H."] Python license
  • ["/H.A."] History of the software
  • ["/H.B."] Terms and conditions for accessing or otherwise using Python
  • ["/H.B.1."] PSF license agreement
  • ["/H.B.2."] BeOpen Python open source license agreement version 1

  • ["/H.B.3."] CNRI open source GPL-compatible license agreement
  • ["/H.B.4."] CWI permissions statement and disclaimer

Wiki小工具

  • 手工加 Wiki 的页面声明太 SB 了!
  • Python 来帮忙!

f=open("DinPy",'r')
s=f.read()
#print s
import re
def wikiName(matchobj):
    return " * [\"/%s\"] "%matchobj.group(0)[:-1]
    
key = re.compile(r"(^\w[.|0-9a-zA-Z]+?)\s",re.M)
r=re.sub(key,wikiName,s)
print r
open("DinPy.wiki",'w').write(r)

zhDiveIntoPython (last edited 2009-12-25 07:18:54 by localhost)