Recursion is a technique that you should have in your programming arsenal, but that doesn't mean you should always use recursion when writing Python code. Sometimes you should convert the recursion to another programming style or come up with a different algorithm altogether.
All Python objects can be used in expressions that should
return a boolean value, like in an if
or while
statement.
Python's built-in objects are usually Falsy (interpreted as False
)
when they are βemptyβ or have βno valueβ and otherwise they
are Truthy (interpreted as True
).
You can define this behaviour explicitly for your own
objects if you define the __bool__
dunder method.
Python's str
and repr
built-in methods are similar, but not the same.
Use str
to print nice-looking strings for end users and use repr
for debugging
purposes.
Similarly, in your classes you should implement the __str__
and __repr__
dunder methods with these two use cases in mind.
The walrus operator :=
can be really helpful, but if you use it in convoluted
ways it will make your code worse instead of better.
Use :=
to flatten a sequence of nested if
s or to reuse partial computations.
In Python, if you are doing something that may throw an error, there are many
cases in which it is better to "apologise than to ask for permission".
This means you should prefer using a try
block to catch the error,
instead of an if
statement to prevent the error.
How should you unpack a list or a tuple into the first element and then the rest? Or into the last element and everything else? Pydon't unpack with slices, prefer starred assignment instead.
The "Zen of Python" is the set of guidelines that show up in your screen if you import this
. If you have never read them before, read them now and again from time to time.
If you are looking to write Pythonic code, write code that abides by the Zen of Python.
"Pydon'ts" are short, to-the-point, meaningful Python programming tips. Pydon'ts will help you write more Pythonic code.
In this blog post I'll show you how you can write a full interpreter for the brainf*ck programming language in just 14 lines of Python. Be prepared, however, to see some unconventional Python code!
In this blog post we will go over some significant changes, from implementing APL's array model to introducing dyadic operators!
If there's one thing I like about Python is how I can use it to automate boring tasks for me. Today I used it to help me manage my own blog!
Today is the day! Today is the day we take our APL programs and interpret them, so that something like Γ· 1 2 3 -β¨ 1.1 2.2 3.3
can output 10 5 3.33333333
.
Let's build a simple APL interpreter! APL is an array-oriented programming language I picked up recently. The ease with which I can write code related to mathematics, its strange built-ins (which look like β΄
, β¨
, β
or β£
) and the fact that it is executed from right to left make it a fresh learning experience!
I have always loved solving mazes... so naturally I had to write a program to solve mazes for me!
Can you measure exactly \(2\)L of water with two plain buckets with volumes of \(14\)L and \(5\)L? Of course you can!
A regular expression, without much rigor, is a very compact way of representing several different strings. Given a regular expression (regex), can I find out all the strings the regex can find?
Think of a drunk man that continuously tumbles left and right, back and forth, with no final destination.
The filled Julia set is a really cool fractal that kind of resembles the Mandelbrot set!