vnz 0114 beginning python (2005)

679 208 1
vnz  0114   beginning python (2005)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TEAM LinG Beginning Python 01_596543 ffirs.qxd 6/29/05 11:00 PM Page i TEAM LinG 01_596543 ffirs.qxd 6/29/05 11:00 PM Page ii TEAM LinG Beginning Python Peter Norton, Alex Samuel, David Aitel, Eric Foster-Johnson, Leonard Richardson, Jason Diamond, Aleatha Parker, Michael Roberts 01_596543 ffirs.qxd 6/29/05 11:00 PM Page iii TEAM LinG Beginning Python Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com Copyright © 2005 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada ISBN-10: 0-7645-9654-3 ISBN-13: 978-0-7645-9654-4 Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1 1B/SQ/QX/QV/IN Library of Congress Cataloging-in-Publication Data: Beginning Python / Peter Norton. p. cm. Includes bibliographical references and index. ISBN-13: 978-0-7645-9654-4 (paper/website) ISBN-10: 0-7645-9654-3 (paper/website) 1. Python (Computer program language) I. Norton, Peter, 1974- QA76.73.P98B45 2005 005.13’3 dc22 2005013968 No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at http://www.wiley.com/go/permissions. LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESEN- TATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WAR- RANTIES OF FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUIT- ABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE CHANGED OR DISAPPEARED BETWEEN THEN THIS WORK WAS WRITTEN AND WHEN IT IS READ. For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trade- marks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. 01_596543 ffirs.qxd 6/29/05 11:00 PM Page iv TEAM LinG About the Authors Peter Norton (NY, NY) has been working with Unix and Linux for over a decade at companies large and small solving problems with Linux. An officer of the NY Linux Users Group, he can be found on the nylug-talk mailing list. Peter coauthored Professional RHEL3. He works for a very large financial com- pany in NYC, plying his Python and open-source skills. Alex Samuel (San Diego, CA) has developed software for biology researchers and now studies high- energy physics at Caltech. Alex has worked on many GNU/Linux development tools, including GCC, and co-founded CodeSourcery LLC, a consulting firm specializing in GNU/Linux development tools. David Aitel (NY, NY) is the CEO of Immunity and a coauthor of Shellcoder’s Handbook. Eric Foster-Johnson (Minneapolis, MN) uses Python extensively with Java, and is a veteran author, most recently completing Beginning Shell Scripting. Leonard Richardson (San Francisco, CA) writes useful Python packages with silly names. Jason Diamond (CA) Jason Diamond is a software development instructor for DevelopMentor and a consultant specializing in C++, .NET, Python, and XML. He spends most of his spare time contributing to open-source projects using his favorite language, Python. Aleathea Parker (San Francisco CA) is a programmer working as a publication engineer for a major software company, coding primarily in Python and XSLT. She has a background in web applications and content management. Michael Roberts (Puerto Rico) has been programming professionally in C, Perl, and Python for long enough that Python didn’t actually exist when he started. He is the chief perpetrator of the wftk open-source workflow toolkit, and he swears that it will someday be finished, for certain values of “finished”. 01_596543 ffirs.qxd 6/29/05 11:00 PM Page v TEAM LinG 01_596543 ffirs.qxd 6/29/05 11:00 PM Page vi TEAM LinG Credits Acquisitions Editor Debra Williams Cauley Development Editor Kelly D. Henthorne Production Editor William A. Barton Copy Editor Luann Rouff Production Manager Tim Tate Editorial Manager Mary Beth Wakefield Vice President & Executive Group Publisher Richard Swadley Vice President and Publisher Joseph B. Wikert Project Coordinator Kristie Rees Graphics and Production Specialists Sean Decker Carrie Foster Lauren Goddard Denny Hager Jennifer Heleine Amanda Spagnuolo Quality Control Technicians Leann Harney Joe Niesen Carl William Pierce Media Development Specialists Angela Denny Kit Malone Travis Silvers Proofreading and Indexing TECHBOOKS Production Services 01_596543 ffirs.qxd 6/29/05 11:00 PM Page vii TEAM LinG 01_596543 ffirs.qxd 6/29/05 11:00 PM Page viii TEAM LinG To my Claudia, for keeping me thinking straight through a crazy time. To my mom, Eunice, for bringing me food and asking if I was okay throughout. To Debra, for roping me into this. And to all of the authors, I want to thank you for making it to the finish line. Whoa! I didn’t know what I was getting you all into! —P. N. To my dad, Clarence A. Johnson, 1922–2005. —E. F-J. For my mother. —L. R. For Jilly: 1 = 2. —J. D. To Aaron, for putting up with me. —A. P. To my wife, Agnes, in revenge for her doctoral thesis. —M. R. 01_596543 ffirs.qxd 6/29/05 11:00 PM Page ix TEAM LinG [...]... Product Your Development Environment Finding Python Programmers Training non -Python Programmers Python Employment Resources Python Problems Porting to Other Versions of Python Porting to Other Operating Systems Debugging Threads Common Gotchas Portable Distribution Essential Libraries Timeoutsocket PyGTK GEOip Summary Chapter 19: Numerical Programming Numbers in Python Integers Long Integers Floating-point... instructions there for downloading PythonCard PythonCard is a set of utilities that provides an environment for programming in Python PythonCard is a product that’s free to use and distribute and is tailor-made for writing in Python It contains an editor, called codeEditor, that you will be using for the first part of this book It has a lot in common with the editor that comes with Python, called idle, but in... easier to work with programs Using codeEditor’s Python Shell Before starting to write programs, you’re going to learn how to experiment with the Python shell For now, you can think of the Python shell as a way to peer within running Python code It places you inside of a running instance of Python, into which you can feed programming code; at the same time, Python will do what you have asked it to do and... the Python Shell To start the Python shell from codeEditor, pull down the Shell menu in the codeEditor’s menu bar and select Shell window This will open a window with the Python shell in it (no surprises here) that just has simple text, with line numbers along the left side (see Figure 1-1) You can get a similar interface without using PythonCard by starting the regular Python interpreter, without PythonCard’s... Compiling Python Code to Java Handling Differences between C Python and Jython Summary Exercises 567 568 569 570 571 Appendix A: Answers to Exercises 573 Appendix B: Online Resources 605 Appendix C: What’s New in Python 2.4 609 Glossary 613 Index 623 xxvii TEAM LinG TEAM LinG TEAM LinG 1 Programming Basics and Strings This chapter is a gentle introduction to the practice of programming in Python Python... Extension Modules Passing Parameters from Python to C Returning Values from C to Python The LAME Project The LAME Extension Module Using Python Objects from C Code Summary Exercises 356 358 360 363 364 368 380 383 383 Chapter 18: Writing Shareware and Commercial Programs A Case Study: Background How Much Python Should You Use? xxii 385 385 386 TEAM LinG Contents Pure Python Licensing Web Services Are Your... Programming Is Consistency Programming Is Control Programming Copes with Change What All That Means Together 2 2 2 3 The First Steps 3 Starting codeEditor Using codeEditor’s Python Shell 3 4 Try It Out: Starting the Python Shell 4 Beginning to Use Python — Strings 5 What Is a String? Why the Quotes? 5 6 Try It Out: Entering Strings with Different Quotes 6 Understanding Different Quotes 6 Putting Two Strings Together... Programming Implementing a Search Utility in Python Try It Out: Writing a Test Suite First Try It Out: A General-Purpose Search Framework A More Powerful Python Search Try It Out: Extending the Search Framework Formal Testing in the Software Life Cycle Summary 199 200 201 203 205 206 207 208 Chapter 13: Writing a GUI with Python 209 GUI Programming Toolkits for Python PyGTK Introduction pyGTK Resources... Try It Out: Mirroring Text with the MirrorServer The Mirror Client SocketServer Multithreaded Servers The Python Chat Server Design of the Python Chat Server The Python Chat Server Protocol Our Hypothetical Protocol in Action Initial Connection Chat Text Server Commands General Guidelines The Python Chat Client Single-Threaded Multitasking with select Other Topics Miscellaneous Considerations for Protocol... >>> >>> >>> >>> >>> >>> >>> import wx from PythonCard import dialog, util bg = pcapp.getCurrentBackground() self = bg comp = bg.components How It Works The codeEditor is a program written in Python, and the Python shell within it is actually a special programming environment that is enhanced with features that you will use later in the book to help you explore Python The import, from, and other statements . TEAM LinG Beginning Python 01_596543 ffirs.qxd 6/29/05 11:00 PM Page i TEAM LinG 01_596543 ffirs.qxd 6/29/05 11:00 PM Page ii TEAM LinG Beginning Python Peter Norton, Alex Samuel,. 3 The First Steps 3 Starting codeEditor 3 Using codeEditor’s Python Shell 4 Try It Out: Starting the Python Shell 4 Beginning to Use Python — Strings 5 What Is a String? 5 Why the Quotes? 6 Try. (Minneapolis, MN) uses Python extensively with Java, and is a veteran author, most recently completing Beginning Shell Scripting. Leonard Richardson (San Francisco, CA) writes useful Python packages

Ngày đăng: 20/10/2014, 00:15

Tài liệu cùng người dùng

Tài liệu liên quan