Kernel: Python 2 (system-wide)
The Challenge
Write a program that prints all the numbers up till the user-input defined value.
For multiples of three print “Fizz” instead of the number.
For multiples of five print “Buzz”.
For numbers which are multiples of both three and five print “FizzBuzz"
First Solution
In [37]:
In [38]:
Enter a number up to which you would like to 'FizzBuzz': 15
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
Great, but...
What is someone enters a negative number?
Dealing with negative numbers
In [39]:
In [40]:
Enter a number up to which you would like to 'FizzBuzz': -15
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz
Still going strong, but...
What if someone enters a number as a string (or any other string?)
Dealing with string inputs
In [39]:
In [41]:
Enter a number up to which you would like to 'FizzBuzz': Hello World!
Error! You must enter a number, for example: 6, 93, 529 etc.
Enter a number up to which you would like to 'FizzBuzz': 30
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz
Okay, everything works as planned!
Ignoring the user input for readability, I will now look at other ways I could code the function to achieve the desired result.
In [44]:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz
In [20]:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz
In [21]:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz
This last solution seems to take up the least code, so I will combine this into the function:
In [27]:
In [28]:
Enter a number up to which you would like to 'FizzBuzz': Spam and Eggs
Error! You must enter a numeric digit, for example: 6, 93, 529 etc.
Enter a number up to which you would like to 'FizzBuzz': 30
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz