From the Author
Two things occurred which led us here: the 1st is a shortage of books on the market to help the intermediate Python developer. What do you do after you've learned Python? You may have read Dive into Python, Beginning Python, or Learning Python, and have written some basic tools/apps but have nowhere to turn other than dive deeply into specific topics w/books about game programming, databases, graphics/multimedia, GUIs, networking, etc.
If you want more than one skill you'd have to buy a book on every topic. This is overkill, esp. if you're only interested in expanding your skillset. In those cases you're not ready to dive that deep. You'll spend a lot, read a few chapters, then they'll collect dust (unless you're being paid or want to become an expert). This is the exact reason why I wrote "Part II" of Core Python Programming calling it "Advanced Topics". After spending a year (most of 2000) writing what I thought was the entire book, I asked myself, "Wait, I've just taught all these folks Python, but I didn't really show what they could build with it." Part II was written as a result.
Another thing that happened is that the book grew quite significantly. Originally 810 pages long, it bloomed to 1120 for the 2nd ed. With the new material for the 3rd ed., a massive tome would be difficult & expensive to publish plus would cause an unnecessary burden upon readers (unless getting an electronic edition). Thus I am pleased to announce that those chapters have been extracted to form their own book, Core Python Applications Programming!
The contents have been cleaned up and retrofitted w/Python 3 examples paired w/their 2.x friends as a hybrid to help you learn both 2.x & 3.x. You'll find that many chapters have new material including: NoSQL/non-relational databases featuring MongoDB, more Microsoft Office® examples using Outlook & PowerPoint (including the text-to-slide generator some of you have seen me use at conferences), interfacing w/Twitter, using Yahoo!Mail & Gmail to send/receive email, and even doing social media analysis w/Google+! There are also brand new chapters on Web framework development using Django, an introduction to cloud computing w/Google App Engine, and text processing w/CSV, JSON, and XML. The purpose is to provide comprehensive intros to but not go deep into any particular topic; please adjust any expectations appropriately. We hope you are as excited about the new book as we are!
The material making up "Part I" of the original book will take another couple of years to complete due to all the changes coming from Python 3 and not on the horizon at this time, so if you are a programmer completely new to Python, we still recommend the 2nd edition of Core Python Programming as the best place to go learn Python as quickly and as in-depth as possible. You'll get a great preview of Core Python Applications Programming there too! Also I look forward to meeting some of you at an upcoming conference or in one of my training courses!
Core Python Programming FAQs
Q: Will there be a 3rd edition for Python 3.0?
Q: Is the book outdated now due to Python 2.6+ & 3.x?
Q: Why does the book have "a lot of mistakes in it," use thick paper, and have large fonts?
Q: How's the book selling?
The book's main focus is comprehensively teaching you the core of the Python language, much more than just its syntax (which you don't really need a book to learn, right?). Knowing more about how Python works under the covers, including the relationship between data objects and memory management, will make you a much more effective Python programmer coming out of the gate. The advanced topics chapters are meant as intros or "quick dives" into a variety of distinct subjects. If moving towards those specific areas of development, they are more than enough to get you pointed in the right direction. We would say that the book is 40% introductory, 40% intermediate (in-depth core Python material plus advanced topics chapters), and 20% reference -- it is not meant to be a substitute for a pure reference such as the Python Essential Reference or Python in a Nutshell.
The material in the book is very much of a community effort (just like Python)! I welcome all comments, suggestions, corrections, feedback, etc., as well as what new chapters to add to future editions. Go to the book's website to download the code or check out the errata. When new versions of Python are released, look there for supplementary material to augment your book, keeping it as up-to-date as possible! I also offer public and private Python training courses and seminars should you feel the need for a "live" experience. I have written the book in an accessible style, reading as if I was having a conversation w/you, or if I was delivering a lecture to you attending one of my courses. Enjoy!
From the Back Cover
Praise for Core Python Programming
"The long-awaited second edition of Wesley Chun's Core Python Programming proves to be well worth the wait–its deep and broad coverage and useful exercises will help readers learn and practice good Python."
–Alex Martelli, author of Python in a Nutshell and editor of Python Cookbook
"There has been lot of good buzz around Wesley Chun's Core Python Programming. It turns out that all the buzz is well earned. I think this is the best book currently available for learning Python. I would recommend Chun's book over Learning Python (O'Reilly), Programming Python (O'Reilly), or The Quick Python Book (Manning)."
–David Mertz, Ph.D., IBM DeveloperWorks®
"I have been doing a lot of research [on] Python for the past year and have seen a number of positive reviews of your book. The sentiment expressed confirms the opinion that Core Python Programming is now considered the standard introductory text."
–Richard Ozaki, Lockheed Martin
"Finally, a book good enough to be both a textbook and a reference on the Python language now exists."
–Michael Baxter, Linux Journal
"Very well written. It is the clearest, friendliest book I have come across yet for explaining Python, and putting it in a wider context. It does not presume a large amount of other experience. It does go into some important Python topics carefully and in depth. Unlike too many beginner books, it never condescends or tortures the reader with childish hide-and-seek prose games. [It] sticks to gaining a solid grasp of Python syntax and structure."
–http://python.org bookstore Web site
"[If ] I could only own one Python book, it would be Core Python Programming by Wesley Chun. This book manages to cover more topics in more depth than Learning Python but includes it all in one book that also more than adequately covers the core language. [If] you are in the market for just one book about Python, I recommend this book. You will enjoy reading it, including its wry programmer's wit. More importantly, you will learn Python. Even more importantly, you will find it invaluable in helping you in your day-to-day Python programming life. Well done, Mr. Chun!"
–Ron Stephens, Python Learning Foundation
"I think the best language for beginners is Python, without a doubt. My favorite book is Core Python Programming."
–s003apr, MP3Car.com Forums
"Personally, I really like Python. It's simple to learn, completely intuitive, amazingly flexible, and pretty darned fast. Python has only just started to claim mindshare in the Windows world, but look for it to start gaining lots of support as people discover it. To learn Python, I'd start with Core Python Programming by Wesley Chun."
–Bill Boswell, MCSE, Microsoft Certified Professional Magazine Online
"If you learn well from books, I suggest Core Python Programming. It is by far the best I've found. I'm a Python newbie as well and in three months time I've been able to implement Python in projects at work (automating MSOffice, SQL DB stuff, etc.)."
–ptonman, Dev Shed Forums
"Python is simply a beautiful language. It's easy to learn, it's cross-platform, and it works. It has achieved many of the technical goals that Java strives for. A one-sentence description of Python would be: 'All other languages appear to have evolved over time--but Python was designed.' And it was designed well. Unfortunately, there aren't a large number of books for Python. The best one I've run across so far is Core Python Programming."
–Chris Timmons, C. R. Timmons Consulting
"If you like the Prentice Hall Core series, another good full-blown treatment to consider would be Core Python Programming. It addresses in elaborate concrete detail many practical topics that get little, if any, coverage in other books."
–Mitchell L Model, MLM Consulting
"Core Python Programming is an amazingly easy read! The liberal use of examples helps clarify some of the more subtle points of the language. And the comparisons to languages with which I'm already familiar (C/C++/Java) get you programming in record speed."
–Michael Santos, Ph.D., Green Hills Software
The Complete Developer's Guide to Python
- New to Python? The definitive guide to Python development for experienced programmers
- Covers core language features thoroughly, including those found in the latest Python releases–learn more than just the syntax!
- Learn advanced topics such as regular expressions, networking, multithreading, GUI, Web/CGI, and Python extensions
- Includes brand-new material on databases, Internet clients, Java/Jython, and Microsoft Office, plus Python 2.6 and 3
- Presents hundreds of code snippets, interactive examples, and practical exercises to strengthen your Python skills
Python is an agile, robust, expressive, fully object-oriented, extensible, and scalable programming language. It combines the power of compiled languages with the simplicity and rapid development of scripting languages. In Core Python Programming, Second Edition , leading Python developer and trainer Wesley Chun helps you learn Python quickly and comprehensively so that you can immediately succeed with any Python project.
Using practical code examples, Chun introduces all the fundamentals of Python programming: syntax, objects and memory management, data types, operators, files and I/O, functions, generators, error handling and exceptions, loops, iterators, functional programming, object-oriented programming and more. After you learn the core fundamentals of Python, he shows you what you can do with your new skills, delving into advanced topics, such as regular expressions, networking programming with sockets, multithreading, GUI development, Web/CGI programming and extending Python in C.
This edition reflects major enhancements in the Python 2.x series, including 2.6 and tips for migrating to 3. It contains new chapters on database and Internet client programming, plus coverage of many new topics, including new-style classes, Java and Jython, Microsoft Office (Win32 COM Client) programming, and much more.
- Learn professional Python style, best practices, and good programming habits
- Gain a deep understanding of Python's objects and memory model as well as its OOP features, including those found in Python's new-style classes
- Build more effective Web, CGI, Internet, and network and other client/server applications
- Learn how to develop your own GUI applications using Tkinter and other toolkits available for Python
- Improve the performance of your Python applications by writing extensions in C and other languages, or enhance I/O-bound applications by using multithreading
- Learn about Python's database API and how to use a variety of database systems with Python, including MySQL, Postgres, and SQLite
- Features appendices on Python 2.6 & 3, including tips on migrating to the next generation!
Core Python Programming delivers
- Systematic, expert coverage of Python's core features
- Powerful insights for developing complex applications
- Easy-to-use tables and charts detailing Python modules, operators, functions, and methods
- Dozens of professional-quality code examples, from quick snippets to full-fledged applications