This kata complements Clean Code: Fundamentals, Ep. 3 - Functions.
From Wikipedia:
Fizz buzz is a group word game for children to teach them about division. Players take turns to count incrementally, replacing any number divisible by three with the word "fizz," and any number divisible by five with the word "buzz."
Write a program to print the first 100 FizzBuzz numbers, separated by newlines:
- if a number is divisible by three, replace it with "Fizz";
- if a number is divisible by five, replace it with "Buzz";
- numbers divisible by both three and five become "FizzBuzz."
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
...
Note
We recommend always starting with the canonical version, and only once you have it working proceed to the advanced version. This helps to model situations in production when we don't know all the requirements when a project starts.
Follow the same rules as the canonical version with these additional rules:
- if a number is divisible by seven, replace it with "Fuzz";
- if a number is divisible by 11, replace it with "Jazz";
- if a number is divisible by any combination of 3, 5, 7, or 11, replace it with concatenated values corresponding to each divisor: e.g., 55 becomes "BuzzJazz."
...
86
Fizz
Jazz
89
FizzBuzz
Fuzz
92
Fizz
94
Buzz
Fizz
97
Fuzz
FizzJazz
Buzz
Required:
Optional:
- GNU Make, for shorter commands. Every required task also
has a direct
uvcommand.
You do not need to install Python or pytest separately. uv installs a compatible Python version
and the locked project dependencies when needed.
-
Clone the repository:
git clone https://github.com/Coding-Cuddles/fizzbuzz-python-kata.git -
Enter the repository directory:
cd fizzbuzz-python-kata -
Run the starter test. Use Make when it is installed:
make testOtherwise, run pytest through
uvdirectly:uv run pytestThe first run may install Python and the project dependencies. Setup is complete when pytest reports
1 passed.If the command fails with
uv: command not found, install uv and repeat this step.
-
Replace the starter assertion in
test_fizzbuzz.pywith the first FizzBuzz test. -
Run the tests after each change. Use Make when it is installed:
make testOtherwise, run pytest through
uvdirectly:uv run pytestContinue when the test run passes.
Make is optional. Run make or make help to list these commands in the terminal.
| Command | Result |
|---|---|
make all |
Run the test suite |
make help |
Show the command reference |
make test |
Run the test suite |
make format |
Format tracked Python files |
make format-check |
Check formatting without changing files |
make clean |
Remove generated caches |