Skip to content

fizzbuzz complete #6504

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 26 commits into from
Oct 30, 2022
Merged
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
89568a3
fizzbuzz
lostybtw Sep 30, 2022
05a7f02
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
5f1bc55
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
03ca810
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
3829072
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
48791ae
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
e8b19c7
added doctests and function to fizzbuzz
lostybtw Oct 1, 2022
3f889bf
Update fizz_buzz.py
lostybtw Oct 1, 2022
3370d46
Update fizz_buzz.py
lostybtw Oct 1, 2022
d7c332d
Fixed FizzBuzz
lostybtw Oct 1, 2022
881d9b3
fizzbuzz passing test
lostybtw Oct 1, 2022
ba27d0b
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
c1f17be
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
7192892
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
c253489
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 1, 2022
c5175c4
Update fizz_buzz.py
lostybtw Oct 1, 2022
bd3e062
Update fizz_buzz.py
lostybtw Oct 1, 2022
bd1f05e
Update fizz_buzz.py
lostybtw Oct 1, 2022
d1a1446
fixed fizzbuzz
lostybtw Oct 1, 2022
70f4067
Add files via upload
lostybtw Oct 1, 2022
4d4daf8
added mechanical energy calculation
lostybtw Oct 1, 2022
c840af0
Delete mechanical_energy.py
lostybtw Oct 1, 2022
383b11f
Update fizz_buzz.py
lostybtw Oct 1, 2022
038009e
Update dynamic_programming/fizz_buzz.py
lostybtw Oct 3, 2022
5286c0e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 3, 2022
9bf5ea5
Update fizz_buzz.py
lostybtw Oct 3, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions dynamic_programming/fizz_buzz.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# https://en.wikipedia.org/wiki/Fizz_buzz#Programming


def fizz_buzz(number: int, iterations: int) -> str:
"""
Plays FizzBuzz.
Prints Fizz if number is a multiple of 3.
Prints Buzz if its a multiple of 5.
Prints FizzBuzz if its a multiple of both 3 and 5 or 15.
Else Prints The Number Itself.
>>> fizz_buzz(1,7)
'1 2 Fizz 4 Buzz Fizz 7 '
>>> fizz_buzz(1,0)
Traceback (most recent call last):
...
ValueError: Iterations must be done more than 0 times to play FizzBuzz
>>> fizz_buzz(-5,5)
Traceback (most recent call last):
...
ValueError: starting number must be
and integer and be more than 0
>>> fizz_buzz(10,-5)
Traceback (most recent call last):
...
ValueError: Iterations must be done more than 0 times to play FizzBuzz
>>> fizz_buzz(1.5,5)
Traceback (most recent call last):
...
ValueError: starting number must be
and integer and be more than 0
>>> fizz_buzz(1,5.5)
Traceback (most recent call last):
...
ValueError: iterations must be defined as integers
"""

if not type(iterations) == int:
raise ValueError("iterations must be defined as integers")
if not type(number) == int or not number >= 1:
raise ValueError(
"""starting number must be
and integer and be more than 0"""
)
if not iterations >= 1:
raise ValueError("Iterations must be done more than 0 times to play FizzBuzz")

out = ""
while number <= iterations:
if number % 3 == 0:
out += "Fizz"
if number % 5 == 0:
out += "Buzz"
if not number % 3 == 0 and not number % 5 == 0:
out += str(number)

# print(out)
number += 1
out += " "
return out


if __name__ == "__main__":
import doctest

doctest.testmod()