#quote from MIT 'introduction to computation and programming using python, Revised'
def getRatios(vect1, vect2):
"""Assumes: vect1 and vect2 are lists of equal length of numbers
Returns : a list containing the meaningful values of
vect1[i]/vect2[i]"""
ratios = []
for index in range(len(vect1)):
try:
ratios.append(vect1[index]/float(vect2[index]))
except ZeroDivisionError:
ratios.append(float('nan')) #nan = Not a Number
except:
raise ValueError('getRatios called with bad arguments')
return ratios
%run "C:\Users\Administrator\test.py"
v1 = [10, 20, 100]
v2 = [2, 0, 3]
getRatios(v1, v2)
Out[95]: [5.0, nan, 33.333333333333336]
v2 = [2, 'hello', 5]
getRatios(v1, v2)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-97-2772b9368d81> in <module>()
----> 1 getRatios(v1, v2)
C:\Users\Administrator\test.py in getRatios(vect1, vect2)
11 ratios.append(float('nan')) #nan = Not a Number
12 except:
---> 13 raise ValueError('getRatios called with bad arguments')
14 return ratios
15
ValueError: getRatios called with bad arguments