If you’re a programmer, then you have likely heard about regular expressions (“regexps”) before. However, it’s also likely that you have tried to learn them, and have found them to be completely confusing. That’s not unusual; while regular expressions provide us with a powerful tool for analyzing text, their terse, dense, and cryptic syntax can…
As many people know, I’ve visited China seven times over the last three years, traveling there to give courses in Python and Ruby. I just got back from my most recent trip, and found it to be as fun and exciting as ever. You could say that I’ve gotten a bit obsessed with the country;…
I’ll be giving another free one-hour Webinar about Python — this time, about the magic methods that Python offers developers who want to change the ways in which their objects work. We’ll start off with some of the simplest magic methods, but will quickly move onto some of the more interesting and advanced ones —…
One of the basic data types that Python developers learn to use, and to appreciate, is the dictionary, or “dict.” This is the Python term for what other languages call hashes, associative arrays, hashmaps, or hash tables. Dictionaries are pervasive in Python, both in the programs that we write, and in the implementation of the…
Join me for an hour-long free Webinar about object-oriented Python on April 1st, 2015. I’ll discuss how to use and create classes in Python, how attributes form the core of Python’s object system, and how you should (and shouldn’t) think about Python’s objects. There will be plenty of time for Q&A. Come and join me;…
Users and programmers see error messages very differently. When a user sees an error message, they think, “Oh, no. Something went wrong.” Rarely, in my experience, does the user think to read the error message, or to use it as a clue toward what might have happened. Technology is so opaque, so hard to understand,…
When you put a piece of Python data into a “for” loop, the loop doesn’t execute on the data itself. Rather, it executes on the data’s “iterator.” An iterator is an object that knows how to behave inside a loop. Let’s take that apart. First, let’s assume that I say: for letter in ‘abc’: …
One of the first things that Python programmers learn is that you can easily read through the contents of an open file by iterating over it: f = open(‘/etc/passwd’) for line in f: print(line) Note that the above code is possible because our file object “f” is an iterator. In other words, f…
If you’re like me, you love to learn. And in our industry, a primary way of learning involves attending conferences. However, if you’re like me, you never have the time to actually attend them. (In my case, the fact that I live far away from where many conferences take place is an additional hindrance.) Fortunately,…
The latest draft of “Practice Makes Python,” my ebook intended to sharpen your Python programming skills, is now out. This draft includes all 50 exercises, solutions, and explanations that I had hoped to include in the book. I’m very excited to have reached this milestone, and appreciate the input from my many students and colleagues…