Create a Python function that sums all the numbers from 0 to a number N. If a non-positive or a non-integer number is provided, the function should return 0.
This Google Colab notebook is part of my “Python Problemns for Beginners” Youtube series: https://youtube.com/playlist?list=PL3OV2Akk7XpC-fsHuJ3RLpnzOXmED7oAI
In this video, the first in the series, I show you how to solve a simple Python problem using three different solutions, and while making sure we write unit tests. A good habit to learn and develop from early on.
This is our warm-up exercise, more to come!
Python Solution 1 – Using Recursion
def sum_all_up(number:int) -> int:
if number > 0:
return number + sum_all_up(number - 1)
else:
return 0
Python Solution 2 – Using sum() and range() function in Python
def sum_all_up(number:int) -> int:
return sum(range(number + 1))
Python Solution 3 – Using numpy.arange(..).sum()
import numpy
def sum_all_up(number: int) -> int:
return numpy.arange(number + 1).sum()
Python Unit tests using Python unittest library
import unittest
class TestStringMethods(unittest.TestCase):
def test_sum_all_up_of_zero_returns_zero(self):
self.assertEqual(0, sum_all_up(0))
def test_sum_all_up_of_one_returns_one(self):
self.assertEqual(1, sum_all_up(1))
def test_sum_all_up_of_two_returns_three(self):
self.assertEqual(3, sum_all_up(2))
def test_sum_all_up_of_three_returns_six(self):
self.assertEqual(6, sum_all_up(3))
def test_sum_all_up_of_four_returns_ten(self):
self.assertEqual(10, sum_all_up(4))
def test_sum_all_up_of_negative_number_returns_0(self):
self.assertEqual(0, sum_all_up(-10))
if __name__ == '__main__':
unittest.main(argv=['first-arg-is-ignored'], exit=False)
......
----------------------------------------------------------------------
Ran 6 tests in 0.013s
OK
Resources
Resources