Mark Lutz | David Ascher
1 Learning Python, Second Edition
Overall this is a well-written book. I highly recommend it to a person learning Python. The concepts are well explained with an economy of words. Some programming books are dry; whereas I found this book answering questions that a person learning Python (like me) has. The authors give a background on the language and do a good job discussing the language. The book is well laid out and has a decent amount of white space in the margins for notes.
The index was fairly good, but has room for improvement in having more entries in it so that key concepts can be zeroed in on quickly. One feature that would have helped would be to have longer program examples listed in the book. Solutions are provided in the back of the book. This comes in handy in case one gets stuck doing an exercise and/or provides insight to an alternative approach. If a person is going to learn Python, this book will definitely get them boot strapped quickly.
2 Thorough introduction but slow and not good for reference
I would never try to use this book as a reference. It was not designed and it's not good for that.
It was designed as your first book on Python, especially if this is your first programming language. As such, it gives you a really thorough and extensive introduction written by a renowed authority. The parts on functional programming, Python's OOP and modules lay the solid foundation for the future Python programmer. Beware though: compared to similar "foundation" books in other languages' realms, this one is slow-paced, limited in scope, wordy and even redundant at times.
If you already know a language like C++, Java or Perl, and especially if you've already written some Python code, then this book is not your best choice: it will seem terribly slow paced, tedious, bloated and of no value as a reference (which is what an experienced programmer like you really needs most of the time). In this case, you could use a short and freely available tutorial like Guido's, then a good reference book like Python in a Nutshell and maybe some more advanced books like Python Cookbook and Python 2.1 Bible (provided there will be a new edition).
As an intermediate or experienced programmer, you may still benefit from Lutz's "textbook". You may want to skim quickly through the first 3 Parts (which make 180 pages of beginner's stuff you've learned in highschool, decorated with the occasional gem toward the end of some chapters), then slow down a bit for the rest of the book and pay special attention to chapters 14, 17, 18, 21, 22, 23, and 27. This book has too many chapters for my taste, btw.
Part VIII, written by another authority (David Ascher), is a little too short and still bad for reference. In the next edition, I hope it will be expanded to a reasonable level of detail. I found the coverage of regular expressions particularly disappointing -- probably because they are covered by Mr Lutz's other book, Programming Python, which was supposed to be your second book. The exercises at the end of each Part are not the most interesting and useful I know of.
3 Disorganized, bloated book
I did not like this book. It is terribly organized. It is incomplete. Although it doesn't present wrong information, the way it is presented makes it seem inaccurate. Information on one same subject is scattered in many different chapters and never presented in one place. For that reason it is practically impossible to use as a reference or to quickly find a piece of info.
For example, while I was mid-way through the book, I wanted to quickly check what kind of comments Python supported. Does it support only one kind (line comments), or like C++ and Java has two kinds (line and block) ? So, I checked the contents - I was searching for a chapter called something like "lexical structure", or even "comments". No luck. (However, I did find a chapter called "Clicking Windows File Icons" ... - very useful! )
I didn't give up. Next step, check the index. "Comments" are mentioned three times in the book. The first time in the chapter "Basic Operations and Variables" (good choice!!!) - one kind of comment is described briefly in a paragraph with no relation to the rest of the chapter. Sadly, no answer to my question there.
The second time is in a chapter titled "Python Syntax Rules". Hmm, that makes more sense. Well, technically not, since comments are not part of the syntax, but let's not get technical ... Here it says that comments are ignored. Good to know. But how many kinds of comments are there ???
The third mention of comments is in the chapter "Documenting Pyhton Code". "Finally!", I say to myself and naively rush through the pages. Alas, no luck again. It says that "#" comments are a way to document code, but again it doesn't say if they are the only kind of comment, or if there are others.
By this time it is probably implied that there is no other kind of comments, since it is never never mentioned, however one SHOULD NOT have to guess about such things when reading a technical book.
I went ahead and checked the online Python documentation at http://www.python.org/doc/2.4/ref/ref.html . It took me 5 seconds to find "Lexical analysis", "Comments" and read what I needed. Why did I bother with the book ??
In defense of the book, I must say that it is not all bad. It does sucesssfully teach you to program in Python, even though it is strongly geared to inexperienced programmers (and thus annoying at places). However you absolutely need one more source of reference for Python, and if you have that, why buy this book ?
It is nothing like "The Java Programming Language", which in my mind is an example of an excellent language book and reference.
4 Not for experienced programmers/scripters
If you're familiar and comfortable with other languages, you may find this book too long-winded. I think it could have slimmed down by 300 pages and been easier to follow and more useful for learning.
If you get annoyed by incessant references to Monty Python, you may find the various examples very distracting and irritating. ('Foo' is a nonsense word, and doesn't interfere with anything, but to constantly read 'spam' and 'eggs' gets really distracting.)
If you've never done scripting or programming, then the pace might be appropriate for you.
5 A thorough and accessible introduction
Even though this book was a little too slow for my personal taste (I already had quite a bit of experience in various object-oriented and scripting languages), I nevertheless gave it 5 stars for the phenomenal task the authors solved by making the book accessible and thorough at the same time.
The first half of the book provides an introduction to the basic elements of the Python programming language, such as built-in data types, control flow, functions, and modules. The second half deals with more advanced, but equally fundamental, programming concepts such as object-oriented programming and exceptions, and gives examples of how to solve common tasks like file processing or string manipulation in Python. The text carefully defines all introduced concepts, and supplements them with many examples, so it should be quite accessible even for people with little previous programming experience. At the same time, it is fair to say that, after studying this book, the reader will have a thorough foundation and a solid grasp of all important Python concepts.
For example, the two concepts that distinguish Python from most other programming languages, are "everything is an object" and "every variable is a reference". This might lead to some surprises for programmers that grew up with compiled languages such as C++, but the book points out the differences in pilosophy and the resulting "gotchas" in quite some detail. In fact, each chapter concludes with a list of such "gotchas", which is likely to save both the beginner and the experienced programmer some headaches.
Another aspect I liked about this book is that, even though it is aimed at Python beginners, more advanced concepts are not just swept under the rug, but the authors are honest enough to point out their own omissions, and to refer the interested reader to some more advanced text.
The last two chapters of the book introduce the reader to a variety of Python extensions, such as GUI toolkits and scientific computing libraries, among many others. Due to the huge number of Python extensions available, these chapters are necessarily very dense, and in this way break with the book's general style of providing a thorough, comprehensive introduction to all new concepts. These chapters serve well as a platform, or rather a guide map, with the help of which the world of Python can be explored further.
In summary, I'd enthusiastically recommend this book to all but the most experienced programmers, since for the latter the book's pace will likely be a little too slow.
6 Not what I expected..
I bought this book to "learn python". What I didnt expect was to just learn how python compares to C and C++.
I did find the book helpful as a good reference that covers all python aspects that is quite ideal if you are an experienced programmer wanting to learn python as an additional language. For a beginner however, this is quite useless. Although I managed making it all the way through the book, I struggle writing any software past simple scripts or understanding other people's code.
Again, this doesnt make it a bad book, its quite brilliant infact. But beware it might not be as helpful as you like if you are not an experienced programmer in other languages.
Another note is, many built in modules in python come quite poorly documented (cough*curses*cough) and expect knowledge of the module in C/C++ requiring you to dive into complicated C/C++ documentation to make use of the module in python. So really, yes, python is easy, python saves time, but knowledge in C and/or C++ is recommended to make best use of it.
Hope this is helpful.
7 Learning Python - Teachers and Beginners Beware
I can readily subscribe to almost all of the nice things already said about Python. I've been programming Perl for 10 plus years and also C, C++, Java and lots more. In short, I'm a very experienced programmer. I've also had a lot of teaching experience at the college Computer Science level and within companies that I've worked at. My idea of a great Learning XXX book is the Learning Perl book by R. Schwartz and T. Phoenix (O'Reilly). Learning Python is definitely not in the same league as a teaching and self-instruction book. I need a Python book for an upcoming course that I will be teaching. The course will cover both Perl and Python. I have used and will use Learning Perl. My Python book needs to be, oh say about the same size as Learning Perl and will take the user to about the same level of proficiency. This book is not it. The book is way too heavy in bulk and presentation. Just compare for yourself, the Table of Contents for the two books, available on the Amazon.com page. Way too much for a Learning Python course. Teachers and Students - "Caveat Emptor" (=Let the buyer beware)
8 Major disappointment
Having programmed before (in dBase, COBOL, etc.) I expected to be able to follow a book that's intended for less-experienced programmers. Boy, was I mistaken.
This would probably be a fine book for someone who is migrating from C++, but I found many of their explanations needlessly cryptic. They use, in all of the examples, phrases from Monty Python - understandable, but totally useless for someone who wishes to relate functions to real-life application.
In short - if you've already mastered C, this book may help. If you have minimal or no programming experience, this book will show you how to perform functions, but will not explain what you'd want to use these functions for in application programming.
9 Very clear text and organized structure
I am a Windows .Net programmer who wanted to try some Linux programming (but console and GUI), and after a few frustated tries with C++, I finally found Python. Python is a _beautiful_ language, probably the most elegant I've ever seen since my days at university.
This book is very well-written, although the pace might be a bit slow (if you prefer a "faster" but more superficial book, try the Python Quick Visual Startguide). The author is extremely clear and the text very well-organized.
This book covers both the basics and the advanced stuff, so it might be all you need for a good while. Once you get familiar with the language basics, you might be able to learn the rest (such as GUI and web programming) through online tutorials.
10 Utterly Boring :-(((
I liked the first edition of this book, which gave a decent
inroduction into Python at a little more than 300 pages. When the
2nd edition came out I ordered a copy blindly, because I expected
a lot more information on latest Python features and modules from
its 580 pages. However, this book disappointed me very much. The
presentation of Python basics has been bloated so much that it
just bored me to death. For example, it takes Mr Lutz 189 pages
and 11 chapters to get to functions basics, which is twice as
much as in the first edition (now compare this to 24 pages in
Kernighan/Ritchie's C-book). On the other hand, there are only a
couple of pages on new-style classes. I cannot imagine an
experienced programmer who likes to sift through all that fluff.
I am also wondering if this book is exciting for newbies, but
maybe todays newbies are different. This book reminds me a lot of
"Programming Python" (by the same author), which I also hated for
its tediuos and bloated style.
11 A great place to start
This is an excellent place to start learning Python. The authors are very knowlegable and have obviously read and understood big chunks of the Python source code. Still, with all of that knowledge, they move at a good pace for learning (not too quickly or too slowly). I recommend this book as a great starting place for learning Python.
To pick nits, the authors (or perhaps the editors) need to learn the difference between affect (the verb) and effect (the noun). They use effect throughout, even when it is being used as a verb.
Also, I was somewhat disappointed with Tkinter, but this probably wasn't the fault of the authors. It's a big subject, and this book is more about teaching core concepts. With regard to big add-on libraries, such as Tkinter, this book is more about whetting your appetite. Knowing that such add-ons are there is half the battle, and the book accomplishes that, in addition to great coverage of core concepts.
I think my disappointment related to Tkinter had more to do with Python than the book. Python (the language) seems terrific for thin-client, browser-based development (CGIs), but not quite ready for prime time GUIs.
12 Probably the best Python textbook
After a brief encounter with the on-line documentation from Python community, I decided to learn this powerful language with the help of Python library from O'Reilly. I started with a "Python in a Nutshell" which is a good reference guide for experienced (Python) programmers, however it's too heavy for the Python newbie like me. Since, I'm not a professional, full-time programmer, I knew that I needed something more comprehensible, so I waited for the second edition of the "Learning Python" to be published. At the end, the wait paid off.
This book is excellent study guide for any kind of programmers, from absolute beginners to veterans in other languages. The book clearly shows that the both authors are experienced teachers. Topics are presented in a clear fashion with plenty of code samples and useful exercises at the end of each part. This book should be read as a textbook in front of the terminal, trying out all examples as they're explained.
Now, I'm comfortably looking forward to read some more specific and advanced Python books. Highly recommended!
13 Good even for experienced...
I was a programmer for 15+ years and used Perl for 8 or so of those years, so although I'm a newcomer to Python I'm definitely not a newcomer to programming or to scripting languages. When I ordered this book, I was worried that it might be too basic, but the more advanced O'Reilly Python books have not been updated to Python 2.2/2.3, so I ordered Learning Python anyhow.
And now that I've read it, I can highly recommend it even for experienced programmers. You will have to skim over basics in various chapters, but it's well-written and covers many topics, including 5-10 pages on 2.2's new-style classes, including static and class methods, instance slots, class properties, and __getattribute__.
It refers you to Python's documentation for the details of complex topics, but still gives you an idea of the concepts in play. For example, after a couple of paragraphs on instance slots, it says,
"... Slots are something of a break with Python's dynamic nature, which dictates that any name may be created by assignment. They also have additional constraints and implications that are far too complex for us to discuss here (e.g. some instances with slots may not have an attribute dictionary __dict__); see Python 2.2 release documents for details."
Which I think is a good compromise. They don't fill the book with details, but they don't simply wave their hands and give you no clue as to issues outside the scope of the book.
It is well-written and well-organized. It covers the core language well and gives a good taste for standard packages and many other tools including things like Pyrex and ctype.
(And you won't be disappointed with Python itself. A great language!)
14 Excellent guide to learning python for beginners+
I have the 1st edition of this book published in 1999. the 2004 edition is improved in numerous ways and offers excellent examples, thorough explanations and a more gentle learning curve than any other programming book I have ever read.
I generally use Python to interface with linux/unix for scripting. I find it MUCH beter than perl for this. the minute I am done with a perl script, my understanding of it begins to deteriorate. Python is just the opposite. Full OOP makes code reuse a reality. clean, understandable syntax makes code I wrote 6 months ago easy to fire up and understand.
This is an excellent book. If you are interested in Python, get it.
15 Better than Perl or Tcl or shell scripts
It gives a thorough description of how to use Python; which is indeed easy to learn if you already know another language. But when the authors say that not having to compile Python programs means that development time is speeded up, perhaps they are overstating. For most programmers who use compiled languages like C or C++, the biggest time is taken up in finding a method that solves a problem, coding it and subsequent debugging. These days, compilers on recent hardware are fast enough that link/compile times are simply not a bottleneck to development productivity. So it is a bit of a straw dummy that the authors put forth.
However, they are absolutely spot on when comparing this to Perl or Tcl. Perl is powerful, but its code looks like assembler. Perl gurus tend to shrug when you point this out, usually saying they understand it, with the not-so-implicit suggestion that if you can't, it is your fault. But this leads to a real maintenance problem and a barrier to entry to others. The cleaner Python syntax can show coding intent far clearer. Plus, and more importantly, the object oriented nature of Python lets you scale up to much larger programs. This has always been a problem with scripting languages, all the way back to the various unix shell scripts and DOS bat files. Often, the most those ever gave you in terms of modular capabilities was the equivalent of subroutines. Which is strictly procedural and not OO.
By the way, there is a small contradiction between the above claim that Python is more understandable than Perl and the claim that it has an advantage over C++ or Java because it is not as verbose as those. Typically, in increasing amount of source code, you have Perl -> Python -> (C++,Java). If you think that Python is more understandable than Perl, then by that same logic, we could conclude that C++ or Java is more understandable than Python.
So if you are using Perl or Tcl and want something better, Python is a good choice. A good upgrade path.
But if you are currently using C or C++, with maybe X for graphics, or Java, then I suggest you stay with those. All three languages, with their graphics, give you a far richer toolset. Python would be a retrograde choice.
16 still a good read
Having read this book a couple of years ago, I still browse through it frequently. David presents a gentle intro for the Python beginner but I appreciate the quick summaries of modules and methods. In fact, I reference this book a lot more than my "Essential Python Reference". Buy this book for a good intro to the language and keep it around for future reference.
17 Worthwhile for new and experienced programmers
I own several books on Python, but found this one the best as an introduction. Interspaced throughout the chapters are many examples, which are indeed simple, possibly trivial (as other reviewers have complained), but in fact are purposely so in order to illustrate succinctly the specific points in the surrounding text. As a further and important learning tool are the excellent "test questions" at the end of each chapter. Solving these (answers in the back of the book) will train the fingers to code python and the mind to think python.
Overall the writing style is VERY accessible. After you learn python, you may prefer a very terse reference manual like Python in a Nutshell, but you learn the language best if you start with "Learning Python".
Luckily, the second edition will soon be here -- the reader is advised to wait for that.
18 Perfect to get started
As an accountant and controller I had some programming experience as a user, but am no professional programmer. I was looking for an alternative to Visual Basic or C like dialects. I needed a language, to which I could add a database, with which I could process texts and numbers and preferrably spread sheets and above all, which would be simple and effective. I had tried Visual Basic, Delphi, Cache and others, but they all required too much time to start.
My objective was, to construct a database, that would read-in Excel spread sheets containing sales data of different countries every monty, store that data and compile comprehensive sales reports, that could be exported back to MS Excel.
Reading only this book, I was able to achieve this task within one month and was able to present a simple, but effective database, which allowed me to get the go-ahead with my project and earned me the respect of my boss.
I consider this book one of the best introductions I have seen for persons who have some basic knowledge about programming.
19 A great intro to Python
Even after the recent introduction of dozen or so python books in the last few months, Learning Python still remains one of the best, if not the best, resources to start learning about Python. I owned this book for a period of a year and a half after my introduction to Python. During most of that time, I often referred back to it, and I can say that this book was indespensible during that early period of Python features experimentation.
This brings up a good point: the intended audience for this book are people who are just starting out with Python. If you are already familiar with Python, and have a year or so of experience under your belt, try Python in a Nutshell, Text Processing in Python and the excellent reference book: Python Essential Reference.
20 Dabbled before? Now make a go of it!
As a infrequent programmer, I've read about and studied other languages (C, Java) but found them too complex to master. The simplicity and power of Python, combined with this clear well-written book, made it possible to learn and start using Python right away. I read and worked through the (platform agnostic) examples on my Windows PC and quickly grasped the information being presented. This book makes occasional comparisons with other programming languages so that experienced programmers don't trip over the knowledge they already have. These comparisons don't get in the way of a first time learner. Well done!!!
21 Who is the target audience for this book?
I first purchased this book nearly two years ago, but I never got past the first few chapters.
I just picked this book up again, with the benefit of two years' experience programming in PHP and a little but of Java, and I realize why working through this book seemed like such slow going the first time around.
On the one hand, "Learning Python" is written with a lot of hand-holding for readers who may not have much programming experience at all with any other languages; the basic concepts of variables, statements, functions, data types and the like are all clearly explained, which is a good thing for someone just starting out.
On the other hand, there are also quite a few tips and bits of information about memory efficiency, or how certain elements of Python relate to their C underpinnings; things that a rank newbie probably won't understand, and probably doesn't need to know when they're just trying to learn the basics. These esoteric points are probably quite helpful/interesting for programmers coming from low level languages like C, but those programmers will be frustrated by the slow page of the sections covering basic mechanics.
So you've got a book that moves at a beginners' pace that's full of asides targeted towards experienced programmers; beginners will be confused and overwhelmed, and experienced coders will just get frustrated.
For what it's worth, I have the first edition of this book; I'm not sure how the second edition compares.
22 You'll love Python
I debated whether I should write seven pages, footnoted, indexed, and full of examples on why you should not buy this book and choose to seek another source for learning Python. But if you're the type who would actually make it through all that to get to the main point, you might actually LIKE "Learning Python". I'd rather save you, the save-able, from experiencing the same pain that I am going through right now. So here is my one-word review: "Excruciating". I hope this has been helpful. By the way, Python is fantastic and is ironically everything that this book is not.
23 Great orientation.
This book is a great quick introduction to Python. And don't be fooled, this book DOES deal with some subtly advanced topics. Great job, I recommend it everywhere!
24 extremely disappointed
I bought this book because I originally bought the author's Programming Python book mistakenly thinking it would be similar to the Programming Perl book (which is a stellar book, where as the Python equivalent is more like a cookbook). It was immediately obvious that I was NOT going to learn Python from that book so I bought this one. Again, a mistake. It may be a fair overview of Python but it did not give me the tools I needed to be productive right away; and if it did have the information that I was looking for it was not obvious. Simple things like writing to standard error, file tests, executing separate programs and saving the output, parsing text, even how to force a script to bloody exit... basically common things people expect from a scripting language right away were given either little, weak, or *NO* obvious treatment. The appendix is no help either, I could not find most of these simple operations listed there under the usual key words. I'm sorry to say but this is the worst O'Reilly book I've come accross and (together with Programming Python) is a black mark on the series.
25 Excellent!
This book really has everything you need to know to start coding python. I know perl, java and C++ so everything was very clear to me and I've never seen object oriented programming explained so well in any other book (pythons syntax helps of course).
A new edition is needed though, not only because it doesn't cover python 2 but also because it doesn't cover packages and a few other things that were covered in the 1st edition of Programming Python but not in the 2nd edition.
26 Learning Python (Help for Programmers)
An EXCEPTIONAL introductory learning manual. My programming background is strictly mainframe Cobol (15 years). I have never coded in C, C++, OOP, or any other open-source language. I have found this book to be very easy to read, to understand, and to utilize in coding new applications. Even though Python is currently in release 2.2, this release 1.5 version of Learning Python is still 100% applicable.
If you are learning Python: YOU NEED THIS BOOK !!
27 An average book at best
This book is a terribly lazy attempt at writing a Python tutorial.
Sure, you can read it from start to finish, and write yourself some working Python code. However, when you want to write something slightly different to what is covered in this book, you suddenly realise how incomplete this book is.
Eg, it covers the hasattr, getattr, setattr, and delattr built in functions, which is fine if you already know what attributes an object has, but in no way can I work out with this book how, or if it is even possible, to get a list of an object's existing attributes.
It is incredibly frustrating trying to learn Python from this book. I am writing this review because I came online to look for a better Python book. I was hoping to find something by the Wrox publishers, as their Beginning Java2 is excellent, but it looks like I am out of luck...
28 Simply dreadful
Having previously read several O'reilly Perl books I thought that learning Python from this text would be straight forward. Unfortunately this book has none of the helpful examples that the Perl books have and also dissappointing was the reluctance to write the code as you might using a text editor. Instead the authors seem to prefer to write code as it would be run from the interpreter on the commandline. This made it really hard to write any Python using the text editor. All in all a complete waste of money.
29 Best Python Book To Start With
This is a wonderful introductory book to Python for people with a (small) background in programming. Significantly more readable than Programming Python, this volume succinctly relates what you need to know without bogging down in extended examples or tedious details. From here the online references take over or, like a true hacker, you can just start reading source code. Together with the upcoming Python Cookbook, this is all you need to buy to be productive in the best language you are ever likely to meet. Nice rat, too.
30 beginning python
Well this book is a decent reference on how to use python the older version. If the book would have had an input statement or two to make it more interactive, the book would have been great!
A couple of simple practical examples, that you can see the out come of a file that you saved. The interpreter is okay, but you would like to see a simple example using the input statement to make interesting..
31 Good, improvable.
You can learn Python from this book. However, this is not one of those books which capture your attention, like, say, Kernighan's books, or even "Learning Perl". You have to fight against this book. This is mainly for the following reasons, IMHO:
1. Jargon is used too frequently. If you are not a hacker (in the good, original sense) you have to work against the language (not Python, English!), too. I had to reach for the "Hacker's Dictionary", now and then. For instance, the word "hook" is used in a technical sense without being explained.
2. Object is never defined. In the "official" tutorial, which is much shorter, a clear and concise definition is given. This is badly needed, for "object", in the python world, is different that in
C++, or smalltalk, world, where it is a class instance. In python it is the triple (type, address, value).
3. Phrases like "Classes are mostly just namespace" don't help the beginner who wants to know what distinguishes a concept from another. These abstractions are premature.
4. The too frequent use of Monthy Python terms like "spam" and
"eggs" is ridiculous, and makes the examples seem totally useless pieces of programming.
So, I think this book is perfect for one who is a personal programmer and wants to learn quickly what Python is all about. He will probably like the book for the very reasons I complain against it. The subtitle is correct: Help for Programmers.
Still, you'll learn the language. But with a fight!
32 Simply the BEST book for learning Python.
I've seen the rest; this is the best. A colleague and I decided to concentrate on learning Python for the next few months. We have used a few books; none of these comes close to this book. This is the ONLY book I would recommend for learning Python provided you already had some programming experience with another language.
33 Good if you already know programming little bit.....
This book is pretty good for those who already know programming [such in c++/c/etc..] a little bit. If you have no experience in programming you might get lost sometime. After all this book gives the flavor of Python doesn't go very deep for example it doesn't say how to search in a list or it doesn't talk about advanced mathematical calculation on Matrix even though Python has impressive built-in functions for Matrix calculation. So far I liked this book and if I wanted to know more I had to search on the internet. After all I liked this book. I am thinking to buy another book which covers more advanced topics and STL stuffs. Hope you will be able to ... thanks and good luck.
34 The python language for experts
First of all, this book is *not* for you if you're a newbie programmer. Shoo. Go get a book that teaches more about programming as well.
Now, if you *have* coded before, and want to learn Python, then this book should be in your cart. I was suprised how proficient I had become in python after one day with it--already writing functions! It's been a week, now, and I just can't stop.
BTW, there is something in the book that may confuse you. If you don't understand why this book mentions, of all things, spam, dead parrots and lumberjacks, you probably also don't know much about "Monty Python's flying circus"--from which, as I hope you have guessed, Python got its name. I chuckled as I read (and typed)
lumberjack="okay"
...and I still think its funny. 'Ni!'
35 No help to me as a beginner
Though this book has often been recommended as an excellent source for beginning programmers, I didn't get much from it after the first chapter.
I found the writing excessively dry, the index substandard, the and the language very very opaque. The organization is also pretty haphazard. Quite often concepts are introduced briefly and off-handedly, but then dropped as "not quite ready" to be discussed, with no further reference given.
Most of the examples used to demonstrate basics are either trivial or very abstract. A set of well-thought-out, useful examples are missing from this book, and if they had been included, would have gone a long way towards showing a beginner how to use this language.
Generally, not up to O'Reilly standards.
36 Succinct Yet Thorough Intro To Python For Programmers
Mark Lutz and David Ascher deliver precisely the needed information to meet the objective stated on the cover of the O'Reilly text, "Learning Python" (Help for Programmers).
A succinct, yet thorough treatment of the Python programming language is presented in some 350-plus written pages that are well organized and facilitate the development of Python programs in a "Read and Code as You Go" fashion.
After spot reading the Chapters on "Getting Started", "Types And
Operators", "Basic Statements", "Functions", "Modules" and "Common Tasks In Python", I was coding and running my first text file I/O Python programs within the first half of a day. The authors concise presentation of the concepts definitely facilitated the "learning curve", which so often is an obstacle when learning a new programming language. The material was also indexed very well with clear index descriptions to easily determine what the topic was and where to find it.
What I found to be the strongest point of the book were the "Gotchas" sections, in which the authors discussed topics such as Python Language Constructs, Program Class Usage and Coding Practices to be aware of. I found the "Common Coding Gotchas" section at the end of Chapter 3 of great benefit in coding and debugging my first self-authored Python programs (As I learned, Python is definitely a language where you want to indent consistently, avoid the mixing of blank spaces with tabs and not forget the use of colons to denote decision logic). The application of these concepts alone were a great asset in reducing the "Learning Curve" for me.
The program examples provided reinforced the clear, concise concepts presented by the authors. The programs that I studied were suited to running in both a Linux environment (using Linux Python Version 1.5.2 for SuSE(tm) Linux 7.0 and Red Hat(tm) Linux 6.1) and MS Windows(tm) NT/98 (using Active State's Active Python(tm) Version 2.1).
Exercises presented at the end of the chapter were effective at reinforcing the programming concepts presented. With some supplemental tutorial material for non-programmers, this book could be used as an educational text for a Python programming class, particularly one geared for programmers with scripting language experience.
The authors did a good job of covering a number of topics important to application programmers. Object-oriented Constructs, Manipulation of String Objects, Operating System Module Use, GUI Programming Component Frameworks and Applications such as Tkinter and JPython are discussed to provide the reader a good exposure to the extent of the Python language implementation and its strenght as a robust, object-oriented scripting language.
The book is definitely an invaluable resource for providing the essential material necessary to construct your first Python programs, especially if you've had prior programming experience with other scripting languages, such as REXX, Javascript or Perl.
Definitely one of the best O'Reilly publications I've read to date. Kudos to Mr. Lutz and Mr. Ascher for their contribution to making the experience of "Learning Python" a fun and productive pursuit. Five Stars!
37 Interesting
A little difficult to understand from a web perspective shifting to programming, but not too bad. However, I have to wonder why O'Reilly chose a rat as opposing to a python? I thought the snake would make more sense. Oh, well, back to the book. This would probably be more useful to someone who has more programming experience and not just some scripting and HTML which is what I had when I started the book.
38 A Prized Possession
A really great book, but more so if you already have some knowledge of programming. If you are new to Python and can make a few things happen, but would like to have the basics discussed for you in a book to enjoy in bed, this may suit you just fine. My copy is a prized possession.
However, it is a book about learning the Python language itself. If you do not know anything at all about programming, consider *Learn to Program Using Python* by Alan Gauld.
39 It worked for me
I think this book would be quite overwhelming to the compelete newbie to programming. It does assume that you have a programming background already, e.g. You will definitely not learn the principles of OO from this book, though you will learn the python constructs to support OO.
But if you have the background, I think this book serves its purpose well, I was writing non trivial programs within a few days of picking up this book. It gives a good feel of what can be acheived with Python and a good base before you tackle the more hardcore Programming Python.
40 A good overview that can be used to learn Python
As someone who works with and trains people in many different programming languages and techniques, it is necessary for me to always keep an eye on new things. I had heard a great deal about the Python language and most comments were positive. Therefore, I read this book for the purpose of simply learning what the language had to offer rather than to actually learn how to program in it. I found the material to be well presented and informative, but certainly not for anyone with a limited programming background.
There are many references to what is done in C, which helped me, as I have an extensive background in the language. However, if you do not know C, then they are somewhat helpful filler at best, confusing chaff at the worst. The examples are in almost all cases very short, which makes them toys of limited use, but that is how learning a programming language is best done. It is possible to use this book to learn how to program in Python if you already know how to program in an object-oriented language. There are exercises at the end of each chapter and solutions to all are in an appendix. The exercises are at the level that they should be for beginners and the topics are standard learning material.
Since my goal was to simply learn something about the Python language, I extracted the desired information when I read it. If my goal would have been to learn how to program in Python, I could have also done that if I had read slower and did the exercises. It is a language with many interesting features and since it is also a scripting language, Python could be used for many things. No doubt I will have to learn it in the future and this book is where I will start.
41 The best introductory book ever written
For all programming newbies that want to start with a real programming language, Python must their choice and "Learning Python" their first book on programming.
It provides a complete, concise introduction to Object-Oriented Programming (OOP) with Python and cleary explains how you can do almost everything with simple scripts!
It does not include any kind of reference at all - however this is not a drawback because it's not directly in the book's purpose - after all the standard Python distribution includes all the references you need.
So far, the languages mostly tought in schools are LOGO and stone-age distributions of BASIC (such as GWBASIC or QBASIC...). Even if you overlook the fact that they are way outdated, the most oblivious student can understand that even when these languages were created, they were all useless.
It's high time for this situation to change - as Python can be the first language a young person can learn and probably the only one it will ever need!
42 Not bad, but...
Can't really describe precisely what's wrong with this book. I've been programming, and picking up languages, for 25 years. This book didn't do anything for me... so I just started writing some code. At some point the light went on and Python was magically easy. Now, as I need to help some other people learn Python I'm looking back through the book and NOW it looks great - covers the key details, describes them well, warns you about pitfalls, etc. In short, everything I'd like to present as a trainer (and I know it grew out of the authors' experiences as trainers). But it didn't work at all for me as a newbie.
43 Learn Python FAST for experienced programmers
I find this a great book for experienced programmers who have used other languages to get to know Python's unique features very well. The exercises at the end of each chapter with their abstract approach inculcate the concepts very well in the reader's mind as opposed to a 'learn by implementing "supposedly practical" stuff' approach which i believe only contributes to fluff in a book. This book could be aptly named Learn Python in X days where at the end of X days you would truly have a useful and in-depth knowledge of the language but this is also a testament to Python's simplicity and lack of idiosyncracies.
44 Excellent introduction to Python for experienced programmers
Not recommended for newbie programmers since the authors assume a knowledgeable reader. But for experienced programmers who have used other languages, the excercises at the end of each chapter serve to inculcate unique Python characteristics in your mind quickly. I like the abstract approach better than the wordy 'learn-by-doing-examples' approach which I believe just creates fluff in a book. It would be accurate to call this book a 'Learn Python in X days' and at the end of those X days you can truly say that you do know Python (the language) very well. But this is a testament to Python's simplicity & lack of idiosyncracies as well.
45 NEW 2nd Edition is better than a 5, revised review
The new 2nd Edition is 10 times better than the 1st Edition, which I reviewed earlier. Please note that the reviews on this 2nd Edition are mixed with the reviews of the poorer 1st Edition. But they should be considered separate books -- because this new one is such a remarkable improvement over the first.
This is the BEST BOOK SO FAR FOR UNDERSTANDING PYTHON BASICS AT A DETAILED LEVEL. It is a delight to read, the explanations are very clear, and the material is dense: every paragraph has something technical and interesting to say, at a fair level of depth. For me, this book is the only Python book that sets off a little lightbulb in my head on WHY things work the way they do in Python.
Also, this is the best work by Mark Lutz so far. He appears to be the major writer in this book (discussing the Python Core), while David Ascher worked on "the Outer Layers." Ascher also was co-writer on the Python Cookbook.
The 1st Edition was superficial in my mind. I had originally ranked the 1st Edition as a 3 out of 5. But this 2nd Edition reflects the authors' training and writing of other books and materials and clearly is a 5 or better.
This 2nd Edition takes you through version 2.2 of Python and discusses many aspects of version 2.3. This was very important for me as I wanted to know about the many changes in 2.0 and 2.2.
I recommend this book most highly. Its required for learning Python and would make an excellent teacher's reference, particularly great are the exercises with answers and more discussion in the Appendix.
John Dunbar
Sugar Land, TX
April, 2004
46 A book that speaks YOUR language!
Awesome python resource. Picking up the intrinsic details of python is made a SNAP with this book. *Finally* a book comes along that has relevant orginization from cover to cover. The book takes you through it all with so much ease you leave the chapters nodding your head. To add more frosting on the cake, the sections on applications, including the Tkinter GUI and CGI, are what make this book lie next to my 'bibles' on the shelf. They teach you why to do it, how to do it, and what you can do with it!
This book is especially perfect for all of us perl/c fellows who want to stop putting off learning this exciting language. (you know who you are!) The book understands the position we are in! (and includes some helpful correlations c in many places)
in a word: WOW.
47 Good introduction to Python, but don't buy it
Lutz's book is a pretty good coverage of the material, and is worthy of the O'Reilly name. However, you're even better off buying Harms & McDonald's "The Quick Python Book", published by Manning. It's less dry, more interesting, and just a better book.
48 Geared towards first time programmers...
I would have preferred to give this book 3.5 start, but oh well. I think my opinion of this book would have been better if I was a member of its target audience. I picked it up ( ) about six months ago, and I only had the option of either it or Programming Python (also by Mark Lutz).
After getting through the first couple chapters I became a little restless because of the rate at which it progress's through the language. It falls into the same category as most other introductory level books, it presents both the language and programming as if never before seen by the reader.
I ended up getting getting Beazley's Python Reference, which I was quite happy with. But the one thing I do have to give Mr. Lutz credit for are the "Gotchas" section at the end of every chapter. I think Python is a terrific language, and it incredibly fun to program with, but there are a few things about it that are a little... mmm... odd, i guess. Lutz points them out whereas in a reference type manual they would be presented and a feature of the language rather than something that might trip you up.
There's also something to be said about his later chapters that try and present some of your options, as far as what you can do now that you know Python. A couple of other books I've read, i come away feeling.... "ok.... so what?" You spend all that time learning syntax and data structures, but there's no sampling of their application to anything.
If you've programmed very little (or not at all) get this book, Python is an excellent language to start out on. You don't have to mess around with variable types and pointers which can be a little frustrating in the beginning. Lutz's book is the best to start out with.
49 learning python
unlike other people who had such a wonderful experience with the book, mine was a complete disaster.The first chapter was dedicated to running the program, and modules files, in the second chapter author would give a code example and end it with comments like" we will explain the concept in later chapters" that turned me off cause if you going to use an example expalin it or give an example that's pertains with the chapter. furthermore, later chapters of the book, were written with sample code with no Explanation at all. what good is it going to do me? a code without Explanation.. Anyway i am looking for a more detailed book on python. If anyone can help me out please post a note. thanks
50 Good Introduction, but limited
Learning Python is a good introduction, but if you are serious about learning and using python, you will need this book AND the larger Programming Python. An example of Learning Python's shortcomings is __str__ is not in the index for Learning Python (__str__ is the default way to print). It IS in the index for Programming Python. I have found using both books to have all the information I need.
Learning Python also has a pretty good introduction to object oriented programming and how it is implemented in Python. I haven't done a lot of OO programming and the description in Learning Python was readable and understandable.
Another thing I liked about Learning Pytyhon is that the end of each chapter had interactive examples you could run to reinforce the ideas presented in the chapter.
Clearly however, Learning Python is much better for beginners. And I must say, the index's of both book are pretty good.
51 Excellent introduction to Python
Together with "Perl: the programmer's companion", by Nigel Chapman, this is one of the best introductory book I ever read. If you already know "Programming Python", the previous book of Mark Lutz on Python, and are concerned about the possibility that this book was just another messy collection of concepts and tips, relax: this is a completely different object. "learning Python" is a well-designed, well-written and concise book. It gives you all you need to write system administration utilities, Internet-related programs and other small applications. (Should you need a book on TKinter, the standard GUI module of Python, buy "Python and TKinter programming", by John Grayson, Manning publisher).
Consider to buy this book because:
- It is clear and well written. No struggles to understand the basic concepts and having the first programs running.
- It is well-designed and well-structured. You can find the info you need in a snap.
- You get a real understanding of Python, not only a description of its nice features.
- It is concise. In a day or two you will be coding in Python.
- It is a very good guide to keep on your desk. It is the missing part of the online documentation.
- In describes how to perform the most common task with Python. You will not have to reinvent any wheel.
- It describes a few important modules of Python: JPython, TKinter and COM. You can get a feeling of what you can do with Python (but, to go further, you will have to read the online documentation and perform a few experiments by yourself).
Python is a very smart language and deserved a better book than "Programming Python". This is that book.
52 Good starting point for pythoneers
This is a nice beginners textbook for Python which deals with many deatails, so that it is also valuable for people who already know Python. Still it is not reaching up to the highest branches of Python art. That would be the task of a massively revised second edition of the other Lutz book: "Programming Python". And it has to be said: Python is a great language!
53 Python deserves a better intro. than this
Python is a really interesting scripting language--about half way between Perl and Java. This book isn't hard to read, but it's not very interesting or entertaining. It covers a lot of the details of syntax, but doesn't really illustrate what the language is good for or how you would solve real world problems with it. If you like foo() examples, you'll love this book...
54 Excellent introduction to Python
I believe this is an excellent book for learning Python. The author's style is flowing and smooth, the examples well-thought-out, and he makes it really easy to pick up Python. Compared to Programming Perl (the camel book) which is dense and heavily syntax-oriented making you feel like you're wading through syrup, this book was a pleasure to read.
Unreserved recommendation.
55 Good Beginner Language
I had no programming experience, and though I was worried at first to the many references to the C language it turned out to be an easy to follow book.
56 Excellent for any beginner
This book is simply excellent for any beginner. I had no coding experience whatsoever and I could still learn a lot from this book and do things like scientific computing and even beginning a software project.
Of course, python is an easy language some would say. Nevertheless, I truly believe this is a must have for anyone who like me doesn't know about prgramming and wants to learn to use an easy language that could do a lot!
Kudos for the creator of the language and the authors of this book.
In no time, you will be ble to programm something useful.
57 The best introductory programming book I've read!
Excellent for beginning programmers. Very clear, light reading. Nice sense of humor. Even for advanced programmers (who are new to python), I recommend "Learning Python " instead of "Programming Python" because it is better organized and takes up less shelf space.
58 Fair introduction to Python for an experienced programmer
First off I would like to make a distinction between the Python programming language and this particular introduction to it. Python is a great language and you will enjoy programming in it. This is probably the source of excitement in reviews on this page. Because the book, unfortunately, has a number of flaws.
The tradition of O'Reilly Perl books has been not only to teach you the syntax of Perl, but also to introduce programming techniques and ideas how to make best use of the language features. This Python book scores zero on these points. It focuses on syntax exclusively and this makes it unsuitable for an absolute beginner. The examples are unimaginative. The authors show you how to write correct code for using "dictionaries", but not how to USE "dictionaries". A Perl book author would throw in a program that uses a "hash" to search for duplicate data entries (as they did).
Besides, the flow of the book is uneven. Functions and classes are discussed at length, but built-in data types and exceptions are looked at only briefly. All this is really unfortunate because there are not very many Python books on the market and it is a very good language.
Overall, I think, this book is best for experienced programmers who already know their CS, have to get up to speed with Python very quickly, have $30 to waste, and really love to own O'Reilly books. The rest might be better off by printing out the Python tutorial.
59 Now you can make Java fun
JPython is a JVM port of Python. It provides Java with generic capabilities similar to C++ templates and Ada generics, something I have been missing from the language itself [sure you can use intefaces, but they're not the same]. I knew very little about Python before reading this book, however I had read in Dr Dobbs about the potential of JPython for automating Java testing and decided to give the language a once over. I am very glad I did.
A number of my fellow developers have started using JPython now and I know that it has been saving me a lot of time. Excellent reading, especially if your main interest is in picking up enough [realistic] knowledge about Python to use JPython effectively in simplifying many commonly tedious Java tasks [such as testing].
60 Excellent (as long as you can already program)
I already knew C++ (and a little of other languages), so this was not a problem for me, but the book does assume that you already understand most basic programming concepts (and if you don't understand Object-Oriented programming you might have a little trouble at first, though they do give a good explanation). Of course, I can't really tell that part, just my impression. If you can do something as trivial as VB, I guess you'll be fine.
Other than that, this is an EXCELLENT book. I read though it in about 3 days, and it was very effective. For example, the day after I finished, I programmed a Python script for work that used COM, despite never having programmed anything in Windows before let alone used COM). It was that good.
And it doesn't have an OS-bias (despite that little bit on COM), which is good and really fits the language.
61 Beautifully organized; blows "Learning Perl" away
This is a miraculously good book. The writing is crystal-clear and the examples are well-chosen. Best of all, the book's organization is just about perfect.
I knew a smidgen of Python before starting this book, but "Learning Python" helped me understand and extend what I already knew. So much has clicked into place now.
I'm amazed that anyone would prefer "Learning Perl" to this book. Perhaps that reader was holding a grudge about "Programming Python" -- admittedly, not the best book in the world. :-) While the first edition of "Learning Perl" was nicely written, the second edition was an absolute mess. Schwartz and Christiansen tried to shoehorn too much new information into the old chapter organization, and the result was a nasty tangled mass of a book.
I wouldn't wish "Learning Perl" on anybody. Those Perl guys have a lot to learn from "Learning Python".
Want to learn a programming language? Start with "Learning Python"!
62 Learning Python?
I purchased the Mark Lutz's first book, Programming Python, and found it impossible to comprehend. So then I heard about a new book called learning Python, which was more of a tutorial-style book. I bought it immediately, eager to learn the language which I have heard so much about, and to my dissapointment, it seemed to be the same as Programming Python, only shorter. If you really want to learn a programming language, get Learning Perl by Randal Schwartz and Tom Christiansen. Good luck!
63 is to Python what the Llama book is to Perl
An excellent tutorial to get started in doing Python work. The sections are nicely ordered along with plenty of handy reference tables and explanations. Not only will this book tell you *what* to do, but *why* you're doing it - unlike so many other so-called tutorials. After getting this book, I was getting Real Work done in Python in a matter of hours.
64 Best introductory book I have read to any computer language.
I was recently introduced to Python by the second author, David Ascher (who works at the same Institute as I do). I am really impressed by the power of Python and by the exceptional quality of the reference guides and this book in particular. As a former Professor of Computer Science at Harvard, I wish that all computer science books were written with this amount of clarity and humour. Everybody in my research lab is now learning Python from this book and my chief programmer is even more enthusiastic about it than I am. It has enabled him to write some image processing software in a few weeks that would have required months in other languages (and he knew nothing about Python two months ago). For myself, it has encouraged me to start programming again after a gap of many years. In summary, the Python language is extremely useful for image processing (and many other applications) and this book makes it very easy and enjoyable to learn.
65 Lutz & Ascher Do Python Justice
I can't get over how damn good these guys are. I've been toying with Python for almost a year, and been a heavy user since this past fall. It's been a godsend for both heinous class projects (go NumPy!) and side tinkerings of my own. The standard documentation is pretty good, and Lutz's Programming Python book (own that too) is also superb. I bought this new book sight unseen because I knew what to expect...and this book did not disappoint! I feel like buying this book for friends just to introduce them to the language. It's current, it's well written, and it is a wonderfully crafted introduction to Python. It's useful even to people who know the language already...it works well for me as a reference for those various things I forget here and there (to supplement Lutz's Python Pocket Reference -- another must have). Both of these authors have much to be proud of...thanks for this great addition to the Python world!
66 The best Python book for beginners
This is THE book if you want to learn Python. I already program in the language, but found the book a great refresher that also showed me several new things. It will give beginners more than enough information to start programming and the knowledge to understand any other Python documentation.
67 Excellent tutorial to Python language.
Learning Python fills the gap for a printed introduction to the Python language. The layout is natural and methodical. Although I had picked up a good deal of the material beforehand from the online documentation and trial and error use of Python, I learned quite a bit from the book that had previously escaped me. If you want to know what the buzz is about Python or are looking for an excellent introduction for friends and co-workers to Python, try Learning Python.