The eXperT’s VoiCe® in open sourCe Python 3 Absolute Beginners for All you will ever need to start programming Python Tim Hall J-P Stacey and Python 3 for Absolute Beginners ■ ■ ■ Tim Hall and J-P Stacey Python 3 for Absolute Beginners Copyright © 2009 by Tim Hall and J-P Stacey All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-4302-1632-2 ISBN-13 (electronic): 978-1-4302-1633-9 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Lead Editor: Matthew Moodie Technical Reviewer: Duncan Parkes Additional material: Dr. J. Burton Browning Editorial Board: Clay Andres, Steve Anglin, Mark Beckner, Ewan Buckingham, Tony Campbell, Gary Cornell, Jonathan Gennick, Michelle Lowman, Matthew Moodie, Jeffrey Pepper, Frank Pohlmann, Ben Renow-Clarke, Dominic Shakeshaft, Matt Wade, Tom Welsh Project Managers: Beth Christmas and Debra Kelly Copy Editor: Heather Lang Compositor: LaurelTech Indexer: BIM Indexing and e-Services Artist: April Milne Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail [email protected], or visit http://www.springeronline.com. For information on translations, please e-mail [email protected], or visit http://www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at http://www.apress.com/info/bulksales. The information in this book is distributed on an “as is” basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work. The source code for this book is available to readers at http://www.apress.com. Contents at a Glance ■ Contents......................................................................................................................v ■ About the Author........................................................................................................xi ■ About the Technical Reviewer...................................................................................xii ■ Chapter 1: Introducing Python....................................................................................1 ■ Chapter 2: Designing Software....................................................................................9 ■ Chapter 3: Variables and Data Types.........................................................................27 ■ Chapter 4: Making Choices........................................................................................49 ■ Chapter 5: Using Lists................................................................................................75 ■ Chapter 6: Functions...............................................................................................101 ■ Chapter 7: Working with Text..................................................................................125 ■ Chapter 8: Executable Files, Organization, and Python on the Web........................161 ■ Chapter 9: Classes...................................................................................................181 ■ Chapter 10: Exceptions............................................................................................221 ■ Chapter 11: Reusing Code with Modules and Packages.........................................241 ■ Chapter 12: Simple Windowed Applications............................................................261 ■ Index........................................................................................................................283 iii Contents ■ About the Author........................................................................................................xi ■ About the Technical Reviewer...................................................................................xii ■ Chapter 1: Introducing Python....................................................................................1 Running Python on Various Systems.................................................................................1 Learning While Having Fun................................................................................................4 Introducing the Interactive Shell........................................................................................4 Choosing to Code with a Text Editor..................................................................................5 Choosing to Code with an Integrated Development Environment......................................5 Getting Started with Programming....................................................................................5 Creating Your Own Help Files............................................................................................6 Jargon Busting...................................................................................................................6 Summary...........................................................................................................................7 ■ Chapter 2: Designing Software....................................................................................9 Designing Your Own Software (Why Bother?)....................................................................9 Identifying the Problem....................................................................................................10 Creating Your Wish List....................................................................................................12 Devising a Solution..........................................................................................................13 Breaking Down the Solution into Steps...........................................................................15 Jargon Busting.................................................................................................................24 Summary.........................................................................................................................25 ■ Chapter 3: Variables and Data Types.........................................................................27 Choosing Good Identifiers................................................................................................27 Creating Variables and Assigning Values.........................................................................28 Recognizing Different Types of Variables........................................................................29 Jargon Busting.................................................................................................................45 v ■ CONTENTS Summary.........................................................................................................................47 ■ Chapter 4: Making Choices........................................................................................49 Comparing Things............................................................................................................49 Taking Control of the Process..........................................................................................55 Dealing with Logical Errors..............................................................................................57 Using Conditional Code in the Application.......................................................................61 Now Repeat That.............................................................................................................65 Jargon Busting.................................................................................................................73 Summary.........................................................................................................................74 ■ Chapter 5: Using Lists................................................................................................75 Working with Python Data Structures..............................................................................75 Tuples..............................................................................................................................79 Lists.................................................................................................................................80 Sets..................................................................................................................................85 Dictionaries......................................................................................................................86 A Simple Role-Playing Combat Game..............................................................................89 Jargon Busting.................................................................................................................99 Summary.......................................................................................................................100 ■ Chapter 6: Functions...............................................................................................101 Accessing Privileged Information..................................................................................101 Working with Variable Scope.........................................................................................105 Refactoring rpcombat.py to Reduce Repetition.............................................................108 Jargon Busting...............................................................................................................123 Summary.......................................................................................................................124 ■ Chapter 7: Working with Text..................................................................................125 Strings and Things.........................................................................................................125 Matching Patterns Using Regular Expressions..............................................................135 Using Files.....................................................................................................................141 Applications...................................................................................................................145 Jargon Busting...............................................................................................................159 Summary.......................................................................................................................160 vi ■ CONTENTS ■ Chapter 8: Executable Files, Organization, and Python on the Web........................161 Making Programs Executable as Stand-Alone Applications..........................................161 Organizing Your Project.................................................................................................164 Writing Stylish Code.......................................................................................................165 Importing Modules.........................................................................................................170 Using exec() and eval()...................................................................................................172 Putting Python on the Web............................................................................................173 Jargon Busting...............................................................................................................179 Summary.......................................................................................................................179 ■ Chapter 9: Classes...................................................................................................181 Empowering objects......................................................................................................182 When Should Classes Be Used?....................................................................................185 Customizing Classes......................................................................................................191 Application.....................................................................................................................200 Jargon Busting...............................................................................................................219 Summary.......................................................................................................................220 ■ Chapter 10: Exceptions............................................................................................221 When Something Goes Wrong.......................................................................................221 Classes of Exceptions....................................................................................................224 A Final Note on Pythonic Exception Handling................................................................238 Jargon Busting...............................................................................................................239 Summary.......................................................................................................................240 ■ Chapter 11: Reusing Code with Modules and Packages.........................................241 Understanding Python Modules.....................................................................................241 Everyday Module Usage.................................................................................................244 Advanced Module Behavior...........................................................................................249 Combining Modules into Packages................................................................................252 The Universe of Python packages..................................................................................254 Jargon Busting...............................................................................................................259 Summary.......................................................................................................................260 vii ■ CONTENTS ■ Chapter 12: Simple Windowed Applications............................................................261 Using Tkinter..................................................................................................................261 Saying “Hello” with PyGTK............................................................................................265 Using Glade and tepache to Build Interfaces.................................................................279 Jargon Busting...............................................................................................................282 Summary.......................................................................................................................282 ■ Index........................................................................................................................283 viii
Description: