Python for .NET devs?

I consider myself a very good C#/.NET and OOP programmer. For the last year, I’ve been dealing much more with Functional Programming concepts in C#. It has finally made me be much less angry at python (though what I’ve said about it being a crappy intro language still stands).

Given that I’m probably going to have to write python at my next job, wherever it is, I’d like to start reading into the nuances of python. I enjoy learning lower-level things (see: books like ‘The CLR via C#’, about how the actual language works under the hood), and I’d like to pick up the ‘pythonic’ ways of doing things. I have a lot of respect for python and want to make sure I’m writing it correctly.

I’m not looking for beginner books or concepts. I’m looking for the sort of book that you’d give to someone after you read their code, and say, “Oh, right, you must have come from the statically typed world and this makes perfect sense. You can write it in much less/clearer code, though.” And books there aren’t about following code samples (because I’m not going to be typing much python right now), books that are about following along the concepts (really, if anyone’s read something like CLR via C#, something exactly like that).

Thanks for any help!
-Rob

Probably the best place to start is the Python Language Reference on python.org. It’s got a bunch of language details if you’re just looking to get your head around concepts. Starts a little slow and basic, but does work it’s way up through things like data and execution models. It’s not TERRIBLY in-depth, but should give you enough to point you in a good direction for further reading. The PEPs are also some excellent reading if you’re looking for specific language concepts, as they’re usually authored by the individual that implemented said feature(s).

I can’t think of a ton of books that aren’t all code-y at some point, but you might try:
Core Python Programming (Chun)
Programming Python (Lutz)
Python In A Nutshell (Martelli)
Python Essential Reference (Beazley)

They all do use code for illustration, but Core Python Programming especially has a bunch of good conceptual reading. I imagine the good Mr. Pletcher has some suggestions as well.

Python Essential Reference is, as its name implies, essential. The Internet is great if you know what you are looking for. The standard Python modules are chock full of useful classes and methods, though. PER goes over that stuff module by module so you can see all of the tasty bits in, say, the strings module that you might not know exist.

http://diveintopython.org/ (slightly old, but all the fundamentals and it’s free)

And I’ll echo a second for Python in a Nutshell.

Also the Python Pocket version by O’Reily for quick ref is indispensable.

And the quick reference cards that are floating around:

http://www.difranco.net/cop1000/Python_qr.pdf
http://rgruet.free.fr/#QuickRef

Cheers.

Bumping this, just picked up a few other texts that I think might be more along the lines of Rob’s original ask:

Thinking In Python - If you’ve ever read Thinking In C++ (which i highly recommend if you’re interested in learning or brushing up), this is by the same guy. The text assumes you’re already a decent Python Programmer, so it jumps past all the intro stuff and gets to some really cool stuff right away

Expert Python Programming - Just what it sounds like, I came across this book while looking for a Python equivalent to Effective C++ (which is another must read if you’ve gone through some intro/intermediate C++ stuff), basically it touches on more advanced and esoteric Python paradigms and patterns, another great read if you’ve gone past the intermediate python stage and are looking to level up.