aboutsummaryrefslogtreecommitdiff
path: root/challenge-172/walt-mankowski/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-172/walt-mankowski/python/ch-2.py')
-rw-r--r--challenge-172/walt-mankowski/python/ch-2.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/challenge-172/walt-mankowski/python/ch-2.py b/challenge-172/walt-mankowski/python/ch-2.py
new file mode 100644
index 0000000000..c1b356d5f3
--- /dev/null
+++ b/challenge-172/walt-mankowski/python/ch-2.py
@@ -0,0 +1,26 @@
+import sys
+
+# returns the median of a sorted list
+def median_sorted(a):
+ len2 = len(a) // 2
+ return a[len2] if len(a) % 2 == 1 else (a[len2-1] + a[len2]) / 2
+
+# returns the 5 number summary of a list: minimum, lower quartile,
+# median, upper quartile, maximum
+def fivenum(a):
+ _sorted = sorted(a)
+ _min = _sorted[0]
+ _max = _sorted[-1]
+ _median = median_sorted(_sorted)
+
+ len2 = len(a) // 2
+ _lower = median_sorted(_sorted[0:len2])
+ if len(a) % 2 == 1: # odd number of elements
+ _upper = median_sorted(_sorted[len2+1:])
+ else:
+ _upper = median_sorted(_sorted[len2:])
+
+ return _min, _lower, _median, _upper, _max
+
+a = [int(x) for x in sys.argv[1:]]
+print(fivenum(a))