From c036083d1eb6de64b7e9ea6b6d61de218963726c Mon Sep 17 00:00:00 2001 From: Grigoriy Hanin <43445998+haningrisha@users.noreply.github.com> Date: Sat, 5 Jun 2021 20:06:31 +0300 Subject: [PATCH 1/3] Average mean refactor Added doctests and type hints to average_mean --- maths/average_mean.py | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/maths/average_mean.py b/maths/average_mean.py index 4beca1f741a0..9926b03b8acf 100644 --- a/maths/average_mean.py +++ b/maths/average_mean.py @@ -1,20 +1,18 @@ -"""Find mean of a list of numbers.""" - - -def average(nums): - """Find mean of a list of numbers.""" - return sum(nums) / len(nums) - - -def test_average(): +def mean(nums: list) -> float: """ - >>> test_average() + Find mean of a list of numbers. + + >>> mean([3, 6, 9, 12, 15, 18, 21]) + 12.0 + >>> mean([5, 10, 15, 20, 25, 30, 35]) + 20.0 + >>> mean([1, 2, 3, 4, 5, 6, 7, 8]) + 4.5 """ - assert 12.0 == average([3, 6, 9, 12, 15, 18, 21]) - assert 20 == average([5, 10, 15, 20, 25, 30, 35]) - assert 4.5 == average([1, 2, 3, 4, 5, 6, 7, 8]) + return sum(nums) / len(nums) if __name__ == "__main__": - """Call average module to find mean of a specific list of numbers.""" - print(average([2, 4, 6, 8, 20, 50, 70])) + import doctest + + doctest.testmod() From 5b6e6e8e32ce194618d0b9bcd1c1c62c32fc9aa1 Mon Sep 17 00:00:00 2001 From: Grigoriy Hanin <43445998+haningrisha@users.noreply.github.com> Date: Sat, 5 Jun 2021 20:13:31 +0300 Subject: [PATCH 2/3] Wiki link added --- maths/average_mean.py | 1 + 1 file changed, 1 insertion(+) diff --git a/maths/average_mean.py b/maths/average_mean.py index 9926b03b8acf..727c9e43193a 100644 --- a/maths/average_mean.py +++ b/maths/average_mean.py @@ -1,6 +1,7 @@ def mean(nums: list) -> float: """ Find mean of a list of numbers. + Wiki: https://en.wikipedia.org/wiki/Mean >>> mean([3, 6, 9, 12, 15, 18, 21]) 12.0 From 342b287de837e2b2d47097093d8eae8ad7277088 Mon Sep 17 00:00:00 2001 From: Grigoriy Hanin <43445998+haningrisha@users.noreply.github.com> Date: Sat, 12 Jun 2021 14:51:21 +0300 Subject: [PATCH 3/3] Empty list check added Empty list check added Type hint changed to typing.List --- maths/average_mean.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/maths/average_mean.py b/maths/average_mean.py index 727c9e43193a..e02e307f20c8 100644 --- a/maths/average_mean.py +++ b/maths/average_mean.py @@ -1,4 +1,7 @@ -def mean(nums: list) -> float: +from typing import List + + +def mean(nums: List) -> float: """ Find mean of a list of numbers. Wiki: https://en.wikipedia.org/wiki/Mean @@ -9,7 +12,13 @@ def mean(nums: list) -> float: 20.0 >>> mean([1, 2, 3, 4, 5, 6, 7, 8]) 4.5 + >>> mean([]) + Traceback (most recent call last): + ... + ValueError: List is empty """ + if not nums: + raise ValueError("List is empty") return sum(nums) / len(nums)