mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
fizzbuzz complete (#6504)
* fizzbuzz * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * added doctests and function to fizzbuzz * Update fizz_buzz.py * Update fizz_buzz.py * Fixed FizzBuzz * fizzbuzz passing test * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update dynamic_programming/fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> * Update fizz_buzz.py * Update fizz_buzz.py * Update fizz_buzz.py * fixed fizzbuzz * Add files via upload * added mechanical energy calculation * Delete mechanical_energy.py * Update fizz_buzz.py * Update dynamic_programming/fizz_buzz.py Co-authored-by: Christian Clauss <cclauss@me.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update fizz_buzz.py Co-authored-by: Caeden <caedenperelliharris@gmail.com> Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
0c5f1c0130
commit
f87de60b6d
65
dynamic_programming/fizz_buzz.py
Normal file
65
dynamic_programming/fizz_buzz.py
Normal file
|
@ -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()
|
Loading…
Reference in New Issue
Block a user