aboutsummaryrefslogtreecommitdiff
path: root/challenge-032/paulo-custodio/python/ch-2.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-032/paulo-custodio/python/ch-2.py')
-rw-r--r--challenge-032/paulo-custodio/python/ch-2.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/challenge-032/paulo-custodio/python/ch-2.py b/challenge-032/paulo-custodio/python/ch-2.py
new file mode 100644
index 0000000000..6a0b7385c7
--- /dev/null
+++ b/challenge-032/paulo-custodio/python/ch-2.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python3
+
+# Challenge 032
+#
+# Task #2
+# Contributed by Neil Bowers
+# ASCII bar chart
+# Write a function that takes a hashref where the keys are labels and the
+# values are integer or floating point values. Generate a bar graph of the
+# data and display it to stdout.
+#
+# The input could be something like:
+#
+# $data = { apple => 3, cherry => 2, banana => 1 };
+# generate_bar_graph($data);
+# And would then generate something like this:
+#
+# apple | ############
+# cherry | ########
+# banana | ####
+# If you fancy then please try this as well: (a) the function could let you
+# specify whether the chart should be ordered by (1) the labels, or (2) the
+# values.
+
+data = { 'apple':3, 'cherry':2, 'banana':1 }
+
+def chart(data):
+ # get size of keys
+ width = max([len(x) for x in data])
+
+ # output data
+ for key in sorted(data):
+ print(("{:"+str(width)+"s} | {}").format(key, "##"*data[key]))
+
+chart(data)