gregmalcolm/python_koans is a server-side project on GitHub with 5.1k stars, written primarily in Python. Python Koans - Learn Python through TDD
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Python Koans is an interactive tutorial for learning the Python programming
language by making tests pass.
Most tests are fixed by filling the missing parts of assert functions. Eg:
.. code-block:: python
self.assertEqual(__, 1+2)
which can be fixed by replacing the __ part with the appropriate code:
.. code-block:: python
self.assertEqual(3, 1+2)
Occasionally you will encounter some failing tests that are already filled out.
In these cases you will need to finish implementing some code to progress. For
example, there is an exercise for writing some code that will tell you if a
triangle is equilateral, isosceles or scalene.
As well as being a great way to learn some Python, it is also a good way to get
a taste of Test Driven Development (TDD).
Downloading Python Koans
Python Koans is available on GitHub:
https://github.com/gregmalcolm/python_koans
You can clone with Git or download the source as a zip/gz/bz2.
Installing Python Koans
Aside from downloading or checking out the latest version of Python Koans, you
need to install the Python interpreter.
At this time of writing, we support Python 3. The policy is to try to keep
current with the latest production version.
You should be able to work with newer Python versions, but older ones will
likely give you problems.
You can download Python from here:
https://www.python.org/downloads/
After installing Python make sure the folder containing the python executable
is in the system path. In other words, you need to be able to run Python from a
command console. It will either be python3 or for Windows it will be python.exe.
If you have problems, this may help:
https://www.python.org/about/gettingstarted/
Windows users may also want to update the line in the batch file run.bat to
set the python path::
SET PYTHON_PATH=C:\Python39
Getting Started
Jake Hebbert has created a couple of screencasts available here:
It also tells me exactly where the problem is, it's an assert on line 12
of .\\koans\\about_asserts.py. This one is easy, just change False to True to
make the test pass.
Sooner or later you will likely encounter tests where you are not sure what the
expected value should be. For example:
Sniffer allows you to run the tests continuously. If you modify any files files
in the koans directory, it will rerun the tests.
To set this up, you need to install sniffer:
.. code-block:: sh
python3 -m pip install sniffer
You should also run one of these libraries depending on your system. This will
automatically trigger sniffer when a file changes, otherwise sniffer will have
to poll to see if the files have changed.
On Linux:
.. code-block:: sh
python3 -m pip install pyinotify
On Windows:
.. code-block:: sh
python3 -m pip install pywin32
Also available here:
https://github.com/mhammond/pywin32/releases
On macOS:
.. code-block:: sh
python3 -m pip install MacFSEvents
Once it is set up, you just run:
.. code-block:: sh
sniffer
Just modify one of the koans files and you'll see that the tests are triggered
automatically. Sniffer is controlled by scent.py.
Getting the Most From the Koans
Quoting the Ruby Koans instructions:
"In test-driven development the mantra has always been, red, green,
refactor. Write a failing test and run it (red), make the test pass
(green), then refactor it (that is look at the code and see if you
can make it any better). In this case you will need to run the koan
and see it fail (red), make the test pass (green), then take a
moment and reflect upon the test to see what it is teaching you
and improve the code to better communicate its intent (refactor)."
Finding More Koan Projects
There are number of other great Koan projects out there for various languages
and frameworks. Most of them can be found in GitHub. Also there is a little
koans activity on Bitbucket.
Translations are always welcome! Feel free to add one to this README
if you happen to work on one:
https://github.com/mswell/python_koans_br
Acknowledgments
Thanks go to Jim Weirich and Joe O'Brien for the original Ruby Koans that the
Python Koans is based on! Also the Ruby Koans in turn borrows from Metakoans
so thanks also go to Ara Howard for that!
Also thanks to everyone who has contributed to Python Koans! I got a great
headstart by taking over a code base initiated by the combined Mikes of
FPIP. So here's a little plug for their very cool Python podcast:
https://www.frompythonimportpodcast.com/
A big thanks also to Mike Pirnat @pirnat and Kevin Chase @kjc have pitched in
as co-maintainers at various times
Does gregmalcolm/python_koans have a project website?
No homepage URL was recorded for gregmalcolm/python_koans in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
How does gregmalcolm/python_koans compare to other Backend projects?
gregmalcolm/python_koans is tracked by TopGit in the Backend category, with 5.1k GitHub stars and written in Python. Browse the Backend topic page on TopGit to compare it against similar projects by stars and activity.
How many stars does gregmalcolm/python_koans have?
gregmalcolm/python_koans has 5.1k GitHub stars — refresh the page for the live number, or check github.com/gregmalcolm/python_koans. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is gregmalcolm/python_koans open source?
Yes — gregmalcolm/python_koans ships under the MIT license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/gregmalcolm/python_koans.
What else is in the Backend space?
gregmalcolm/python_koans is tracked by TopGit under the Backend category, alongside 2 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What is gregmalcolm/python_koans?
gregmalcolm/python_koans (gregmalcolm/python_koans) is a Python project on GitHub. From the project's own README: Python Koans - Learn Python through TDD
Where do I read more about gregmalcolm/python_koans?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/gregmalcolm/python_koans is the definitive source.
Read full README in the tab above.
Curious whether python_koans is right for you?
Let ChatGPT, Claude, or Perplexity look into it — click below and see what AI actually says about python_koans.